0.关系介绍

用户、角色、部门、岗位关系介绍表

实体关联实体关系类型说明
用户角色多对多一个用户可属于多个角色
用户部门多对一用户必须归属一个部门
用户岗位多对多用户可兼任多个岗位(如部门主管+项目经理)
部门部门树形自关联父部门下可有多个子部门

关系图展示如下:

权限控制流:


1.用户

启动后,我们访问用户菜单,可以看到默认有两个用户,

(1)新增用户

点击新增按钮,就可以新增用户。

在ruoyi自带的sql里面,可以看到创建系统用户表的sql语句。

drop table if exists sys_user;
create table sys_user (
  user_id           bigint(20)      not null auto_increment    comment '用户ID',
  dept_id           bigint(20)      default null               comment '部门ID',
  user_name         varchar(30)     not null                   comment '用户账号',
  nick_name         varchar(30)     not null                   comment '用户昵称',
  user_type         varchar(2)      default '00'               comment '用户类型(00系统用户)',
  email             varchar(50)     default ''                 comment '用户邮箱',
  phonenumber       varchar(11)     default ''                 comment '手机号码',
  sex               char(1)         default '0'                comment '用户性别(0男 1女 2未知)',
  avatar            varchar(100)    default ''                 comment '头像地址',
  password          varchar(100)    default ''                 comment '密码',
  status            char(1)         default '0'                comment '账号状态(0正常 1停用)',
  del_flag          char(1)         default '0'                comment '删除标志(0代表存在 2代表删除)',
  login_ip          varchar(128)    default ''                 comment '最后登录IP',
  login_date        datetime                                   comment '最后登录时间',
  pwd_update_date   datetime                                   comment '密码最后更新时间',
  create_by         varchar(64)     default ''                 comment '创建者',
  create_time       datetime                                   comment '创建时间',
  update_by         varchar(64)     default ''                 comment '更新者',
  update_time       datetime                                   comment '更新时间',
  remark            varchar(500)    default null               comment '备注',
  primary key (user_id)
) engine=innodb auto_increment=100 comment = '用户信息表';

在每个用户的最右侧的操作栏,有“删除”、“修改”、“重置密码”“分配角色”操作。

(2)修改用户

点哟“修改用户”,修改一个用户信息,然后点击确定,可以看到正常修改了用户的信息。

(3)删除用户

点击“删除”按钮,会有提示框让你确认,确认后,会删除用户信息。

(4)重置密码

用户的密码在数据库中都是加密存储的,比如像下面这样:

$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2

重置密码会覆盖原来的密码,(默认新用户的密码是123456)

修改密码过程如下:

2.角色管理

(1)新增角色

在此次,新增了一个角色,配置上了字符权限,并分配了菜单权限。

如果修改用户属于此角色,那么能访问到此角色相关的菜单。

(2)修改角色

我们可以修改已经存在的角色信息。这个地方显示的非常明显,哪个角色可以访问哪个菜单,勾选上相应的菜单即可。

(3)数据权限功能

在角色管理中,数据权限分为以下类型(通过 sys_role.data_scope 字段配置):

数据权限类型标识值说明
全部数据1用户可查看系统中所有数据(如超级管理员角色)
本部门数据2用户只能查看所属部门的数据(如部门经理)
本部门及以下4用户可查看所属部门及其子部门的数据(如分公司负责人)
仅本人数据3用户只能查看自己的数据(如普通员工)
自定义数据5用户只能查看指定部门的数据(需手动关联部门到角色)

操作效果如下:

举个例子:

分公司财务角色

  • 配置
    • 数据权限 = 本部门及以下(4)
    • 部门结构:总公司(ID=1) → 上海分公司(ID=101) → 财务部(ID=10101)
  • 效果
    该角色用户登录后,可查看上海分公司及其下属所有部门的数据。
3.部门管理

部门表是sys_dept

(1)新增部门

选择上级部门以后,输入一些信息就可以创建新部门了。

部门也可以进行修改和删除。

4.岗位管理

岗位比较简单,数据表是sys_post,新增岗位如下所示

岗位也可以进行删除和修改等操作。