权限管理设计之菜单权限

 权限菜单的显示

 

MVC框架:struts2 + spring + hibernate

实现功能:后台管理系统中,每个登录的用户,有多个不同的角色,而每个角色都有不同的权限,针对每个用户所拥有的权限列表,根据其中菜单权限的等级进行划分归类,显示在操作菜单栏中。

菜单结构如下:


 

权限表设计如下:

       涉及的实体有部门、用户、角色及权限 ,部门-用户 是一对多关系,用户-角色是多对多关系,角色-权限也是多对多关系。在权限表中,权限等级取值可以是 1 、2、3,分别代表一级菜单、二级菜单、三级菜单,父级权限编号可以找到父级权限 ,一级菜单的父级权限默认是0,通过查询这个字段也可以找出某个菜单的子一级菜单列表。

       通过这样的设计,就可以在用户登录后,获取用户拥有的所有角色,再根据每个角色拥有的权限进行汇总筛选,去除掉角色之间可能重复的权限,组合成分层次的权限结构,最后返回到页面中,根据权限等级划分层次显示即可。

 

以下是实体类的代码:

import java.util.List;
import javax.persistence.*;
import org.hibernate.annotations.GenericGenerator;
import com.ylzinfo.psBusiness.app.entity.power.JGInfo;
import com.ylzinfo.psBusiness.app.entity.power.Role;
@Entity
@Table(name="SYS_USER") 
public class User {

	private String userid; // 用户ID(关键字)
	private String username; // 用户名(用户登录时的用户名 请确保登录名唯一)
	private String passwd; // 密码
	private String realname; // 真实姓名
	private String createtime; // 注册时间
	private String lastlogontime;// 上次登陆时间
	private String lockstate; // 账户锁定状态:0正常,1账户停用
	private String loginedcount; // 已登陆次数
	private String remark; // 备注
	private JGInfo baz001;//所属部门

	private String email;//邮箱地址
	private String reset_pw;//重置密码验证码(格式:验证码_有效时间)
	
	private List<Role> roles;//角色列表
	public User() {
		super();
	}

	@Id
	@GeneratedValue(generator = "paymentableGenerator")  
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	public String getUserid() {
		return userid;
	}

	public void setUserid(String userid) {
		this.userid = userid;
	}
	@Column(name="username")
	public String getUsername() {
		return username;
	}

	public void setUsername(String username)
  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue菜单权限设计和实现主要包括以下几个方面: 1. 菜单数据结构设计:首先,我们需要设计一个合适的菜单数据结构,一般可以使用树形结构来菜单的层级关系。每个菜单项包括菜单名称、路由路径、图标、是否显示等属性。 2. 权限控制设计:在用户登录成功后,后端会返回该用户所拥有的菜单权限。前端可以通过保存用户的菜单权限,对用户进行菜单权限的控制。一种常用的做法是在路由守卫中判断用户是否有访问该路由的权限,并根据权限来动态渲染菜单。 3. 菜单渲染和动态展示:根据用户的菜单权限,前端通过递归遍历菜单数据结构,来渲染用户可见的菜单项。通过在菜单组件中动态绑定数据,可以实现菜单的展开和收起、高亮当前路由等功能。 4. 菜单操作和权限判断:除了菜单的展示,还需要考虑菜单的操作权限判断。例如,某个菜单项只有管理员才有权限访问,可以根据用户的角色或权限来判断该菜单项是否应该显示或可操作。 5. 菜单数据的动态更新:在某些场景下,菜单的数据可能会有动态更新。比如,管理员新增了一个菜单项,对应的路由也发生了变化。这时候,前端需要通过调用后端接口来更新用户的菜单权限,并且重新渲染菜单。 综上所述,Vue菜单权限设计和实现需要从菜单数据结构设计权限控制、菜单渲染和动态展示、菜单操作和权限判断、菜单数据的动态更新等方面进行考虑和实现。通过合理的设计和实现,可以确保系统具备良好的菜单权限管理功能,提高用户体验和系统安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值