日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:40日期: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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品丝袜在线播放| 国产99久久久国产精品成人免费| 在线日韩电影| 波多野结衣一区| 久久最新视频| 日本色综合中文字幕| 日韩不卡免费视频| 亚洲精品日本| 国产欧美日韩| 吉吉日韩欧美| 欧美精选一区二区三区| 亚洲综合婷婷| 麻豆精品蜜桃视频网站| 日产精品一区| 久久亚洲精品伦理| 欧美激情亚洲| 欧美亚洲激情| 亚洲欧洲av| 国产欧美三级| 日韩国产一区二区| 丝袜美腿亚洲一区| 欧美一级久久| 色乱码一区二区三区网站| 一区二区小说| 国产亚洲精品美女久久| 高清一区二区三区av| 日韩福利视频导航| 国产精品成人**免费视频| 成人午夜亚洲| 香蕉成人久久| 精品久久一区| 首页国产欧美日韩丝袜| 韩国女主播一区二区三区| 日韩一级欧洲| 国产精品成人a在线观看| 日韩视频中文| 欧美a级一区二区| 国产在线日韩| 久久国产麻豆精品| 婷婷成人基地| 精品久久亚洲| 日韩精品a在线观看91| 欧洲av不卡| 欧美日韩一视频区二区| 91九色精品| 高潮久久久久久久久久久久久久| 首页国产欧美久久| 美女一区网站| 国产精品一区二区美女视频免费看| 久久九九99| 麻豆精品99| 日韩精品一级| 免费av一区| 国产黄色精品| 综合国产精品| 五月精品视频| 日韩一区二区在线免费| 国产精品三p一区二区| 麻豆91精品| 亚洲午夜av| 亚洲一级少妇| 欧美国产极品| 日韩高清国产一区在线| 伊人成人在线视频| 超碰超碰人人人人精品| 国产精品久久久久毛片大屁完整版| 亚洲在线免费| 91精品啪在线观看国产18| 久久av网址| 欧美日韩亚洲三区| 午夜久久av | 日韩视频久久| 日韩免费高清| 91一区二区三区四区| 国产精品成人自拍| 久久国产精品免费精品3p | 四虎影视精品| 精品美女在线视频| 日本不卡一区二区三区| 亚洲网址在线观看| 中文国产一区| 不卡一区2区| 欧美日韩中文字幕一区二区三区| 成人一区而且| 国产91在线精品| 丰满少妇一区| 国产精品毛片一区二区在线看| 国产精品久久久久久久久久白浆 | 日韩欧美2区| 日韩精品中文字幕一区二区| 综合一区在线| 日本免费新一区视频| 亚洲毛片网站| 日本一区中文字幕| 国产精品一国产精品k频道56| 国产乱码精品一区二区三区四区| 久久精品99国产国产精| 国产精品日本一区二区三区在线| 国产精品成人国产| 国产成人精品999在线观看| 精品国产aⅴ| 国产欧洲在线| 999久久久亚洲| 国产尤物精品| 亚洲精品综合| 国产精品天天看天天狠| 久久精品毛片| 日韩成人a**站| 日韩不卡在线| 六月天综合网| 国产精品永久| 国产剧情一区| 免费av一区| 精品一区二区三区四区五区| 国产黄大片在线观看| 国产一区成人| 福利一区和二区| 免费看黄色91| 91视频一区| 综合一区二区三区| 99热精品在线| 色偷偷偷在线视频播放| 国产精品中文字幕亚洲欧美| 精品视频99| 婷婷亚洲五月| 国产精品亚洲四区在线观看| 鲁鲁在线中文| 免费国产亚洲视频| 国产日韩一区二区三区在线| 色爱综合网欧美| 欧美一级专区| 国产精品啊啊啊| 少妇久久久久| 欧美一区在线观看视频| 国产中文在线播放| 日韩制服丝袜av| 欧美欧美黄在线二区| 亚洲最新av| 免费亚洲婷婷| 国产一区观看| 国产精品xxx| 宅男噜噜噜66国产日韩在线观看| 国产精品一二| 妖精视频成人观看www| 国产精品一页| 国产精品毛片在线| 国产一区二区三区国产精品| 亚洲综合国产| 国产一区二区精品久| 丝袜亚洲另类欧美| 韩国一区二区三区视频| 在线日韩成人| 国产精品99久久精品| 亚洲精品护士| 99视频精品全国免费| 国产精品久久免费视频| 天使萌一区二区三区免费观看| 四虎国产精品免费观看| 日本亚洲视频| 国产在线日韩| 在线看片福利| 国产精品一区二区三区av麻| av不卡在线看| 欧洲av一区二区| 美女在线视频一区| 日韩精品a在线观看91| 国产一区成人| 97精品中文字幕| 国产精品xxx| 欧美一区成人| 亚洲综合福利| 免费日韩视频| 1024精品一区二区三区| 成人精品视频| 精品一区二区三区中文字幕 | 日本精品另类| 99国产精品视频免费观看一公开 | 国产成人久久精品麻豆二区 | av在线最新| 国产福利一区二区精品秒拍 | 日本成人中文字幕| 亚洲福利国产| 伊人久久在线| 精品午夜av| 日韩成人精品一区二区三区 | 日韩影院精彩在线| 日韩中文字幕高清在线观看| 日本午夜免费一区二区| 999久久久免费精品国产| 麻豆91精品91久久久的内涵| 亚洲深深色噜噜狠狠爱网站 | 97国产精品| 精品国产一区二区三区av片| 日韩一区二区三区免费视频| 亚洲免费网址| 欧美日韩国产免费观看视频| 日韩大片在线| 人人草在线视频| 久久电影tv| 伊人久久在线|