Skip to content

Latest commit

 

History

History
37 lines (33 loc) · 1.65 KB

8.md

File metadata and controls

37 lines (33 loc) · 1.65 KB

完善所有接口的并发处理

tag: 0.1.8

涉及文件

account/controllers/department.py
account/apis/department.py
account/urls/department.py
account/controllers/role.py
account/apis/role.py
account/urls/role.py

概念

部门关联用户:用户可以属于多个部门,同一个部门允许有多个负责人.
在设计权限时,会给部门负责人增删部门用户的权限.


角色关联用户:用户可以关联多个角色,权限取多个角色的并集.


角色关联模块:角色关联了模块,即可以在前端显示对应菜单.
角色关联权限:角色关联了权限,前端对应操作按钮就会显示,后端接口权限验证也可以通过.
当角色关联权限时,如果未关联模块,则模块自动建立关联关系.
当角色删除同一模块下所有权限时,不会自动取消与模块的关联关系.

代码

@onlyone.lock(DepartmentUserModel.model_sign, 'department_id:user_id', 'department_id:user_id', 30)
def create_department_user(department_id, user_id, typ, operator=None):
    pass

在建立关联关系时,参数是两个模块对象的id,通过两个ID建立唯一标识,防止并发操作.


这里在写列表接口时,有两种写法,一种就是目前使用的,新写一个接口查询;
另一种就是在原来的接口上增加参数.
比如获取角色关联用户列表,这里写了一个新的接口查询,但是也可以在原来的用户列表接口上增加一个role_id的参数.
这两种都各有好处,尤其是后一种实现了统一管理同一资源的列表接口.