首页 > 其他分享 >权限菜单管理设计

权限菜单管理设计

时间:2023-07-28 13:55:23浏览次数:20  
标签:COMMENT 菜单 DEFAULT NULL role 设计 权限 id

权限菜单管理需求&设计

需求描述

一般的管理后台都涉及到主要分菜单,按钮两种资源。
  • 前端根据登录用户的信息只允许访问该用户拥有的菜单页面,没有权限的操作按钮不显示或置灰。
  • 后端根据登录用户的权限控制是否可访问受权限控制的接口。
 
  • 有什么样的菜单跟管理后台的业务相关,一般可由超级管理员配置。
  • 角色权限划分/用户分配角色一般由拥有“用户管理员”权限的账号操作。

流程

  1. 超级管理员创建资源权限信息(菜单/按钮),或部署前初始化好数据。
       
  1. 管理后台“用户管理”员创建角色,为角色分配拥有的资源权限。
(这里权限菜单不跟创建角色放在一起,从角色操作的“绑定权限”按钮点击编辑)  
  1. 管理后台“用户管理”员为系统的各账号分配角色。
  暂时无法在飞书文档外展示此内容
  1. 系统各账号登录系统后只能访问操作由权限的资源。

数据表设计

  1. permission。权限表:记录各种资源权限信息。分三种类型,目录/菜单/按钮
    -- permission definition
    
    CREATE TABLE `permission` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `pid` int(11) NOT NULL DEFAULT '0' COMMENT '父级id',
      `name` varchar(255) NOT NULL COMMENT '权限名称',
      `alias` varchar(255) DEFAULT NULL COMMENT '别名',
      `key` varchar(255) DEFAULT NULL COMMENT '权限全局ID,类型为目录可空',
      `components` varchar(64) DEFAULT NULL COMMENT '前端页面路径,类型为按钮可空',
      `sort` int(4) DEFAULT '0' COMMENT '显示顺序升序',
      `type` char(1) DEFAULT NULL COMMENT '类型(M目录 C菜单 F按钮)',
      `icon` varchar(100) DEFAULT NULL COMMENT '图标',
      `visible` tinyint(1) NOT NULL DEFAULT '0' COMMENT '菜单状态(0显示 1隐藏)',
      `status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '菜单状态(0正常 1停用)',
      `update_by` varchar(64) DEFAULT NULL COMMENT '最后操作人',
      `update_time` int(10) DEFAULT NULL COMMENT '最后操作时间戳',
      `remark` varchar(255) DEFAULT NULL COMMENT '备注',
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='权限表';
  2. role。角色表
-- role definition

CREATE TABLE `role` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL COMMENT '角色名字',
  `created_id` bigint(20) unsigned NOT NULL COMMENT '创建者ID',
  `key` varchar(32) NOT NULL COMMENT '全局标识,跟permission.key区分开',
  `status` tinyint(3) NOT NULL DEFAULT '0' COMMENT '状态 0正常 1停用',
  `update_by` varchar(64) DEFAULT NULL COMMENT '最后操作人id',
  `update_time` int(11) DEFAULT NULL COMMENT '最后操作时间戳',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `is_del` tinyint(3) DEFAULT '0' COMMENT '0正常 1删除',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';
  1. role_permission。角色与权限对照关系
-- role_permission definition

CREATE TABLE `role_permission` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `permission_id` int(11) NOT NULL COMMENT '权限id',
  `role_id` int(11) NOT NULL COMMENT '角色id',
  PRIMARY KEY (`id`),
  UNIQUE KEY `role_permi_unique` (`role_id`,`permission_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 CHARSET=utf8mb4 COMMENT='角色与权限对照表';
  1. user_role。用户与角色对照关系
-- user_role definition

