电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

詳解vue身份認證管理和租戶管理

瀏覽:4日期:2022-09-29 11:40:03
目錄概述按鈕級權限身份認證管理R/U權限權限刷新租戶管理租戶切換效果最后概述

功能模塊的開發往往是最容易的,但是要處理好每個細節就不容易了。就拿這里的身份認證管理模塊來說,看似很簡單,因為后端接口都是ABP模板里現成的,前端部分無非就是寫界面,調接口,綁數據;但是看一下ABP Angular版本的代碼,就會發現他其實是有很多細節方面的處理的。

回到vue,因為前端部分的代碼文件太多,下面只列出一些需要注意的細節,其他的像vue組件、表格、表單、數據綁定、接口請求之類的其實都差不多就不說了。

按鈕級權限

前面章節中實現了菜單權限的控制,按鈕權限的道理也是一樣的。判斷abpConfig.auth.grantedPolicies是否包含某個權限,然后在組件中使用v-if渲染就好了。

srcutilsabp.js:

export function checkPermission(policy) { const abpConfig = store.getters.abpConfig; if (abpConfig.auth.grantedPolicies[policy]) { return true; } else { return false; }}

srcviewsidentityroles.vue:

<el-buttontype='primary' icon='el-icon-edit' @click='handleCreate' v-if='checkPermission(’AbpIdentity.Roles.Create’)'> {{ $t('AbpIdentity[’NewRole’]') }}</el-button>

詳解vue身份認證管理和租戶管理

詳解vue身份認證管理和租戶管理

身份認證管理

角色和用戶的增刪改查就不說了,這里要注意一下權限管理。用戶和角色都需要用到權限管理,在ABP Angular版中是一個獨立的permission-management模塊。我這里也把他作為一個公用組件,根據providerName來區分,'R'是角色權限,'U'是用戶權限。

R/U權限

他們有一點區別,用戶權限可能來自于角色權限,所以用戶中的權限需要顯示是來自哪個providerName和providerKey,如果來自其他provider則disabled,不可以修改。

srcviewsidentitycomponentspermission-management.vue:

<el-form label-position='top'> <el-tabs tab-position='left'> <el-tab-pane v-for='group in permissionData.groups' :key='group.name' :label='group.displayName' > <el-form-item :label='group.displayName'><el-tree ref='permissionTree' :data='transformPermissionTree(group.permissions)' :props='treeDefaultProps' show-checkbox check-strictly node-key='name' default-expand-all/> </el-form-item> </el-tab-pane> </el-tabs></el-form>

transformPermissionTree(permissions, name = null) { let arr = []; if (!permissions || !permissions.some(v => v.parentName == name)) return arr; const parents = permissions.filter(v => v.parentName == name); for (let i in parents) { let label = ’’; if (this.permissionsQuery.providerName == 'R') { label = parents[i].displayName; } else if (this.permissionsQuery.providerName == 'U') { label =parents[i].displayName +' ' +parents[i].grantedProviders.map(provider => { return `${provider.providerName}: ${provider.providerKey}`;}); } arr.push({ name: parents[i].name, label, disabled: this.isGrantedByOtherProviderName(parents[i].grantedProviders ), children: this.transformPermissionTree(permissions, parents[i].name) }); } return arr;},isGrantedByOtherProviderName(grantedProviders) { if (grantedProviders.length) { return ( grantedProviders.findIndex(p => p.providerName !== this.permissionsQuery.providerName ) > -1 ); } return false;}

詳解vue身份認證管理和租戶管理

詳解vue身份認證管理和租戶管理

權限刷新

還有一個細節問題,如果正在修改的權限影響到了當前用戶,如何立即生效。

srcviewsidentitycomponentspermission-management.vue:

updatePermissions(this.permissionsQuery, { permissions: tempData }).then( () => { this.dialogPermissionFormVisible = false; this.$notify({ title: this.$i18n.t('HelloAbp[’Success’]'), message: this.$i18n.t('HelloAbp[’SuccessMessage’]'), type: 'success', duration: 2000 }); fetchAppConfig( this.permissionsQuery.providerKey, this.permissionsQuery.providerName ); });

srcutilsabp.js:

