今天Boss在谈权限管理问题,搞不太清楚。主要涉及的对象有:用户、角色、用户组、权限
----------------------------------------
问:ERP中的权限管理模型
最近在考虑功能权限、数据权限如何配置的问题,深受困扰
角色、用户、用户组之间什么关系, 用户组和角色的关系是多对多的关系?
操作权限建立在角色、用户、用户组之上?
如果知道某一操作, 是否能够简单地找到有权限的用户?
如果知道某一用户是否能够快速判断他的所有权限?
用户的基本认证(用户可以使用系统最基本的功能而无需进行特别功能的权限检查)如何完成?
用户权限的概念是如何在系统中反映地? 角色, 用户组, 操作集, 都是什么捏?
---------------------------
这些是功能权限,如果涉及到数据权限,该如何管理呢???
答:简单建议:
首先,你定义了三个对象:角色、用户、用户组,其中角色和用户组他在程序本质上应该视同一致。但角色可以定义为是企业管理结构里相应的职位,就当是预先设置的用户组,比如采购经理不管在哪个公司涉及的权限都八九不离十。
2、用户归属这个角色后,首先是继承角色的权限,然后再加上用户本身的权限,当然如果用户设置了拒绝权限那拒绝权限是最高优先处理。用户再归属用户组权限,同样的方式处理。简单理解,用户同时归属多个组,就继承了多个组的权限,再加自己的权限,当然拒绝权限就不用再重复了。
3、角色和用户组之间的关系,就当是组与组的关系。角色只是预先设置了一些权限。
4、判断某个操作的权限,首先你会有一张后台权限表(简单点):包括功能代码、用户代码(包括角色和组)、权限字。 这时你想知道某功能有哪些权限用户或者想知道某一个用户总的有哪些功能,只需要简单的SELECT
语句就可以实现。
5、一般就你说的用户的基本认证处理,有两种:1、首先封所有功能菜单、再根据权限表逐个开放。2、首先开放所有功能菜单,再根绝权限表逐个封闭。 一般ERP软件都采用第1种方案,因为一般用户他拥有整个系统功能都在50%以下,考虑效率问题,建议采用第一种。相反就最好采用第二种。
6、用户权限的概念请参照我的1、2、3点。