Пример #1
0
 @CacheNameRemove(name = AppConstants.DEFAULT_CACHENAME)
 @Before({AdminValidator.PermSaveValidator.class, Tx.class})
 public void permSave() {
   Permission permission = getModel(Permission.class);
   Permission parent = null;
   if (permission.getParentId() == 0) {
     parent =
         Permission.dao.findFirstBy("`permission`.pid=0 ORDER BY `permission`.right_code DESC");
   } else parent = Permission.dao.findById(permission.getParentId());
   boolean result = false;
   if (!ValidateUtils.me().isNullOrEmpty(parent)) {
     Permission.dao.updateBy(
         "`permission`.left_code=`permission`.left_code+2",
         "`permission`.left_code>=" + parent.get("right_code"));
     Permission.dao.updateBy(
         "`permission`.right_code=`permission`.right_code+2",
         "`permission`.right_code>=" + parent.get("right_code"));
     permission.set("left_code", parent.getLong("right_code"));
     permission.set("right_code", parent.getLong("right_code") + 1);
     permission.set("created_at", new Date());
     if (ValidateUtils.me().isNullOrEmpty(permission.get("id"))) {
       permission.remove("id");
     }
     result = permission.save();
   }
   if (result) {
     Role admin = Role.dao.findFirstBy("`role`.pid=0");
     admin.addPermission(permission);
     setAttr("state", "success");
   } else {
     setAttr("state", "failure");
   }
   dynaRender("/view/admin/role.ftl");
 }
Пример #2
0
 private void getPermissions(HttpServletRequest request, Role item) {
   String[] per = request.getParameterValues("permissions");
   item.clearPermissions();
   for (int i = 0; i < per.length; i++) {
     item.addPermission(Long.parseLong(per[i]));
   }
 }
Пример #3
0
 /**
  * Metodo di servizio al metodo loadRoles
  *
  * @param result L'oggetto ResultSet precaricato.
  * @return La mappa completa di tutti i ruoli (oggetti Role).
  * @throws SQLException
  */
 private Map<String, Role> loadRoles(ResultSet result) throws SQLException {
   HashMap<String, Role> roles = new HashMap<String, Role>();
   Role role = null;
   String prevRoleName = null;
   while (result.next()) {
     // 1=rolename, 2=descr, 3=permissionname
     String roleName = result.getString(1);
     if (!roleName.equals(prevRoleName)) {
       if (role != null) {
         roles.put(role.getName(), role);
       }
       role = new Role();
       role.setName(roleName);
       role.setDescription(result.getString(2));
       prevRoleName = roleName;
     }
     role.addPermission(result.getString(3));
   }
   if (role != null) {
     roles.put(role.getName(), role);
   }
   return roles;
 }