在插件的Spring配置文件中增加下面的bean定义来增加主菜单。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans default-autowire="byName"> <bean parent="pluginMainMenu"> <!-- 主菜单ID,唯一的数字串 --> <property name="id" value="1111111111" /> <!-- 主菜单名称 --> <property name="name" value="NC组织数据同步" /> <!-- 主菜单排序号 --> <property name="sortId" value="1" /> <!-- 二级菜单 --> <property name="children"> <list> <bean class="com.seeyon.ctp.plugin.PluginMenu"> <!-- 二级菜单ID,唯一的数字串 --> <property name="id" value="1111111112" /> <!-- 二级菜单名称 --> <property name="name" value="菜单权限控制" /> <!-- 菜单打开方式 mainfrm:工作区; newWindow:新窗口-- > <property name="target" value="mainfrm" /> <!-- 菜单图标 --> <property name="icon" value="/apps_res/plugin/nc/images/2401.gif" /> <!-- 菜单地址,出于安全方面考虑此url必须是协同内部界面,如果想跳转请在内部界面实现跳转 --> <property name="url" value="/index/indexController.do?method=searchAll" /> <!-- 菜单访问权限的验证类 --> <property name="menuCheck"> <bean class="com.seeyon.ctp.menu.check.UserMenuCheck" /> </property> </bean> </list> </property> <!-- 菜单访问权限的验证类 --> <property name="menuCheck"> <bean class="com.seeyon.ctp.menu.check.UserMenuCheck" /> </property > </bean> </beans>
每一个插件定义的菜单都是独立的主菜单,暂不支持在指定位置添加子菜单项。
实现一个AbstractMenuCheck的实现类,通过传入的登录人员信息控制是否显示, 并配置到菜单定义的XML中。
集团管理员菜单权限控制代码示例:
package com.seeyon.ctp.menu.check; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class GroupAdminMenuCheck extends AbstractMenuCheck { private static final Log log = LogFactory.getLog(GroupAdminMenuCheck.class); @Override public boolean check(long memberId, long loginAccountId) { boolean isAdmin = false; //TODO判断是否是集团管理员 return isAdmin; } }
为了支持原有的userMenus、groupMenus、accountMenus、systemMenus等特性,系统缺省提供以下几个MenuCheck :
-
com.seeyon.ctp.menu.check.GroupAdminMenuCheck 集团管理员菜单权限校验
-
com.seeyon.ctp.menu.check.AccountAdminMenuCheck 单位管理员菜单权限校验
-
com.seeyon.ctp.menu.check.SystemAdminMenuCheck 系统管理员菜单权限校验
-
com.seeyon.ctp.menu.check.AuditAdminMenuCheck 审计管理员菜单权限校验
-
com.seeyon.ctp.menu.check.UserMenuCheck 非管理员菜单权限校验(普通用户)
-
com.seeyon.ctp.menu.check.MenuForAllUsersChecker 针对所有用户菜单全部验证通过