动态后台获取_后台管理系统的权限以及vue处理权限的思路

c9d3cd7d312d7f36e69600c892fb4aeb.png

一般来说,在(后台)管理系统(最早的企业级的项目和网站的后台管理系统现在大部分人都叫后台管理系统)中才会有权限之说。权限分为功能级权限和数据级权限。这篇文章主要谈论功能级权限。

一、名词解释:

权限的意思不用再做解释。

  • 功能级权限:
    表示不同的角色(或者用户)进入系统后,看到的功能不一样,或者说,可以操作的功能不一样。有的系统的处理思路是:不能操作的功能就根本不会让你看到;有的系统的处理思路是:你可以看见所有的功能,但是,有些功能的页面根本看不见,操作不成。当然,我个人认为,前者更好。例如:HIS系统里,医生可以开处方。护士就不可以。
  • 数据级权限:
    表示你可以进入某个功能。但是
    1、不一定能够看到所有的数据
    2、对看到的数据不一定能够进行增删改查的操作。例如:0A系统中,你只能看到自己的考勤数据,而且,不能添加、修改和删除。但是,人事小姐姐可以看到所有人的考勤数据,而且,还可以做修改等操作。

二、后台管理系统的(功能级)权限处理思路

1.没有前端的时代(前端的人如果看不懂,可以略过此部分)

没有前端的时代,可以认为是全栈时代。那时候,程序员要完成前后端的所有功能。虽说是富客户端(前端),但是,比起现在前端流行的时代,那是小巫见大巫了。

所以,都是有后端的程序来处理权限的。后端程序结合数据库来处理权限的。

思路:

1)需要在数据库中建表,一般包括:

功能表:存储着管理系统的所有功能

角色表:存储着,整个项目的角色,其实就是公司中的角色,如:总经理、市场部经理、市场专员、项目经理、程序员等等。

角色与功能的对应表:这表示的是,什么样的角色具备什么样的功能。

用户表:可以登录管理系统的所有用户,用户表里会存储所属角色。这

样的话,用户和功能之间就有了关系

2)(后端)程序,根据登录的用户名,沿着 用户名--->角色--->功能 这样的步骤,取到该用户对应的功能。然后,把这些功能显示在导航栏的区域就行,这也就是,用户登录后,只能看到自己具备的功能的思路。

2.前端盛行的当下:

当下,前后端分离。所以,权限可以由后端处理,也可以由前端处理。

1)、后端处理权限的思路:

登录功能-->输入用户名和密码-->前端发送用户名和密码-->后端接收到用户名和密码-->找数据库(验证用户名和密码)--验证通过时-->找数据库(用户名--->角色--->功能)-->获取到该用户的功能-->发送给前端-->前端根据获取到的功能,循环显示出该功能。

2)、前端处理权限的思路(不推荐):

首先,需要把权限保存在前端,这样会写死。所以,不推荐。以下是思路:

登录功能-->输入用户名和密码-->前端发送用户名和密码-->后端接收到用户名和密码-->找数据库(验证用户名和密码)--验证通过时-->返回前端(同时,返回角色)-->前端根据角色对应的功能权限,展示对应的功能。

三、使用vue完成后台管理系统的(功能级)权限:

此处,还是以“后端处理权限的思路”,前端仅作功能权限的展示为例,进行描述。

使用vue-routeraddRoutes来动态改变路由配置。

1、步骤

1)、默认路由配置里只有登录的配置。

import Vue from 'vue';
import VueRouter from "vue-router";
import Login from "@/pages/Login";
Vue.use(VueRouter); //把vue-router安装到Vue。
// 创建vue-router对象
let router = new VueRouter({mode: "hash", //路由模式routes: [{path: "/",redirect: "/Login"},{path: "/Login",component: Login}]
});export default router;

2)、登录成功后,后端返回功能权限,最好直接就是路由配置,如果不是,前端把功能权限处理成路由配置的json数组格式。使用vue-router对象的addRoutes方法把该路由配置动态添加到路由对象里。同时,把该路由配置保存到sessionStorage里(防止前端刷新后丢失路由配置)。

axios({url: `/roles`,method: "get",params: {username: this.username,userpass: this.userpass}
}).then(res => {let roles = res.data[0].data;//this.allRoutes是所有的路由配置,可以放在vueX中,以下代码是,根据后端返回的权限,产生该用户对应的路由配置let currRoutes = this.allRoutes.filter(item => {return roles.some(obj => obj.path == item.path);});//把获取到的权限保存到sessionStorage中sessionStorage.setItem("roles", JSON.stringify(roles));//把获取到的权限,动态增加到vue-Router对象里this.$router.addRoutes(currRoutes);this.$router.push("/Home");
});

