Skip to content

权限、角色和账号

账号、角色与权限

MA - 信息平台

数据库结构

                                            contenttypes_classify (deprecated)
                                                ∧
                                                |
                                                |   django_content_type.classify_id
                                                |   many2one
                                                |
                                            django_content_type (deprecated)
                                                ∧
                                                |   tbl_permission.content_type_id
                                                |   many2one
                                                |
                    tbl_partner_permission      |               tbl_permission.level2_id
                    many2many                   |               many2one
tbl_partner     <---------------------->    tbl_permission  --------------------------> tbl_permission_class
    ∧                                           ∧
    |                                           |
    |   tbl_employee.partner_id                 |   tbl_role_permission
    |   many2one                                |   many2many
    |                                           |
    |               tbl_employee_role           |
    |               many2many                   ∨
tbl_employee    <---------------------->    tbl_role

备注:

  • contenttypes_classify 是老的一级分类,django_content_type 是老的二级分类。虽然这两个表已经废弃了,但是由于 old_master 的存在,这两个表还有存在的必要
  • tbl_permission_class 表中同时存了一级和二级分类

如何添加新的权限

只能手动修改数据库:

  1. 在 tbl_permission_class 添加或者找到一级分类和二级分类
  2. 在 contenttypes_classify 和 django_content_type 中找到一级分类和二级分类
  3. 在 tbl_permission 中添加权限

如何给加盟商分配权限

在内部系统 gmadmin.guanmai.cn 中管理

  • 账号管理/超级管理员/加盟商管理员/按加盟商查看: 给某个加盟商分配权限
  • 账号管理/超级管理员/加盟商管理员/按权限查看: 把某个权限分配给加盟商

如何给用户分配权限

  • 加盟商管理员自动地拥有了这个加盟商的所有权限
  • 使用加盟商管理员登录 manage.guanmai.cn/gm_account 可以登录权限管理系统
  • 给角色分配权限:信息平台/角色管理/按角色查看/编辑/角色权限
  • 给用户分配角色:信息平台/用户管理/编辑/角色
  • 用户拥有的权限 是 用户所属的角色拥有的权限的并集

station - 业务平台

数据库结构

                                            django_content_type (deprecated)
                                                ∧
                                                |   auth_permission.content_type_id
                                                |   many2one
                                                |
                    tbl_station_permission      |               auth_permission.level2_id
                    many2many                   |               many2one
station [mongo]     <------------------>    auth_permission --------------------------> tbl_permission_class
    ∧                                           ∧
    |                                           |
    |   station_user                            |   auth_role_permission
    |   many2one                                |   many2many
    |                                           |
    |               auth_user_role              |
    ∨               many2many                   ∨
auth_user       <---------------------->    tbl_role

如何添加新权限

只能手动修改数据库:

  • tbl_permission_class
  • django_content_type
  • auth_permission

如何给站点分配权限

站点拥有的权限也是在 gmadmin.guanmai.cn 中管理的

如何给用户分配权限

所有 station 用户(包括管理员)和权限之间的关系都是 user <--> role <--> permission。station 管理员登录 station.guanmai.cn/gm_account 或者 MA 管理员登录 manage.guanmai.cn/gm_account 可以管理旗下的用户和角色,详见上面 MA 的章节。

注意事项以及特殊逻辑

  • MA 和 station 是两套不同的账号和权限体系,不要弄混了。
  • station 用户拥有的权限,是不会超出这个用户所属站点拥有权限的(如果超出了就是脏数据)。MA 同理。
  • 特殊逻辑好多,之后有时间再写吧 ...