Example #1
0
  @CacheNameRemove(name = AppConstants.DEFAULT_CACHENAME)
  @Before({AdminValidator.UpdateRoleValidator.class, Tx.class})
  public void updateRole() {
    keepModel(UserRole.class);
    UserRole userRole = getModel(UserRole.class);

    boolean result = true;
    List<UserRole> aroles = UserRole.dao.findBy("`userRole`.user_id=" + userRole.get("user_id"));
    boolean mustAdd = true;
    if (!ValidateUtils.me().isNullOrEmpty(aroles)) {
      // delete
      for (UserRole ar : aroles) {
        if (ar.get("role_id") != userRole.get("role_id")) {
          ar.delete();
        } else {
          mustAdd = false;
        }
      }
    }
    // add
    if (mustAdd) {
      result = result && userRole.save();
    }

    if (result) setAttr("state", "success");
    else setAttr("state", "failure");
    dynaRender("/view/admin/user.ftl");
  }