项目开发15:权限实现

128 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情 

业务分析

总管理员可以管理图书馆的信息,如添加图书馆等等。但是其他比如说员工就无法做到管理图书馆信息。那么这时候就需要根据登录用户的角色来判断用户所拥有的权限了。

思路

对于管理图书馆信息是十分简单的,一顿乱写就OK了。但是权限分析还是有些许难度,我在这里主要是用前端来实现的。

  1. 首先,是在left.html中完成此操作的。先引入vue,通过vue来实现权限操作。
  2. 数据库中的表设计。数据库中要根据每个用户拥有不同的权力来判断是否有权限做某件事。比如说,普通用户的角色role对应1也就是普通员工。而普通员工对应权限表则有1,3代表图书管理和借阅管理。所以普通用户就能进行图书管理和借阅管理。以此类推。因此需要创建一个方法由用户id来获取到用户的权限。
String sql = "select * from permission WHERE id in(Select menu_id from role_menu where role_id in(select role_id from role_user where user_id=?))";

上面sql语句的意思是通过用户id先获取到role_id。再通过查询得到的role_id来查询到menu_id也就是用户所能操作的权限id,再通过权限id就能查询到用户具体能做什么。此方法返回用户的权限id和权限名称所构成的集合即可

  1. controller的实现是这样的。在登录时就进行转发,将登录的user对象传给 indexServlet页面。这时候登录成功后就拿到了当前所属的user。那么调用刚刚创建的方法即可查询到用户此时所拥有的权限,在后续就可以根据用户的权限大小来决定是否能执行某项操作。重点在下一节的前端页面修改中,敬请期待吧!