function shouldFetchAppConfig(providerKey, providerName) { const currentUser = store.getters.abpConfig.currentUser; if (providerName === 'R') return currentUser.roles.some(role => role === providerKey); if (providerName === 'U') return currentUser.id === providerKey; return false;}export function fetchAppConfig(providerKey, providerName) { if (shouldFetchAppConfig(providerKey, providerName)) { store.dispatch('app/applicationConfiguration').then(abpConfig => { resetRouter(); store.dispatch('user/setRoles', abpConfig.currentUser.roles); const grantedPolicies = abpConfig.auth.grantedPolicies; // generate accessible routes map based on grantedPolicies store.dispatch('permission/generateRoutes', grantedPolicies).then(accessRoutes => { // dynamically add accessible routes router.addRoutes(accessRoutes);}); // reset visited views and cached views //store.dispatch('tagsView/delAllViews', null, { root: true }); }); }}

詳解vue身份認證管理和租戶管理

還有很多需要注意的,比如isStatic===true的角色不可以刪除,并且不可以修改名稱;新增用戶和編輯用戶的密碼校驗規則需要區別對待;保存權限是差異保存。等等。。。有條件的可以看一下ABP的Angular代碼。

租戶管理

基本功能界面都差不多。。。但是這里有一個”管理功能“的選項,默認是顯示”沒有可用的功能“:

詳解vue身份認證管理和租戶管理

這玩意在界面上沒地方添加,也沒地方刪除,但是這個功能相當實用。它來自ABP的FeatureManagement模塊,也稱為”特征管理“,這個后面再做介紹。

租戶切換

完成了租戶管理,那么登錄時也應該可以切換租戶。

詳解vue身份認證管理和租戶管理

切換租戶比較簡單,就是根據輸入的租戶名稱獲取到租戶ID,然后調用/abp/application-configuration接口,把租戶ID放到請求Header的__tenant字段中即可,之后的請求中也需要這個參數,不傳的話就是默認的宿主端。

詳解vue身份認證管理和租戶管理

其實ABP后端是可以配置是否啟用多租戶的,這里也可以根據后端配置來顯示或者隱藏租戶切換的按鈕。跟ABP模板相比,登錄界面還缺少一個注冊入口,后面再加上吧。

效果

詳解vue身份認證管理和租戶管理

詳解vue身份認證管理和租戶管理

詳解vue身份認證管理和租戶管理

詳解vue身份認證管理和租戶管理

詳解vue身份認證管理和租戶管理

最后

前端部分的模塊開發就不再詳細介紹了,主題還是ABP。進行到這里,ABP模板自帶的前端部分功能就差不多完成了,需要代碼的可以去 https://github.com/xiajingren/HelloAbp 拉取,后面我再把文件整理一下,弄一個干凈的vue版本。

以上就是詳解vue身份認證管理和租戶管理的詳細內容,更多關于vue身份認證管理和租戶管理的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 模型公司_模型制作_沙盘模型报价-中国模型网 | 「银杏树」银杏树行情价格_银杏树种植_山东程锦园林 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 垃圾清运公司_环卫保洁公司_市政道路保洁公司-华富环境 | 重庆磨床过滤机,重庆纸带过滤机,机床伸缩钣金,重庆机床钣金护罩-重庆达鸿兴精密机械制造有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 高压包-点火器-高压发生器-点火变压器-江苏天网 | 宽带办理,电信宽带,移动宽带,联通宽带,电信宽带办理,移动宽带办理,联通宽带办理 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 好看的韩国漫画_韩漫在线免费阅读-汗汗漫画 | 细砂提取机,隔膜板框泥浆污泥压滤机,螺旋洗砂机设备,轮式洗砂机械,机制砂,圆锥颚式反击式破碎机,振动筛,滚筒筛,喂料机- 上海重睿环保设备有限公司 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | Honsberg流量计-Greisinger真空表-气压计-上海欧臻机电设备有限公司 | 818手游网_提供当下热门APP手游_最新手机游戏下载 | 单电机制砂机,BHS制砂机,制沙机设备,制砂机价格-正升制砂机厂家 单级/双级旋片式真空泵厂家,2xz旋片真空泵-浙江台州求精真空泵有限公司 | 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 航空铝型材,7系铝型材挤压,硬质阳*氧化-余润铝制品 | 注浆压力变送器-高温熔体传感器-矿用压力传感器|ZHYQ朝辉 | 自动记录数据电子台秤,记忆储存重量电子桌称,设定时间记录电子秤-昆山巨天 | 高空重型升降平台_高空液压举升平台_高空作业平台_移动式升降机-河南华鹰机械设备有限公司 | 滚筒烘干机_转筒烘干机_滚筒干燥机_转筒干燥机_回转烘干机_回转干燥机-设备生产厂家 | 大_小鼠elisa试剂盒-植物_人Elisa试剂盒-PCR荧光定量试剂盒-上海一研生物科技有限公司 | 天津货架厂_穿梭车货架_重型仓储货架_阁楼货架定制-天津钢力仓储货架生产厂家_天津钢力智能仓储装备 | 伶俐嫂培训学校_月嫂培训班在哪里报名学费是多少_月嫂免费政府培训中心推荐 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 温室大棚建设|水肥一体化|物联网系统 | 建筑资质代办-建筑企业资质代办机构-建筑资质代办公司 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 分轨 | 上传文件,即刻分离人声和伴奏| 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 |