@Override
 public boolean isAuthorized(String userId, ProtocolTaskBase task) {
   // TODO : permission : PI and protocol has never been approved. protocol status is SRR/SMR
   return canExecuteAction(task.getProtocol(), ProtocolActionType.ABANDON_PROTOCOL)
       && (hasPermission(userId, task.getProtocol(), PermissionConstants.SUBMIT_PROTOCOL)
           || hasPermission(userId, task.getProtocol(), PermissionConstants.MODIFY_ANY_PROTOCOL));
 }
 @Override
 public boolean isAuthorized(String userId, ProtocolTaskBase task) {
   return hasPermission(userId, task.getProtocol(), getPermissionCreateContinuationHook())
       && (isAmendmentOrRenewalOrContinuation(task.getProtocol())
           || (isRequestForSuspension(
                   findSubmisionHook(task.getProtocol()), getProtocolSubmissionTypeHook())
               & !isAdmin(userId, getAdminNamespaceHook(), getAdminRoleHook()))
           || !canExecuteAction(task.getProtocol(), getActionTypeContinuationCreatedHook()));
 }