OA系统分有许多的模块,如系统管理模块、等一些比较高级的业务操作。此类业务是不允许让普通员工来操作的,思路如下:
给系统添加角色表,每个用户对应一个角色,每个角色可以拥有多个权限,
如下:创建权限表(PRIVILEGE):
该表定义了权限操作的名称以及可操作的action路径,权限还定义了其下的二级子权限。
通过表中列的设计大致可以看出我前台关于对应权限操作的标签应是从该表中的NAME列来进行取值(进一步动态渲染成用户可以看到的标签来)的。
创建值为与角色相关联的表(sys_position_privilege):
如上:定义了3号经历的权限是(部门管理)
在该用户登录的时候将该用户的信息保存到session中,
该信息中包括了其对应的所有角色信息的集合。
关于前台的解决方案是:
重写OGNL标签在标签输出的时候,读取该用户的角色和权限信息,渲染出对应权限范围的功能标签: