📄 managerights.java
字号:
//// ____.// __/\ ______| |__/\. _______// __ .____| | \ | +----+ \// _______| /--| | | - \ _ | : - \_________// \\______: :---| : : | : | \________>// |__\---\_____________:______: :____|____:_____\// /_____|//// . . . i n j a h i a w e t r u s t . . .//package org.jahia.engines.rights;import java.util.*;import javax.servlet.http.HttpSession;import org.jahia.engines.JahiaEngine;import org.jahia.engines.users.SelectUG_Engine;import org.jahia.exceptions.JahiaException;import org.jahia.exceptions.JahiaSessionExpirationException;import org.jahia.params.ParamBean;import org.jahia.registries.ServicesRegistry;import org.jahia.services.acl.*;import org.jahia.services.usermanager.*;import org.jahia.utils.JahiaConsole;import org.jahia.utils.JahiaString;import org.jahia.utils.JahiaTools;/** * * <p>Title: Jahia</p> * <p>Description: CMS Enterprise Portal</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: Jahia SA</p> * @author map * @version 1.0 */public class ManageRights { private static ManageRights theObject = null; private static final String JSP_FILE = "/jsp/jahia/engines/rights/manage_rights.jsp"; private static final String CLASS_NAME = ManageRights.class.getName(); /** * @return a single instance of the object */ public static synchronized ManageRights getInstance() { if (theObject == null) { theObject = new ManageRights(); } return theObject; } /** * * @param jParams a ParamBean object * @param mode the mode, according to JahiaEngine * @param engineMap the engine parameters stored in a HashMap * @param aclID the ACL DB identifier from "jahia_acl" table * @return true if action was executed whithout problem * @throws JahiaException * @throws JahiaSessionExpirationException * @see org.jahia.engines.JahiaEngine */ public boolean handleActions (ParamBean jParams, int mode, HashMap engineMap, int aclID) throws JahiaException, JahiaSessionExpirationException { JahiaBaseACL theACL = null; try { theACL = new JahiaBaseACL (aclID); } catch (ACLNotFoundException ex) { return false; } catch (JahiaException ex) { return false; } HttpSession session = jParams.getSession(); session.setAttribute ("jahia_session_acl", theACL); switch (mode) { case (JahiaEngine.LOAD_MODE) : return loadACLEntries(jParams, engineMap, theACL); case (JahiaEngine.UPDATE_MODE) : return update( jParams, engineMap, theACL ); case (JahiaEngine.SAVE_MODE) : return saveACLEntries( jParams, engineMap, theACL ); } return false; } /** * Load all the ACL entries and inherited ACL from parent object. Format the * output to the following string sequence :<br> * [usr/grptype permStr provider usr/grpname properties]<br><br> * Where : * <li>usr/grptype, indicate if the entry is a user or a group<br> * <li>permStr, is the permissions sequence : Admin, write, rights accesses<br> * <li>provider, is the source where the user and the group are coming from<br> * <li>usr/grpname, is the username or the groupname<br> * <li>properties, is the user firstname following by the user lastname or * the user e-mail. Is the group member name for the group.<br><br> * Example :<br> * u jahia -wr gdupont G閞ard Dupont<br> * @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 the entries are loaded successfully * @throws JahiaException when acl "getID" failed or when renderLink to * select user popup failed. */ private boolean loadACLEntries(ParamBean jParams, HashMap engineMap, JahiaBaseACL acl) throws JahiaException { JahiaConsole.println(CLASS_NAME + ".loadACLEntries", "Load ACL entries in ManageRights - AclID: " + acl.getID()); JahiaConsole.println(CLASS_NAME + ".loadACLEntries", acl.toString()); ArrayList aclEntries = new ArrayList(); // Lookup for USER ACL entries and inherited ACL Vector userList = acl.getUsernameList(null); Enumeration userListEnum = userList.elements(); while (userListEnum.hasMoreElements()) { String userKey = (String)userListEnum.nextElement(); JahiaConsole.println(CLASS_NAME + ".loadACLEntries", userKey); JahiaUser user = ServicesRegistry.getInstance().getJahiaUserManagerService().lookupUser(userKey); if (user != null) { // Construct permissions string String permStr = getPermissionsAsString(user, acl, jParams); // Where does the user coming from ? String provider = JahiaString.adjustStringSize(user. getProviderName(), 6) + " "; // Construct a displayable username String usrname = JahiaString.adjustStringSize(user.getUsername(), 10); // Find a displayable user property String properties = ""; String firstname = user.getProperty("firstname"); String lastname = user.getProperty("lastname"); if (firstname != null) { properties += firstname; if (firstname.length() < 20) properties += " "; } if (lastname != null) properties += lastname; if ("".equals(properties)) { String email = user.getProperty("email"); if (email != null) properties += email; } properties = JahiaString.adjustStringSize(properties, 20); // Construct select option text String aclEntryStr = "u " + permStr + " " + provider + usrname + " " + properties; // Construct select option value String value = "00000000" + permStr + usrname + "u" + userKey; aclEntries.add(JahiaTools.replacePattern(value, " ", " ")); aclEntries.add(JahiaTools.replacePattern(aclEntryStr, " ", " ")); } else { JahiaConsole.println(CLASS_NAME + ".loadACLEntries", "Ignoring ACL entry for userKey " + userKey + " as the user could not be found !"); } } // Look up group Vector groupList = acl.getGroupnameListNoAdmin(null); Enumeration groupListEnum = groupList.elements(); while (groupListEnum.hasMoreElements()) { String groupKey = (String)groupListEnum.nextElement(); JahiaConsole.println(CLASS_NAME + ".loadACLEntries", groupKey); JahiaGroup group = ServicesRegistry.getInstance().getJahiaGroupManagerService().lookupGroup(groupKey); // Construct permissions string String permStr = getPermissionsAsString(group, acl, jParams); // Where does the group coming from ? String provider = JahiaString.adjustStringSize(group.getProviderName(), 6) + " "; // Construct a displayable groupname String grpname = JahiaString.adjustStringSize(group.getGroupname(), 10); // Find some group members for properties Enumeration grpMembers = group.members(); String members = "("; while (grpMembers.hasMoreElements()) { Object obj = (Object)grpMembers.nextElement(); if (obj instanceof JahiaUser) { JahiaUser tmpUser = (JahiaUser)obj; members += tmpUser.getUsername();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -