该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-14
最后修改:2009-11-14
<?xml version="1.0" encoding="UTF-8"?> <Menus> <Items id="SystemSetting" text="系统设置" iconCls="menu-system"> ... <Item id="AppRoleView" iconCls="menu-role" text="角色设置"> <Function id="_AppRoleList" text="查看角色" iconCls="menu-list"> <url>/system/listAppRole.do</url> </Function> <Function id="_AppRoleAdd" text="添加角色" iconCls="menu-add"> <url>/system/listAppRole.do</url> <url>/system/saveAppRole.do</url> </Function> <Function id="_AppRoleEdit" text="编辑角色" iconCls="menu-add"> <url>/system/listAppRole.do</url> <url>/system/saveAppRole.do</url> </Function> <Function id="_AppRoleDel" text="删除角色" iconCls="menu-del"> <url>/system/listAppRole.do</url> <url>/system/mulDelAppRole.do</url> </Function> <Function id="_AppRoleGrant" text="授权角色"> <url>/system/listAppRole.do</url> <url>/system/grantAppRole.do</url> </Function> </Item> ... <Item id="ReportTemplateView" iconCls="menu-report" text="报表管理"> ... </Item> </Items> <!--其他模块 --> <Items> ... </Items> </Menus>
上面的功能“添加角色”,“删除角色”以及管理一栏中的“删除”,“编辑”,“授权”等功能,则对应为menu.xml中的Item下的Function标签的配置,如: <Function id="_AppRoleAdd" text="添加角色" iconCls="menu-add"> <url>/system/listAppRole.do</url> <url>/system/saveAppRole.do</url> </Function>
当然,这种还是要避免出现,因为系统在客户端出现的功能菜单,均是有权访问的。 var toolbar = new Ext.Toolbar({ id : 'AppRoleFootBar', height : 30, bodyStyle:'text-align:left', items : [] }); if(isGranted('_AppRoleAdd')){ toolbar.add(new Ext.Button({ iconCls : 'btn-add', text : '添加角色', handler : function() { new AppRoleForm(); } })); } if (isGranted('_AppRoleDel')) { toolbar.add(new Ext.Button({ iconCls : 'btn-del', text : '删除角色', handler : function() { var grid = Ext.getCmp("AppRoleGrid"); var selectRecords = grid.getSelectionModel().getSelections(); if (selectRecords.length == 0) { Ext.Msg.alert("信息", "请选择要删除的记录!"); return; } var ids = Array(); for (var i = 0; i < selectRecords.length; i++) { ids.push(selectRecords[i].data.roleId); } AppRoleView.remove(ids); } })); } 修改二 if(isGranted('_AppRoleDel')) str = '<button title="删除" value=" " class="btn-del" onclick="AppRoleView.remove('+ editId + ')"></button>'; if(isGranted('_AppRoleEdit')) str += ' <button title="编辑" value=" " class="btn-edit" onclick="AppRoleView.edit('+ editId + ')"></button>'; if(isGranted('_AppRoleGrant')) str += ' <button title="授权" value=" " class="btn-grant" onclick="AppRoleView.grant('+ editId + ',\'' + roleName + '\')"> </button>';
二、同步menu.xml的数据至数据库
四、拥有超级管理角色,将具有系统的所有访问权限。
该实现涉及到相关比较多的知识,表设计如下所示:
其实现细节,请关注后面的博文《JOffice 的基于角色的权限设计及实现(Spring Security Ext版本)》 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2786 次