请教下权限设计(不知道是不是这个词)

2013-12-31 09:19:08 +08:00
 arbipher
最近在学习RESTful的后端。
比如说一个resource是user,一个resource是post。
在模型层面,我能用ER图来描述,user的项、post的项、post对user的外键依赖等。

要涉及权限问题,比如
通过auth的user才可以新建post,一个user一天只能新建不超过配额的post,一个user不能更新别的用户的post。
这些东西,有代码之外的东西可以描述吗?就像ER图之于Model。

还有关于这些东西,有什么好的教材吗?最佳实践之类的。不知道怎么下牙啊。请教各位v2ex大神。

预祝新年快乐~
4762 次点击
所在节点    程序员
10 条回复
wubo19842008
2013-12-31 10:13:51 +08:00
权限设计一般都是用RBAC模型,也就是用户-角色-资源的三者关系
Keyes
2013-12-31 10:17:19 +08:00
对ER图什么的不了解,GOOGLE了一下有个粗浅的认识,ER图用来表现数据对象的各种关系(现学现卖有错望指点)

接下来看了一下:“通过auth的user才可以新建post,一个user一天只能新建不超过配额的post,一个user不能更新别的用户的post。”

这是数据库层面干的事吗?不是业务逻辑层做的吗?需要体现在ER这边吗?
arbipher
2013-12-31 10:27:55 +08:00
@Keyes 我没说清楚,sorry。就像“ER图”之于“Model”,用ER来描述 Model,有没有类似的东西,可以在“非代码”的层面描述“权限、配额”这些东西。
A is to B what C is to D.
Keyes
2013-12-31 10:34:24 +08:00
@arbipher 啊,你是说:ER图描述Model,____东西可以描述权限、配额类的东西?
arbipher
2013-12-31 10:37:13 +08:00
@Keyes 是。。。
hustlzp
2013-12-31 10:50:37 +08:00
@wubo19842008 感谢分享,让我知道还有RBAC这个概念...
hustlzp
2013-12-31 10:52:34 +08:00
Flask的话,Flask-Principal这个插件不错。

http://pythonhosted.org/Flask-Principal/
arbipher
2013-12-31 18:12:05 +08:00
@wubo19842008 我也是第一次指知道RBAC,去wiki、stackoverflow和quora逛了一圈,大概知道是什么东西了。
我是在看django-rest-framework的文档时想到这个问题的。实例给的权限控制,就是在APIView里面指定,觉得这么硬编码进去不好。
如果是基于role的话,APIView根据这个角色所在的role的permission来判断。感觉上可行。我试试
谢谢。
arbipher
2013-12-31 18:12:48 +08:00
@hustlzp 我用的django
hustlzp
2013-12-31 18:39:02 +08:00
@arbipher django的话应该很成熟了,github上搜一下。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/95127

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX