From 16d8b71e21dc7298b30f46bf264cd9b3589a6978 Mon Sep 17 00:00:00 2001
From: who's hu <hup_dev@outlook.com>
Date: 星期二, 22 八月 2023 17:25:19 +0800
Subject: [PATCH] update ruoyi-ui/src/permission.js. 由于重定向url存在 http://xxx.xx.xxx/{id}?param={a}&name={b} 的场景, 当未登录访问时, 通过改js封装登录后重定向参数, 会丢失?后的query params 如: 访问 http://localhost:1024/core/doc/doc?id=1683734914907807745&version=31 期望 http://localhost:1024/login?redirect=%2Fcore%2Fdoc%2Fdoc%3Fid%3D1683734914907807745%26version%3D31 实际通过 to.fullPath 封装后 获得 http://localhost:1024/login?redirect=%2Fcore%2Fdoc%2Fdoc%3Fid%3D1683734914907807745&version=31
---
ruoyi-ui/src/utils/permission.js | 41 ++++++++++++++++++++++++++++++++++-------
1 files changed, 34 insertions(+), 7 deletions(-)
diff --git a/ruoyi-ui/src/utils/permission.js b/ruoyi-ui/src/utils/permission.js
index efb4cc8..25d1a02 100644
--- a/ruoyi-ui/src/utils/permission.js
+++ b/ruoyi-ui/src/utils/permission.js
@@ -1,16 +1,18 @@
import store from '@/store'
/**
- * @param {Array} value
+ * 字符权限校验
+ * @param {Array} value 校验值
* @returns {Boolean}
*/
-export default function checkPermission(value) {
+export function checkPermi(value) {
if (value && value instanceof Array && value.length > 0) {
- const roles = store.getters && store.getters.roles
- const permissionRoles = value
+ const permissions = store.getters && store.getters.permissions
+ const permissionDatas = value
+ const all_permission = "*:*:*";
- const hasPermission = roles.some(role => {
- return permissionRoles.includes(role)
+ const hasPermission = permissions.some(permission => {
+ return all_permission === permission || permissionDatas.includes(permission)
})
if (!hasPermission) {
@@ -18,7 +20,32 @@
}
return true
} else {
- console.error(`need roles! Like v-permission="['admin','editor']"`)
+ console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
return false
}
}
+
+/**
+ * 角色权限校验
+ * @param {Array} value 校验值
+ * @returns {Boolean}
+ */
+export function checkRole(value) {
+ if (value && value instanceof Array && value.length > 0) {
+ const roles = store.getters && store.getters.roles
+ const permissionRoles = value
+ const super_admin = "admin";
+
+ const hasRole = roles.some(role => {
+ return super_admin === role || permissionRoles.includes(role)
+ })
+
+ if (!hasRole) {
+ return false
+ }
+ return true
+ } else {
+ console.error(`need roles! Like checkRole="['admin','editor']"`)
+ return false
+ }
+}
\ No newline at end of file
--
Gitblit v1.9.2