From 2795564fd5ae3ba5ec64393cd30f615a4070d056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E5=AD=90=E6=9D=8E=C2=B7De?= Date: Sun, 18 Jul 2021 16:50:51 +0800 Subject: [PATCH] add v-permission --- .../src/components/Permission/permission.js | 12 +++----- report-ui/src/mixins/access.js | 25 ++--------------- report-ui/src/utils/auth.js | 28 +++++++++++++++++++ 3 files changed, 34 insertions(+), 31 deletions(-) diff --git a/report-ui/src/components/Permission/permission.js b/report-ui/src/components/Permission/permission.js index a49aba15..623f3354 100644 --- a/report-ui/src/components/Permission/permission.js +++ b/report-ui/src/components/Permission/permission.js @@ -1,14 +1,10 @@ -import store from '@/store' - +import { hasPermission } from '@/utils/auth' export default { inserted(el, binding, vnode) { const { value } = binding // v-permission 绑定的权限值 - const auths = store.getters && store.getters.authorities // 拥有的权限列表 - if (value) { - //auths.indexOf(value) === -1 && el.parentNode && el.parentNode.removeChild(el) - } else { - // 未绑定权限值或者绑定的权限值为 假 - return + var checkFlag = hasPermission(value) + if(checkFlag == false && el.parentNode ){ + el.parentNode.removeChild(el) } }, } diff --git a/report-ui/src/mixins/access.js b/report-ui/src/mixins/access.js index db9e7af4..40c76d5d 100644 --- a/report-ui/src/mixins/access.js +++ b/report-ui/src/mixins/access.js @@ -1,4 +1,4 @@ -import { getToken, getAccessUser } from '@/utils/auth' +import { getToken, getAccessUser, hasPermission } from '@/utils/auth' export default { data () { return { @@ -34,28 +34,7 @@ export default { }, methods: { hasPermission (permissionStr) { - if (permissionStr == null || permissionStr.length == 0) { - return true - } - // 登录用户权限列表 - if (this.opAuthorities == null) { - return false - } - // 用户有的全部权限码 - var opAuthoritiesStr = JSON.stringify(this.opAuthorities) - - // permissionStr可能是:authorityManage、authorityManage:insert、authorityManage:insert|authorityManage:update - var needPermissionArray = permissionStr.split('|') - for (var i = 0; i < needPermissionArray.length; i++) { - // 只要有其中的一个权限,就返回true - var needPermission = needPermissionArray[i] // authorityManage、authorityManage:insert - needPermission = needPermission.replace(/\ /g, "") // 去除authorityManage : insert中:前后的空格 - - if(opAuthoritiesStr.indexOf(needPermission)>=0){ - return true - } - } - return false + return hasPermission(permissionStr) }, } } diff --git a/report-ui/src/utils/auth.js b/report-ui/src/utils/auth.js index aa417d9b..d151159d 100644 --- a/report-ui/src/utils/auth.js +++ b/report-ui/src/utils/auth.js @@ -22,3 +22,31 @@ export function setAccessUser(accessUser) { export function delAccessUser() { return delStorageItem(AccessUserKey) } + +// 获取当前用户的所有的权限码,判断是否有 +export function hasPermission(permissionStr) { + // 不需要权限 + if (permissionStr == null || permissionStr.length == 0) { + return true + } + + // 登录用户的全部权限码 + var user = getAccessUser() + if (user == null || user.authorities == null) { + return false + } + var opAuthoritiesStr = JSON.stringify(user.authorities) + + // permissionStr可能是:authorityManage、authorityManage:insert、authorityManage:insert|authorityManage:update + var needPermissionArray = permissionStr.split('|') + for (var i = 0; i < needPermissionArray.length; i++) { + // 只要有其中的一个权限,就返回true + var needPermission = needPermissionArray[i] // authorityManage、authorityManage:insert + needPermission = needPermission.replace(/\ /g, "") // 去除authorityManage : insert中:前后的空格 + + if(opAuthoritiesStr.indexOf(needPermission)>=0){ + return true + } + } + return false +}