jeecgboot前端按钮角色权限控制(是否隐藏)

使用v-has指令实现前端权限控制:从代码到角色授权的步骤
本文介绍了如何在Jeecg框架中通过修改前端代码并应用v-has指令实现按钮的权限控制。步骤包括修改组件、添加子级菜单、角色授权等,确保权限管理功能的正确配置和应用。

官方文档

http://doc.jeecg.com/2044038

解决办法

  1. 首先需要修改前端代码,在想获得权限控制的按钮组件中使用指令 v-has=“‘’”。
    代码示例:
<a-button @click="handleEdit" type="primary" v-has="'salary:edit'" icon="plus">编辑</a-button>
  1. 进入系统管理-菜单管理中。
    在这里插入图片描述

  2. 找到想添加的子级菜单,在更多中找到添加下级。

在这里插入图片描述

  1. 正常填写按钮信息。

在这里插入图片描述

  1. 保存后进入菜单管理-角色管理,点击指定角色后面的 更多 ,选择下拉单中的授权按钮。
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  1. 保存后即可生效。
JeecgBoot 中,部门权限角色权限的配置与实现主要依赖于其灵活的权限管理模块和数据权限规则机制。以下从数据库结构、后端代码配置、前端组件支持等维度详细说明。 ### 数据库表结构与权限关联 JeecgBoot权限体系依赖于多个核心表,其中 `sys_role`(角色表)、`sys_user`(用户表)、`sys_depart`(部门表)、`sys_role_permission`(角色权限关联表)、`sys_user_depart`(用户与部门关联表)是关键表。通过这些表,可以实现角色与菜单、数据权限的绑定,以及用户与部门的关联。 - **角色权限绑定**:通过 `sys_role_permission` 表,记录角色与菜单权限的映射关系,支持菜单级别的访问控制。 - **用户与部门绑定**:通过 `sys_user_depart` 表,记录用户所属的部门信息,为数据权限提供部门维度的依据。 ### 部门权限配置 JeecgBoot 的部门权限通常通过数据权限规则实现,具体步骤如下: 1. **定义数据权限规则**:在菜单管理中,创建数据规则,例如通过 `sys_org_code` 字段实现基于部门的数据隔离。规则支持自定义 SQL 片段,例如 `sys_org_code IN (#{sys_org_code})`,确保用户只能访问本部门数据。 2. **配置数据权限字段**:确保业务表中包含系统标准字段,如 `sys_org_code`,用于标识数据所属部门。 3. **启用数据权限**:在后端代码中,通过 `@PermissionData` 注解启用数据权限控制。例如,在服务层方法上添加 `@PermissionData` 注解,系统会自动根据当前用户的数据权限规则生成查询条件,过滤非授权数据。 ```java @PermissionData(pageComponent = "system/user/index") public List<User> queryUsers() { return userMapper.selectList(null); } ``` ### 角色权限实现 角色权限主要涉及菜单权限和数据权限的配置: 1. **菜单权限配置**:在角色管理界面中,为角色分配菜单权限。每个菜单可配置访问权限,例如增删改查等操作权限。 2. **数据权限配置**:为角色分配数据权限规则,例如通过 `sys_depart` 表中的 `org_code` 字段实现跨部门数据共享。规则可定义为 `sys_org_code IN (#{sys_depart_ids})`,其中 `sys_depart_ids` 是角色允许访问的部门列表。 3. **后端代码支持**:使用 `@RequiresPermissions` 注解限制方法访问权限,例如 `@RequiresPermissions("system:user:list")` 确保只有拥有 `system:user:list` 权限角色才能访问该方法。 ```java @RequiresPermissions("system:user:list") public List<User> listUsers() { return userMapper.selectList(null); } ``` ### 前端权限控制 前端通过路由配置和组件权限控制实现页面级别的权限管理: 1. **路由权限**:在 Vue 路由配置中,通过 `meta.roles` 字段限制访问角色。例如,`meta: { roles: ['admin'] }` 表示只有 `admin` 角色可以访问该路由。 2. **组件权限**:在页面组件中,通过 `v-has` 指令控制按钮或组件的显示权限。例如,`v-has="'system:user:create'"` 确保只有拥有 `system:user:create` 权限的用户才能看到创建按钮。 ```vue <template> <button v-has="'system:user:create'">创建用户</button> </template> ``` ### 权限规则与动态 SQL JeecgBoot 的数据权限规则支持动态 SQL 片段,能够灵活实现复杂的权限控制逻辑。例如,通过 `sys_user_code` 实现用户级别的数据隔离,或通过 `sys_depart` 表实现跨部门数据共享。动态 SQL 片段通常在数据规则配置中定义,并在查询时动态替换为实际值。 ```sql sys_org_code IN (#{sys_depart_ids}) ``` ### 权限配置注意事项 1. **字段命名规范**:确保业务表中包含系统标准字段,如 `sys_org_code` 和 `sys_user_code`,以便与数据权限规则兼容。 2. **权限继承与覆盖**:角色权限可以继承全局权限,但可以通过角色级别的配置覆盖全局规则。 3. **权限缓存**:JeecgBoot 使用 Shiro 或 Spring Security 管理权限,需注意权限缓存的更新机制,避免权限配置生效延迟。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值