Example #1
0
  @Override
  public void assignDataSetToUserRole(DataSet dataSet) {
    User currentUser = currentUserService.getCurrentUser();

    if (!currentUserService.currentUserIsSuper() && currentUser != null) {
      UserCredentials userCredentials = getUserCredentials(currentUser);

      for (UserAuthorityGroup userAuthorityGroup : userCredentials.getUserAuthorityGroups()) {
        userAuthorityGroup.getDataSets().add(dataSet);

        updateUserAuthorityGroup(userAuthorityGroup);
      }
    }
  }
Example #2
0
  public boolean canAddOrUpdateUser(Collection<String> userGroups) {
    User currentUser = currentUserService.getCurrentUser();

    if (currentUser == null) {
      return false;
    }

    boolean canAdd = currentUser.getUserCredentials().isAuthorized(UserGroup.AUTH_USER_ADD);

    if (canAdd) {
      return true;
    }

    boolean canAddInGroup =
        currentUser.getUserCredentials().isAuthorized(UserGroup.AUTH_USER_ADD_IN_GROUP);

    if (!canAddInGroup) {
      return false;
    }

    boolean canManageAnyGroup = false;

    for (String uid : userGroups) {
      UserGroup userGroup = userGroupService.getUserGroup(uid);

      if (currentUser.canManage(userGroup)) {
        canManageAnyGroup = true;
        break;
      }
    }

    return canManageAnyGroup;
  }
Example #3
0
  @Override
  public void updateUser(User user) {
    userStore.update(user);

    AuditLogUtil.infoWrapper(
        log, currentUserService.getCurrentUsername(), user, AuditLogUtil.ACTION_UPDATE);
  }
Example #4
0
  @Override
  public int addUser(User user) {
    AuditLogUtil.infoWrapper(
        log, currentUserService.getCurrentUsername(), user, AuditLogUtil.ACTION_CREATE);

    return userStore.save(user);
  }
Example #5
0
  @Override
  public void deleteUser(User user) {
    AuditLogUtil.infoWrapper(
        log, currentUserService.getCurrentUsername(), user, AuditLogUtil.ACTION_DELETE);

    userCredentialsStore.delete(user.getUserCredentials());

    userStore.delete(user);
  }
  @Override
  public void postProcessEntity(MessageConversation entity, Map<String, String> parameters)
      throws Exception {
    Boolean markRead = Boolean.parseBoolean(parameters.get("markRead"));

    if (markRead) {
      entity.markRead(currentUserService.getCurrentUser());
      manager.update(entity);
    }
  }
Example #7
0
  @Override
  public void canIssueFilter(Collection<UserAuthorityGroup> userRoles) {
    User user = currentUserService.getCurrentUser();

    boolean canGrantOwnUserAuthorityGroups =
        (Boolean)
            systemSettingManager.getSystemSetting(KEY_CAN_GRANT_OWN_USER_AUTHORITY_GROUPS, false);

    FilterUtils.filter(
        userRoles, new UserAuthorityGroupCanIssueFilter(user, canGrantOwnUserAuthorityGroups));
  }
Example #8
0
  private void handleUserQueryParams(UserQueryParams params) {
    boolean canGrantOwnRoles =
        (Boolean)
            systemSettingManager.getSystemSetting(KEY_CAN_GRANT_OWN_USER_AUTHORITY_GROUPS, false);
    params.setDisjointRoles(!canGrantOwnRoles);

    if (params.getUser() == null) {
      params.setUser(currentUserService.getCurrentUser());
    }

    if (params.getUser() != null && params.getUser().isSuper()) {
      params.setCanManage(false);
      params.setAuthSubset(false);
      params.setDisjointRoles(false);
    }

    if (params.getInactiveMonths() != null) {
      Calendar cal = PeriodType.createCalendarInstance();
      cal.add(Calendar.MONTH, (params.getInactiveMonths() * -1));
      params.setInactiveSince(cal.getTime());
    }
  }
Example #9
0
  public String execute() throws Exception {
    UserCredentials currentUserCredentials =
        currentUserService.getCurrentUser() != null
            ? currentUserService.getCurrentUser().getUserCredentials()
            : null;

    // ---------------------------------------------------------------------
    // Prepare values
    // ---------------------------------------------------------------------

    if (email != null && email.trim().length() == 0) {
      email = null;
    }

    if (rawPassword != null && rawPassword.trim().length() == 0) {
      rawPassword = null;
    }

    // ---------------------------------------------------------------------
    // Update userCredentials and user
    // ---------------------------------------------------------------------

    Collection<OrganisationUnit> units =
        selectionTreeManager.getReloadedSelectedOrganisationUnits();

    User user = userService.getUser(id);
    user.setSurname(surname);
    user.setFirstName(firstName);
    user.setEmail(email);
    user.setPhoneNumber(phoneNumber);
    user.updateOrganisationUnits(new HashSet<OrganisationUnit>(units));

    UserCredentials userCredentials = userService.getUserCredentials(user);

    Set<UserAuthorityGroup> userAuthorityGroups = new HashSet<UserAuthorityGroup>();

    for (String id : selectedList) {
      UserAuthorityGroup group = userService.getUserAuthorityGroup(Integer.parseInt(id));

      if (currentUserCredentials != null && currentUserCredentials.canIssue(group)) {
        userAuthorityGroups.add(group);
      }
    }

    userCredentials.setUserAuthorityGroups(userAuthorityGroups);

    if (rawPassword != null) {
      userCredentials.setPassword(
          passwordManager.encodePassword(userCredentials.getUsername(), rawPassword));
    }

    if (jsonAttributeValues != null) {
      AttributeUtils.updateAttributeValuesFromJson(
          user.getAttributeValues(), jsonAttributeValues, attributeService);
    }

    userService.updateUserCredentials(userCredentials);
    userService.updateUser(user);

    if (currentUserService.getCurrentUser() == user) {
      selectionManager.setRootOrganisationUnits(units);
      selectionManager.setSelectedOrganisationUnits(units);

      selectionTreeManager.setRootOrganisationUnits(units);
      selectionTreeManager.setSelectedOrganisationUnits(units);
    }

    if (units.size() > 0) {
      selectionManager.setSelectedOrganisationUnits(units);
    }

    return SUCCESS;
  }