ssm框架app管理平台_SSM框架权限,如何列表级别权限管理,使用resultMap实现权限管理...

基础权限管理笔记终章

之前两篇关于Filter实现权限登录和权限校验的笔记已经更完了

最后,整理一下对于页面显示的权限管理实现(列表)

没有太高的技术含量,对于一些比较小的项目像是一些办公管理系统之类的足够用了,利用Filter对源代码入侵也比较少,使用配置方便,毕竟不是大项目,不喜勿喷

最终效果:用户登录系统直接显示权限范围内的操作菜单,其他不显示

 private static final long serialVersionUID = -3908225168044626931L; private int id; private String loginname; private String realname; private String sex; private Date birthday; private Tdept dept; private int dep; private String email; private int isenabled; private String password; private int creator; private Date createtime; private int updator; private Date updatetime; private String picurl; private String isenabledtText; private String birthdayText; private List permissions; //初始化菜单 private List menu = new ArrayList<>(); public List getMenu() { //查询添加之前清空菜单 menu.clear(); for (TPermission per1 : permissions) { //查询添加前清空菜单 per1.getChildren().clear(); //是一级菜单 if (per1.getPid() == 0) { //装载一级菜单下的二级菜单 for (TPermission per2 : permissions) { //权限的上级id等于一级菜单id if (per2.getPid() == per1.getId()) { per1.addChild(per2); } } menu.add(per1); } } return menu; }private static final long serialVersionUID = 8901347022172970844L; private int id; private String pname; private int pid; private String url; private int lev; private int sort; private int isleaf; private String npic; //初始化子权限 private List children=new ArrayList<>(); //一个一个的加进去 public void addChild(TPermission per){ children.add(per); }

两个实体类,一个是用户类,一个是权限类

数据库创建用户表,权限表,角色表,用户角色表,角色权限表

通过名字不难看出

用户表与权限表是通过角色和外键来实现关联的

具体见下图

f5d7d9df963a7ecd7a771187bace7fa5.png

Dao包接口

public interface UserDao {//检查登录TUser queryByLogin(LoginBean login)throws SysException;}

Dao.xml中的mapper映射

<?xml version="1.0" encoding="UTF-8"?>select * from tuser where loginname=#{loginname} andpassword=#{password}select * from tuser where id=#{id}select * from TPERMISSION t where id in(select pid from TROLEPERMISSION t where rid in(select rid from TUSERROLE t where usid=#{id} ))

在根据用户查询权限的时候使用resultmap

在resultmap中配置一对多的查询

然后在Service的部分去进行逻辑处理

public TUser chkLogin(String loginname, String password) throws SysException {// TODO Auto-generated method stubLoginBean login=new LoginBean();login.setLoginname(loginname);if(password.length()!=32){MD5 m=new MD5();login.setPassword(m.getMD5ofStr(password));}else {login.setPassword(password);}TUser user=dao.queryByLogin(login);if(user==null){throw new SysException("对不起,用户名或者密码不正确请重新输入
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值