⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 managerights.java

📁 java 写的一个新闻发布系统
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                } 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, " ", "&nbsp;"));            aclEntries.add(JahiaTools.replacePattern(aclEntryStr, " ", "&nbsp;"));        }        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&#032;" : "-&#032;";            } 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 + -