1
LokiSharp 2018-10-11 09:52:21 +08:00
参考 Unix 一个用户可以有多个组的权限
|
2
TomatoYuyuko 2018-10-11 10:08:06 +08:00
在前端做过类似的权限管理系统不知道是不是你说的这种
人员→角色→权限,一个人可以赋予多个角色,每种角色可以拥有多个权限,权限还可以分地区赋予,, |
3
imn1 2018-10-11 10:23:25 +08:00
最简单的思想就是文件系统
同一个文件可以放到不同的路径,如果不想重复占用空间,就用软链、硬链、Alias …… |
4
abcbuzhiming OP @LokiSharp 你说的不是我的问题,我的系统里一样可以用户加入多个组,现在问题是组这一级的约束条件过于复杂
@TomatoYuyuko 关键在于角色本身受多种条件约束,而且这种条件在可预期的未来会不断增加,如何建立针对角色的通用模型非常困难 |
5
Youen 2018-10-11 11:38:11 +08:00
根据情况取舍, 比如给角色加数据权限
|
6
mcfog 2018-10-11 11:46:20 +08:00
架空角色的概念即可
权限点直接属于人,角色的概念只是一个方便批量赋权的快捷权限组合 唯一要想清楚的是角色内包含的权限发生变化的时候对人的影响,最完美的是需要在人-权限关系上追踪这个关系是继承自哪个角色的还是手动增减的,或者干脆把这个关系记录为{人,权限,来源},人+权限允许有多条记录,有任何一条有效就认为有权限 |
7
jswh 2018-10-11 11:51:58 +08:00
控制反转
把人属于某个角色从而获得某个权限,转成人拥有某个权限从而成为了某个角色。 |
8
monsterxx03 2018-10-11 11:53:29 +08:00
设置 policy, 权限只设计在 policy, policy 可以加在用户或组上, 在组内的用户自动继承组的 policy
|
9
abcbuzhiming OP |
10
jswh 2018-10-11 11:56:04 +08:00
@jswh 没写完就发出去了。这样,角色和权限的关系不变,人和之和权限发生关系。新建角色的时候,只是新建了一组权限和角色映射。人和角色的关系有点鸭子模型,并不关心人的角色,只关心人的权限,只要权限到位了,既可以是角色 A 也可以是角色 B。
以前想过,后来没写。 |
11
mcfog 2018-10-11 12:22:39 +08:00
@abcbuzhiming 不用解除用户和角色的关系,人还是可以有一个或多个角色,拿来展示也好什么也好都可以啊
这样说吧,RBAC 是类似这样的 User => Role => Permission,你现在碰到的是业务复杂到继续这个模型难以描述,所以我的建议是改成 Permission <=X= User => Role,其中这个 X 的计算过程,可以读 Role 也好年纪学院也好,星座也罢,都可以 |
12
elone 2018-10-11 12:27:30 +08:00 via iPhone
最近刚设计了权限系统,感觉很好。可以了解一下 casbin。
|
13
menc 2018-10-11 12:52:03 +08:00
这古老的话题。。。
仔细一琢磨你这全线系统不就是论坛么。 论坛普通会员有等级,等级低只能看帖,高点能发帖,再高点还能加减金币。 还有全局的管理员若干,可以进行删帖和全站公告。 “但是额外的,学校要求我们设置某种信息员用户组,每个专业的每个年级,各有 1 名信息员” ->这就是版主,论坛每个版块都要搞一个管理员,只能在版块内删帖 “再比如他们有院级督导,每个院 1 人;还有班级督导,每个班一人”->这就是论坛父子板块的概念 论坛还更复杂呢,有站务板块,只能管理层进;还有动态板块,只允许满足某种条件的人进入(充钱了,积分>xxx )的,比这个难多了 好好看看论坛用户体系怎么做的。 |
14
bk201 2018-10-11 13:02:31 +08:00
没明白,一个用户组权限不够他,就再加一个用户组权限给他不就好了?用户组又不固定,只是个权限集合的代名词罢了.
|
15
xuanbg 2018-10-11 13:28:34 +08:00
角色不是根据条件自动形成的,是需要人自己去新建的。实际需要什么角色就建什么角色,并把相应的权限赋予该角色。然后,把用户和角色进行关联就行了。
|
16
sniffles 2018-10-11 13:33:19 +08:00
基本模型:权限点和用户。前者对应单一具体功能,后者对应人。
角色就是权限点的组合而已,方便配用户的 |
17
icylogic 2018-10-11 13:59:11 +08:00 via iPhone
用户只简单地加 tag,根据 tag 做处理。不把逻辑混在数据里,
|
18
luozic 2018-10-11 14:06:47 +08:00
RABC 权限模型; 实际的,研究一下微软的域控和 unix 的账户权限是怎么搞得,比你这个复杂的多得多了。
|
19
rrfeng 2018-10-11 14:11:07 +08:00 via Android
资源
操作 用户 角色 用户组 |
20
zjsxwc 2018-10-11 15:05:04 +08:00
参考 Unix 一个用户可以有多个组的权限
|
21
hsluoyz 2019-07-13 14:28:29 +08:00
Casbin 实现了一套 RBAC with Domains 模型,应该可以满足复杂角色建模问题: https://casbin.org
|