@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"); }
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])); } }
/** * 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; }