在项目开发中经常会遇到权限控制的问题,用过Flask-Principal,不过感觉用得非常不习惯,所以花时间倒腾了一下。
库文件是flask_permission.py。
然后在文件rules.py中定义细粒度的Rule。每个Rule类的一般需要定义:
* base():定义该rule的先验rule
* check():定义该rule的检测逻辑
* deny():若该rule未通过,需要做出何种反馈(比如跳转登陆页、返回403等)
接着在permissions.py中根据之前定义的rules拼装各种业务需要的权限,使用`&`与`|`操作符。
最后就可以用了,在examples.py中提供了三种使用示例:
* 用于view的装饰器
* 用于view代码中
* 用于Jinja2中
目前用于现有的小项目还是够用的。如果权限管理的需求非常复杂的话,是hold不住的,估计得祭出RBAC...
库文件是flask_permission.py。
然后在文件rules.py中定义细粒度的Rule。每个Rule类的一般需要定义:
* base():定义该rule的先验rule
* check():定义该rule的检测逻辑
* deny():若该rule未通过,需要做出何种反馈(比如跳转登陆页、返回403等)
接着在permissions.py中根据之前定义的rules拼装各种业务需要的权限,使用`&`与`|`操作符。
最后就可以用了,在examples.py中提供了三种使用示例:
* 用于view的装饰器
* 用于view代码中
* 用于Jinja2中
目前用于现有的小项目还是够用的。如果权限管理的需求非常复杂的话,是hold不住的,估计得祭出RBAC...