CREATE TABLE `user_role` (
  `uid` bigint(20) unsigned NOT NULL COMMENT '用户id',
  `role_id` int(11) NOT NULL COMMENT '角色id',
  `created_at` int(10) unsigned NOT NULL COMMENT '绑定时间',
  UNIQUE KEY `uid_role_id_index` (`uid`,`role_id`) USING BTREE,
  KEY `uid_index` (`uid`) USING BTREE,
  KEY `role_id_index` (`role_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4  COMMENT='账号与角色对照表';

接口

  1. 登录接口,获取用户信息接口
  2. 权限(目录菜单按钮)增删改查
  3. 角色增删改查
  4. 分配账号角色增删改查

标签:COMMENT,菜单,DEFAULT,NULL,role,设计,权限,id
From: https://www.cnblogs.com/wj204/p/17587391.html

相关文章

  • FMC子卡设计资料:FMC141-四路 250Msps 16bits AD FMC子卡
    FMC141-四路250Msps16bitsADFMC子卡一、产品概述:   本板卡基于 FMC 标准板卡,实现 4 路 16-bit/250Msps ADC 功能。遵循 VITA 57 标准,板卡可以直接与xilinx公司或者本公司 FPGA 载板连接使用。板卡 ADC 器件采用 ADI 公司 AD9467 芯片,用户可以通过 FMC ......
  • 【分布式技术专题】「架构设计方案」盘点和总结RBAC服务体系的功能设计及注意事项技术
    前言介绍权限管理是后台系统的重要组成部分,主要目的是控制不同人对资源的访问权限,以避免操作错误和隐私数据泄露等风险问题。我在公司负责权限管理,对该领域的设计很熟悉。公司采用微服务架构,因此权限系统独立于其他业务系统,包括商品中心、订单中心、用户中心、仓库系统、小程序和多......
  • 2023“钉耙编程”中国大学生算法设计超级联赛(4)Number Table
    题意对于一个\(2\timesn\)的矩阵,若每行每列数均不同且均\(\in[0,2^k)\),同时\(2n\)个数异或和为\(0\)则称该矩阵合法。给定\(n,k\),求总方案数。做法考虑若只有一行,即求\(n\)个不相同的数异或和为\(0\)的方案数:假定前\(n-1\)个数不同且已确定,此时仅需考虑第\(n\)个数是否在前......
  • C++入门到放弃(04)——类的访问权限:public、private、protected
    1.成员访问权限假定以下类:classBase{public://constructfunctionBase(inta=0,intb=0,intc=0):m_public(),m_protected(),m_private(){}intm_public;voidpublic_fun(){cout<<m_public<<endl;}protected:intm_prote......
  • linux rwx权限:rwx权限含义 | 更改文件权限
    摘要目的:讲述关于linux的rwx操作一、含义1.rwx含义rwx的含义如下第1-3位确定所有者(该文件的所有者)拥有该文件的权限第4-6位确定所属组(同用户组的)拥有该文件的权限第7-9位确定其他用户拥有该文件的权限具体含义如下rwx作用于文件字符说明r代表可读(re......
  • linux文件权限案例
    摘要目的:通过列举以下的案例来说明linux文件权限的作用;可以自己领会一、警察和土匪游戏前提:两个组,每组有两个人police:jack,Jerrybandit:xh,xq要求:创建组和用户jack创建一个文件,自己可以读写,本组人(警察们)可以读,其他人没有任何权限jack修改文件,让其他人可以读,本族人可以......
  • 每日汇报 第五周第五天 JAVASwing程序设计
    今日学习:掌握JLabel标签组件的使用方法和如何依据现有的图片创建图标。掌握按钮组件、单选按钮组件和复选框组件的使用方法。掌握JComboBox下拉列表框组件和JList列表框组件的使用方法。掌握JTextField文本框组件、JPasswordField密码框组件和JTextArea文本域组件的使用方法......
  • 很多计算机专业的学生买毕业设计正常吗
     https://www.zhihu.com/question/492924320/answer/2806020423   发现了这么一个神奇的网站:https://www.bishehub.com/custom.html     =============================================  本人也是搞了十多年的计算机方向了,可以说不管自己是读本科还......
  • linux XFTP权限不足、上传失败
    问题使用XFTP上传失败一、权限不够前提:使用root用户创建了/opt/jdk然后使用普通的user登录连接ftp但是user对jdk文件对并没有w的权限,因此会上传失败解决办法使用root登录ftp增加ftp的权限chmodo+w/opt/jdk......
  • 菜单加筛选
    只有两层的菜单,所以直接做了循环哈,不是那种n层菜单<el-menu:collapse="ifCollapse"class="el-menu-vertical-demo":collapse-transition="false"><divclass="header"><pclass="header-......