예제 #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");
  }
예제 #2
0
 public User addRole(Role role) {
   if (ValidateKit.isNullOrEmpty(role)) {
     role = Role.dao.findFirstBy("`role`.value='R_USER'");
     if (ValidateKit.isNullOrEmpty(role)) {
       throw new NullPointerException("角色不存在");
     }
   }
   UserRole userRole = new UserRole();
   userRole.set("user_id", this.get("id"));
   userRole.set("role_id", role.get("id"));
   userRole.save();
   return this;
 }