Esempio n. 1
0
 /**
  * Handles the vagaries related to granting or revoking sat admin role
  *
  * @param loggedInUser the logged in user
  * @param login the login of the user who needs to be granted/revoked sat admin role
  * @param grant true if granting the role to the login, false for revoking...
  * @return 1 if it success.. Ofcourse error on failure..
  */
 private int modifySatAdminRole(User loggedInUser, String login, boolean grant) {
   ensureUserRole(loggedInUser, RoleFactory.SAT_ADMIN);
   SatManager manager = SatManager.getInstance();
   User user = UserFactory.lookupByLogin(login);
   if (grant) {
     manager.grantSatAdminRoleTo(user, loggedInUser);
   } else {
     manager.revokeSatAdminRoleFrom(user, loggedInUser);
   }
   UserManager.storeUser(user);
   return 1;
 }
Esempio n. 2
0
  /**
   * @param loggedInUser The current user
   * @param login User to modify.
   * @param readOnly readOnly flag to set
   * @return 1 (should always succeed)
   * @xmlrpc.doc Sets whether the target user should have only read-only API access or standard full
   *     scale access.
   * @xmlrpc.param #param("string", "sessionKey")
   * @xmlrpc.param #param_desc("string", "login", "User's login name.")
   * @xmlrpc.param #param_desc("boolean", "readOnly", "Sets whether the target user should have only
   *     read-only API access or standard full scale access.")
   * @xmlrpc.returntype #return_int_success()
   */
  public int setReadOnly(User loggedInUser, String login, Boolean readOnly) {
    // Logged in user must be an org admin.
    ensureOrgAdmin(loggedInUser);

    User targetUser = XmlRpcUserHelper.getInstance().lookupTargetUser(loggedInUser, login);

    if (readOnly
        && targetUser.hasRole(RoleFactory.ORG_ADMIN)
        && targetUser.getOrg().numActiveOrgAdmins() < 2) {
      throw new InvalidOperationException(
          "error.readonly_org_admin", targetUser.getOrg().getName());
    }
    if (readOnly
        && targetUser.hasRole(RoleFactory.SAT_ADMIN)
        && SatManager.getActiveSatAdmins().size() < 2) {
      throw new InvalidOperationException("error.readonly_sat_admin");
    }
    targetUser.setReadOnly(readOnly);
    return 1;
  }