forked from github/dataease
Merge pull request #2688 from dataease/pr@dev@refactor_menu
refactor: 菜单增加复合权限校验,防止用户访问无权限页面
This commit is contained in:
commit
e413bf5707
@ -82,3 +82,18 @@ ADD COLUMN `update_time` bigint(13) NULL COMMENT '更新时间' AFTER `update_by
|
||||
ALTER TABLE `sys_task_email`
|
||||
ADD COLUMN `view_ids` varchar(255) NULL COMMENT '视图ID集合' AFTER `task_id`;
|
||||
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`permission` = 'user:add,user:del,user:edit'
|
||||
WHERE
|
||||
`menu_id` = 35;
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`permission` = 'datasource:read'
|
||||
WHERE
|
||||
`menu_id` = 39;
|
||||
UPDATE `sys_menu`
|
||||
SET
|
||||
`permission` = 'user:editPwd'
|
||||
WHERE
|
||||
`menu_id` = 51;
|
||||
|
@ -189,10 +189,20 @@ const filterRouter = routers => {
|
||||
})
|
||||
}
|
||||
const hasPermission = (router, user_permissions) => {
|
||||
// 菜单要求权限 但是当前用户权限没有包含菜单权限
|
||||
if (router.permission && !user_permissions.includes(router.permission)) {
|
||||
// 判断是否有符合权限 eg. user:read,user:delete
|
||||
if (router.permission && router.permission.indexOf(',') > -1) {
|
||||
const permissions = router.permission.split(',')
|
||||
const permissionsFilter = permissions.filter(permission => {
|
||||
return user_permissions.includes(permission)
|
||||
})
|
||||
if (!permissionsFilter || permissionsFilter.length === 0) {
|
||||
return false
|
||||
}
|
||||
} else if (router.permission && !user_permissions.includes(router.permission)) {
|
||||
// 菜单要求权限 但是当前用户权限没有包含菜单权限
|
||||
return false
|
||||
}
|
||||
|
||||
if (!filterLic(router)) {
|
||||
return false
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user