CRM系统 基于RBAC角色的菜单权限访问控制
核心功能的实现
- RBAC10张数据表(用户表,用户组表,角色表,权限表,菜单表,用户-用户组表,用户-角色表,角色用户组表,角色-权限表,菜单权限表)
- jwt实现用户的状态保持
- 请求钩子中获取用户的信息,装饰器对身份进行校验
- 根据用户的身份,获取对应的角色信息,角色的子角色信息,用户组信息,子用户组信息
- 使用请求钩子对url进行校验,当访问不属于自己角色的url时,拒绝访问
- 角色的父类角色拥有子类角色的全部权限
postman测试接口
- 登录接口/获取jwt_token /login
- 根据登录的用户返回能访问的菜单列表 /show_menus
- 管理员查看用户对应的角色列表,组列表 /roles
- 只有url访问权限的用户才能访问 /users
- 测试sales访问权限 /sales
- 测试SalesManager访问权限 /show_menus
- 测试Cfo访问权限 /cfo_menu
测试用户
- 销售人员 sales
- 销售主管 sales_director
- 销售总监 sales_manage
- 销售部负责人 cfo
菜单资源访问权限逻辑(功能完成)
- 上级领导拥有自己的独立的菜单访问资源
- 上级领导可以访问下级所有的菜单资源
角色用户组
- 用户组用来区分部门,大区,小组
- 角色用户组关联的是用户组的负责人角色
其他
- 需要在配置文件中配置 hosts
- 数据库已经导出,在model文件夹中