예제 #1
0
  @CacheNameRemove(name = AppConstants.DEFAULT_CACHENAME)
  @Before({AdminValidator.RoleSaveValidator.class, Tx.class})
  public void roleSave() {
    Role role = getModel(Role.class);
    Role parent = null;
    if (role.getParentId() == 0) {
      parent = Role.dao.findFirstBy("`role`.pid=0 ORDER BY `role`.right_code DESC");
    } else parent = Role.dao.findById(role.getParentId());
    boolean result = false;
    if (!ValidateUtils.me().isNullOrEmpty(parent)) {
      Role.dao.updateBy(
          "`role`.left_code=`role`.left_code+2", "`role`.left_code>=" + parent.get("right_code"));
      Role.dao.updateBy(
          "`role`.right_code=`role`.right_code+2",
          "`role`.right_code>=" + parent.get("right_code"));
      role.set("left_code", parent.getLong("right_code"));
      role.set("right_code", parent.getLong("right_code") + 1);
      role.set("created_at", new Date());
      if (ValidateUtils.me().isNullOrEmpty(role.get("id"))) {
        role.remove("id");
      }
      result = role.save();
    }

    if (result) {
      setAttr("state", "success");
    } else {
      setAttr("state", "failure");
    }
    dynaRender("/view/admin/role.ftl");
  }
예제 #2
0
 public long[] getRoleChildrenIds() {
   if (this.get("roleChildrenIds") == null) {
     List<Role> roles = getRoleChildren();
     long[] roleIds = new long[roles.size()];
     if (roles != null) {
       int i = 0;
       for (Role role : roles) {
         roleIds[i] = role.getLong("id");
         i++;
       }
     }
     this.put("roleChildrenIds", roleIds);
   }
   return (long[]) this.get("roleChildrenIds");
 }