当前位置: 首页 > article >正文

前端自定义指令控制权限(后端Spring Security)

1. 新建 directives/auth.ts





//导入自定义指令
import auth from '@/directives/auth'// 注册全局自定义指令 v-auth
app.directive('auth', auth);

1.1完整的authDirective.ts



import { wmsStore } from "@/store/pinia"

// 判断用户是否有某个角色的函数
const hasRoles = (roles: any) => {

  const pinaRoles: any = wmsStore().roles;

  if (Array.isArray(roles)) {
    return roles.some(role => pinaRoles.includes(role));
  } else if (typeof roles === 'string') {
    return pinaRoles.includes(roles);
  } else {
     return false
  }

}
// 判断用户是否有某个权限的函数,同上
const hasPermissions = (permission: any) => {

  return true
}

// 创建自定义指令
export default {
  mounted(el: HTMLElement, binding: any) {
 
    const type = binding.arg
    if (type === 'role') {
      if (!hasRoles(binding.value)) {
        el.remove()
      }
    }
  },
};
  

2.如何使用

2.1 菜单使用方式



2.2 按钮使用






http://www.kler.cn/news/342948.html

相关文章:

  • Solon 3.0 引入 SqlUtils :数据库操作的反朴归真
  • Spring Cloud微服务
  • 访问公司gitlab出现 502 Bad Gateway 错误,已经解决
  • Linux打开防火墙放通端口以及修改flask运行命令使允许远程访问flask应用
  • 声波定位给我们日常生活带来哪些便利
  • 运维工具之ansible
  • 全基因组测序(WGS)实验和分析流程
  • 一文了解,ARM 工业计算机的发展历程
  • 内向的人可以做产品经理吗?当然!
  • python爬虫 - 初识正则表达式
  • 前端面试题(十一)
  • python爬虫--tx动漫完整信息抓取
  • 使用 Redis 实现分布式锁:原理、实现与优化
  • 高级java每日一道面试题-2024年10月5日-数据库篇[MySQL篇]-Mysql是如何回滚事务的?
  • 前后分离项目记录
  • 远程终端控制系统
  • PELCO-D协议简介
  • Unity网络开发基础
  • Redis 数据类型hash(哈希)
  • 18770 差值最大