3)、前端在“App.vue”里的created里,需要读取cookie里或sessionStorage里保存的路由配置,同样需要把读取到的路由配置,使用vue-router对象的addRoutes方法把该路由配置动态添加到路由对象里。这样刷新页面时,就可以在此处获取到当前用户的路由权限。

created() {this.roles = JSON.parse(sessionStorage.getItem("roles"));if (this.roles) {//this.allRoutes是所有的路由配置,可以放在vueX中,以下代码是,根据后端返回的权限,产生该用户对应的路由配置let currRoutes = this.allRoutes.filter(item => {return this.roles.some(obj => obj.path == item.path);});this.$router.addRoutes(currRoutes);}
}

2、特别注意:

一定要把获取到的权限数组存放到sessionStorage。否则,刷新页面时,路由配置就会丢失掉。

以上步骤是经过测试通过的。

下面是全部代码网盘链接:

链接:https://pan.baidu.com/s/1ShL9jADEzEIBuCiYBtEoSw提取码:tfxr
千锋HTML5学院:如何讲清楚函数防抖?​zhuanlan.zhihu.com
886a9794e2367c2600c9a21ca4bb6810.png
千锋HTML5学院:如何讲清楚函数节流?​zhuanlan.zhihu.com
6138646fc8cc27cb398162ffce00ca6c.png
千锋HTML5学院:如何讲清楚闭包?​zhuanlan.zhihu.com
ef2e8f0a507d6902445455c61042dfba.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARMv9刷屏 —— 号称十年最大变革,Realm机密计算技术有什么亮点?

简介: 让我们看下ARMv9机密计算相关的新特性Realm。 ARMv9的新闻刷屏了。ARMv9号称十年以来最重大变革,因此让我们看下ARMv9中机密计算相关的新特性Realm。(注:本文是对Introducing the Confidential Compute Architecture的部分翻…

JVM性能提升50%,聊一聊背后的秘密武器Alibaba Dragonwell

简介: 你要知道的关于Alibaba Dragonwell一些重要优化措施。 今年四月五日,阿里云开放了新一代ECS实例的邀测[1],Alibaba Dragonwell也在新ECS上进行了极致的优化。相比于之前的dragonwell_11.0.8.3版本,即将发布的dragonwell_11.…

34 年了,“杀”不死的 Perl!

作者 | 祝涛 出品 | CSDN(ID:CSDNnews)2021年12月18日,Perl迎来了自己34岁的生日。当程序员聊到Perl会聊些什么呢?在各大平台搜索Perl时,你会发现大家对Perl的态度呈现出一种两级分化的状态&#xff…

“不服跑个分?” 是噱头还是实力?

简介: Linux内核社区常常以跑分软件得分,来评价一个优化补丁的价值。让软件跑高分,就是实力的体现! 一、背景:性能之战 “不服跑个分”已经沦为手机行业的调侃用语,但是实话实说,在操作系统领域…

Medusa 又一个 Shopify 的开源替代品!

作者 | Eason来源 | 程序员巴士Medusa是一个开源的headless商务引擎,具有速度快且可定制的优点。由于 Medusa 分为 3 个核心组件 - 公开的REST API headless商务部分、商店的前端以及admin面板 - 大家可以自由地整体使用该平台或者来适配设置电子商店。在本教程系列…

coredump 瘦身风云

简介: minicoredump神也! 继上一篇非典型程序员青囊搞定内存泄露问题后,美美地睡了一觉。睡梦中,突然金光闪闪,万道光芒照进时光隧道,恍惚来到大唐神龙年间。青囊此时化身狄仁杰高级助理,陪同狄…

谁来拯救存量SGX1平台?又一个内核特性合并的血泪史

简介: 今天的故事主角,是一个被称为Flexible Launch Control的SGX平台特性。 前言 自从Intel内核开发人员Jarkko Sakkinen于2017年9月2日在intel-sgx-kernel-devlists.01.org邮件列表上发出v1版的SGX in-tree驱动以来,时间已经过去了3年多了…

DataWorks 功能实践速览

简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 功能推荐:独享数据集成资源组 如上期数据同步解决方案介绍,数据集成的批数据同步任务运行时,需要占用一…

spring 事务隔离级别和传播行为_Java工程师面试1000题146-Spring数据库事务传播属性和隔离级别...

146、简介一下Spring支持的数据库事务传播属性和隔离级别介绍Spring所支持的事务和传播属性之前,我们先了解一下SpringBean的作用域,与此题无关,仅做一下简单记录。在Spring中,可以在元素的scope属性中设置bean的作用域&#xff0…

长江存储发布PCle4.0 固态硬盘致态TiPro7000,顺序读取7400MB/s

2021年12月29日,长江存储重磅发布全新消费级旗舰固态硬盘产品致态TiPro7000。该产品采用基于Xtacking(晶栈) 2.0架构的长江存储第三代三维闪存芯片,支持PCle Gen4x4接口、NVMe 1.4协议,顺序读取速度高达7400MB/s。该产…

图像ISP处理——畸变校正算法

图像畸变校正算法主要用于矫正图像中因为摄像机镜头畸变而引起的形状和尺寸变化。摄像机镜头畸变主要包括径向畸变和切向畸变。以下是一些常见的图像畸变校正算法: 多项式畸变校正法(Polynomial Distortion Correction): 原理&am…

KubeDL 加入 CNCF Sandbox,加速 AI 产业云原生化

简介: 2021 年 6 月 23 日,云原生计算基金会(CNCF)宣布通过全球 TOC 投票接纳 KubeDL 成为 CNCF Sandbox 项目。KubeDL 是阿里开源的基于 Kubernetes 的 AI 工作负载管理框架,取自"Kubernetes-Deep-Learning"…

预登录握手失败_英雄联盟手游登录问题汇总

1、出现“无法安装完成”的情况已经获取了资格,但出现“无法安装完成”的情况,譬如谷歌商店的下载界面一直闪退、下载没进度、卡在安装中、卡在等待中怎么办?可前往第三方下载软件,(推荐介绍GamesToday)下载游戏。2、提示:目前还…

云云协同解决方案全景图发布 华为云助力科技企业云上创新

12月29日,以“云云协同 共创云上新价值”为主题的华为云&华为终端云服务创新峰会2022在京圆满召开。华为云与产业专家和企业代表们共同探讨了在产业数字化机遇与挑战并存的新形势下,如何推动产业升级,共创新价值。 会上,面向科…

解密万亿参数M6模型预训练背后的分布式框架Whale

简介: 最近,阿里云PAI团队和达摩院智能计算实验室一起发布“低碳版”巨模型M6,大幅降低万亿参数超大模型训练能耗。借助我们自研的Whale框架仅使用480卡GPU,即训练出了规模达人类神经元10倍的万亿参数多模态大模型M6,与…

居然之家:核心业务系统全面上云,采用PolarDB替代传统商业数据库

简介: 国内家居零售龙头企业居然之家完成7大核心业务系统全面上云工作,并实现ERP等核心业务系统从传统商业数据库向阿里云PolarDB云数据库的替换,助力业务系统整体处理能力提升50%以上,弹性能力提升3倍以上,大幅提升应…

c oracle实体模型,ADO.NET实体数据模型详细介绍

OleDbConnection,OracleConnection 或者SqlConnection这种连接,直接执行sql语句。现在的连接方式执行sql语句有了很大的不同,下面先看看简单的单表的增删改查操作,然后再看多表的关联查询,带参数查询等。一、ADO.NET E…

面向工业场景,如何实现绿色智能?

从瓦特的蒸汽机开始轰鸣,到爱迪生的电灯照亮黑暗,从埃尼阿克把0和1变成通用的语言,再到人工智能的无处不在。一次工业革命,会带来一次社会的演进,而每一次技术升级的背后,产业升级也几乎是必然。但产业发展…

云原生,开发者的黄金时代

简介: 如果说云是一种信仰,那么云原生就是一种态度,时代呼唤人人都应成为云原生开发者。 作者 | 丁宇(叔同),阿里巴巴研究员,阿里云云原生应用平台负责人 对开发者而言,这是一个最…

如何玩转 WebGL 并行计算

简介: 如今在 Web 端使用 WebGL 进行高性能计算已有不少实践,例如在端智能领域中的 tensorflow.js,再比如可视化领域中的 Stardust.js。 作者 | 沧东 来源 | 阿里技术公众号 如今在 Web 端使用 WebGL 进行高性能计算已有不少实践&#xff0c…