最近在做OA的权限这块,但没有好的思路,上网搜了些资料,需要先做好数据库设计,我按照网上别人所说的设计去做,但是在权限表的那块,说是由模块和动作去组合成权限,这个我能明白,但是我觉得权限的话还是得通过自己手动的去拼接吧
比如模块 sys_user(在模块表中字段为moduleValue) 动作有add /delete /update /get(在动作表中字段为actionValue) 那我拼出来的权限(在权限表中字段为permitValue)有sys_user_add/sys_user_delete/sys_user_update /sys_user_get 但是这个拼接我是靠自己手动去组合的(也就是手动去添加),因为我不知道业务里面如何将那两个值组合在一起,但是如果是手动的话我没有必要需要模块表和动作表,我参考的资料如下
http://www.blogjava.net/DreamAngel/archive/2009/02/14/254641.html
权限 在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。 我只能理解说法,不知道如何做,如果可以的话可否举个业务例子,希望前辈们指点,小弟感激不尽,拜谢!!!
比如模块 sys_user(在模块表中字段为moduleValue) 动作有add /delete /update /get(在动作表中字段为actionValue) 那我拼出来的权限(在权限表中字段为permitValue)有sys_user_add/sys_user_delete/sys_user_update /sys_user_get 但是这个拼接我是靠自己手动去组合的(也就是手动去添加),因为我不知道业务里面如何将那两个值组合在一起,但是如果是手动的话我没有必要需要模块表和动作表,我参考的资料如下
http://www.blogjava.net/DreamAngel/archive/2009/02/14/254641.html
权限 在系统中,权限通过模块+动作来产生,模块就是整个系统中的一个子模块,可能对应一个菜单,动作也就是整个模块中(在B/S系统中也就是一个页面的所有操作,比如“浏览、添加、修改、删除”等)。将模块与之组合可以产生此模块下的所有权限。 我只能理解说法,不知道如何做,如果可以的话可否举个业务例子,希望前辈们指点,小弟感激不尽,拜谢!!!
权限表由模块和动作组成
使用JDK1.5的注解也就是Annonation,自定义一个Annonation,包括两个属性,一个是模块名,一个是动作名,在处理的业务方法上比如action上添加该注释,通过interceptor或者Spring的AOP在访问该方法前进行拦截,用JAVA反射取得该方法的上自定义的Annonation,跟登陆用户的权限进行比较
解决了功能级权限以后,你就开始要留意数据级权限了(也就是总公司的人能查询哪些数据,分公司的人能查询哪些数据,这种行列级权限)。到这个时候,建议你参考Ralasafe。
然后在user表中放一个String字段,放该用户所拥有的权限的p_id,ping成一个字符串中间用逗号隔开,比如“1,2,3,4,5,”;用的时候用split(",");这样基本上可以控制树的形状了,我想通过这个思路,楼主也应该明白每个模块的 增删改查的权限控制了吧!
http://www.family168.com/springsecurity/demo/security-swf.html