用户、角色与权限

在公司里面做项目的时候,有用到一些关于系统设计的相关内容。这里我将我在实际工作中遇到的一些问题进行整理。

经常整理、反思,才能进步。——一位伟大的哲学家

还原真相:

事情是这样的,我在实习的时候,我的实习导师安排我做系统后台管理中的“用户信息管理”、“角色管理”、“权限管理”三个进行分析,并让我说了说我的想法。初生牛犊不怕虎,稍微思索了下,就开始讲。在讲到角色管理和权限管理的时候,我就说可以将角色管理和权限管理合并,直接单独对用户进行赋予权力。
事实上这样子也是没错的,毕竟我在后面在blog上查询资料的时候,我发现其实很多系统并没有将这个功能进行如此的细致化。想着是央企,这么做应该有自己的道理。导师肯定了我的想法,但还是要我去查下资料,了解下“角色和用户的关系”,我意识到我可能出了问题了。

在网上看了很多资料,我算是有点明白了。这里将我找到的信息给大家分享一下:

概念:
Who:权限的拥用者或主体(Principal(负责人)、User、Group、Role、Actor等等)
What:权限针对的对象或资源(Resource、Class)。
How:具体的权限(Privilege, 正向授权与负向授权)。
Role:是角色,拥有一定数量的权限。
Operator:操作。表明对What的How 操作。
解释:
User:与 Role 相关,用户仅仅是纯粹的用户,权限是被分离出去了的。User是不能与 Privilege 直接相关的,User 要拥有对某种资源的权限,必须通过Role去关联。解决 Who 的问题。
Resource:就是系统的资源,比如部门新闻,文档等各种可以被提供给用户访问的对象。
Privilege:是Resource Related的权限。就是指,这个权限是绑定在特定的资源实例上的。比如说部门新闻的发布权限,叫做”部门新闻发布权限”。这就表明,该Privilege是一个发布权限,而且是针对部门新闻这种资源的一种发布权限。Privilege是由Creator在做开发时就确定的。Privilege 如”删除” 是一个抽象的名词,当它不与任何具体的 Object 或 Resource 绑定在一起时是没有任何意义的。拿新闻发布来说,发布是一种权限,但是只说发布它是毫无意义的。因为不知道发布可以操作的对象是什么。只有当发布与新闻结合在一起时,才会产生真正的 Privilege。这就是 Privilege Instance。
Role:是粗粒度和细粒度(业务逻辑)的接口,一个基于粗粒度控制的权限框架软件,对外的接口应该是Role,具体业务实现可以直接继承或拓展丰富Role的内容,Role不是如同User或Group的具体实体,它是接口概念,抽象的通称。
Operator的定义包括了Resource Type和Method概念。即,What和How的概念。之所以将What和How绑定在一起作为一个Operator概念而不是分开建模再建立关联,这是因为很多的How对于某What才有意义。比如,发布操作对新闻对象才有意义,对用户对象则没有意义。 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值