📄 managerights.java
字号:
} else { JahiaGroup tmpGroup = (JahiaGroup)obj; members += tmpGroup.getGroupname(); } if (members.length() > 20) break; if (grpMembers.hasMoreElements()) members += ", "; } members += ")"; members = JahiaString.adjustStringSize(members, 20); // Construct select option text String aclEntryStr = "g " + permStr + " " + provider + grpname + " " + members; // Construct select option value String value = "00000000" + permStr + grpname + "g" + groupKey; aclEntries.add(JahiaTools.replacePattern(value, " ", " ")); aclEntries.add(JahiaTools.replacePattern(aclEntryStr, " ", " ")); } engineMap.put("aclEntries", aclEntries); engineMap.put("selectUsrGrp", SelectUG_Engine.getInstance().renderLink(jParams, "")); engineMap.put("inheritance", new Integer(acl.getInheritance())); engineMap.put("fieldForm", ServicesRegistry.getInstance(). getJahiaFetcherService().fetchServlet(jParams, JSP_FILE)); return true; } /** * * @param jParams * @param engineMap * @param theACL * @return always true */ private boolean update( ParamBean jParams, HashMap engineMap, JahiaBaseACL theACL ) { // do nothin', baby JahiaConsole.println("ManageRights.update","Calling update, just setting updated flag"); engineMap.put("rightsUpdated", new Boolean(true)); return true; } // end update /** * Save all ACL entries modifications. * @param jParams a Parambean object * @param engineMap the engine parameters stored in a HashMap * @param acl the ACL DB identifier from "jahia_acl" table * @return true if save successful * @throws JahiaException */ private boolean saveACLEntries(ParamBean jParams, HashMap engineMap, JahiaBaseACL acl) throws JahiaException { JahiaConsole.println(CLASS_NAME + ".saveACLEntries", "Save ACL entries in ManageRights - AclID: " + acl.getID()); // Check if the inheritance has to be permanently prevent or not. String cutRestAllInherit = jParams.getRequest().getParameter("cutRestAllInherit"); if (cutRestAllInherit != null) { // Is the check box checked ? if (acl.getInheritance() == ACLInfo.INHERITANCE) { // Has it changed ? acl.setInheritance(ACLInfo.NO_INHERITANCE); } } else { if (acl.getInheritance() == ACLInfo.NO_INHERITANCE) { // Has the checkbox changed ? acl.setInheritance(ACLInfo.INHERITANCE); } } String[] submitedACLEntries = jParams.getRequest().getParameterValues("aclEntries"); if (submitedACLEntries == null || submitedACLEntries[0].substring(0,4).equals("null")) { return true; } for (int i = 0; i < submitedACLEntries.length; i++) { if ("00000000".equals(submitedACLEntries[i].substring(0, 8))) { continue; // Don't do anything if no changes to the ACL entry. } // What kind of object has to be saved : user or group ? Object usr_grp; String usr_grpName; JahiaConsole.println(CLASS_NAME + ".saveACLEntries", "Submited ACL entry : " + submitedACLEntries[i]); if (submitedACLEntries[i].charAt(22) == 'u') { usr_grp = ServicesRegistry.getInstance().getJahiaUserManagerService(). lookupUser(submitedACLEntries[i].substring(23)); usr_grpName = ((JahiaUser)usr_grp).getUsername(); } else { usr_grp = ServicesRegistry.getInstance().getJahiaGroupManagerService(). lookupGroup(submitedACLEntries[i].substring(23)); usr_grpName = ((JahiaGroup)usr_grp).getGroupname(); } // Decode the select box value parameters String permissions = submitedACLEntries[i].substring(8, 11); if (submitedACLEntries[i].charAt(0) == '1') { JahiaConsole.println(CLASS_NAME + ".saveACLEntries", "Added ACL entry for user : " + usr_grpName); setACLEntry(usr_grp, permissions, acl); } else if (submitedACLEntries[i].charAt(11) == '%') { JahiaConsole.println(CLASS_NAME + ".saveACLEntries", "Cut inheritance for user : " + usr_grpName); setACLEntry(usr_grp, permissions, acl); } else if (submitedACLEntries[i].charAt(2) == '1') { JahiaConsole.println(CLASS_NAME + ".saveACLEntries", "Remove ACL for user : " + usr_grpName); try { if (usr_grp instanceof JahiaUser) { acl.removeUserEntry((JahiaUser)usr_grp); } else { acl.removeGroupEntry((JahiaGroup)usr_grp); } } catch (JahiaACLException jae) { JahiaConsole.println(CLASS_NAME + ".saveACLEntries", "Cannot remove user '" + usr_grpName + "' entry from ACL !"); return false; } continue; } else if (submitedACLEntries[i].charAt(3) == '1') { JahiaConsole.println(CLASS_NAME + ".saveACLEntries", "Permissions have changed to " + permissions + " for user : " + usr_grpName); setACLEntry(usr_grp, permissions, acl); } if (submitedACLEntries[i].charAt(1) == '1') { //System.out.println("Reset child permissions for user : " + user.getUsername()); /** @todo Reset child permissions. */ } } return true; } /** * Save or update the ACL modifications to the DB. * @param usr_grp the object to save * @param perm the permissions to set * @param acl the corresponding DB acl ID */ private void setACLEntry(Object usr_grp, String perm, JahiaBaseACL acl) { JahiaACLEntry permissions = new JahiaACLEntry(); permissions.setPermission(acl.READ_RIGHTS, perm.charAt(0) == 'r' ? JahiaACLEntry.ACL_YES : JahiaACLEntry.ACL_NO); permissions.setPermission(acl.WRITE_RIGHTS, perm.charAt(1) == 'w' ? JahiaACLEntry.ACL_YES : JahiaACLEntry.ACL_NO); permissions.setPermission(acl.ADMIN_RIGHTS, perm.charAt(2) == 'A' ? JahiaACLEntry.ACL_YES : JahiaACLEntry.ACL_NO); try { if (usr_grp instanceof JahiaUser) { acl.setUserEntry((JahiaUser)usr_grp, permissions); } else { acl.setGroupEntry((JahiaGroup)usr_grp, permissions); } } catch (JahiaACLException jae) { JahiaConsole.println(CLASS_NAME + ".saveACLEntries.setACLEntry", "Cannot set user or group ACL entry !!"); } } /** * Translate the ACL entry permissions setting to a string. * @param usr_grp the object which have permissions * @param acl the corresponding DB acl id * @return a string permissions. */ private String getPermissionsAsString(Object usr_grp, JahiaBaseACL acl, ParamBean jParams) { try { String permStr = ""; JahiaACLEntry aclEntry = usr_grp instanceof JahiaUser ? acl.getUserEntry((JahiaUser)usr_grp) : acl.getGroupEntry((JahiaGroup)usr_grp); if (aclEntry != null) { // Look up permissions in the local ACL entry; fuck off the // partial inheritance. int permissions = aclEntry.getState(); permStr += (permissions >> acl.READ_RIGHTS & 1) != 0 ? "r" : "-"; permStr += (permissions >> acl.WRITE_RIGHTS & 1) != 0 ? "w" : "-"; permStr += (permissions >> acl.ADMIN_RIGHTS & 1) != 0 ? "A " : "- "; } else { // Look up permissions; pur inheritance if (usr_grp instanceof JahiaUser) { permStr += acl.getPermission((JahiaUser)usr_grp, acl.READ_RIGHTS,jParams.getSiteID()) ? "r" : "-"; permStr += acl.getPermission((JahiaUser)usr_grp, acl.WRITE_RIGHTS,jParams.getSiteID()) ? "w" : "-"; permStr += acl.getPermission((JahiaUser)usr_grp, acl.ADMIN_RIGHTS,jParams.getSiteID()) ? "A*" : "-*"; } else { permStr += acl.getPermission((JahiaGroup)usr_grp, acl.READ_RIGHTS) ? "r" : "-"; permStr += acl.getPermission((JahiaGroup)usr_grp, acl.WRITE_RIGHTS) ? "w" : "-"; permStr += acl.getPermission((JahiaGroup)usr_grp, acl.ADMIN_RIGHTS) ? "A*" : "-*"; } } return permStr; } catch (JahiaACLException jae) { JahiaConsole.println(CLASS_NAME + ".permissionStr.setACLEntry", "Cannot get user or group ACL entry !!"); return ""; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -