提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
本人是编程小白,老手直接跳过就行了
我们一个项目里面总是有用户,作为大熊猫野外成长信息系统我们的用户又可以分成管理员,观察员,这时候我们需要进行权限管理。后端我采用了springboot
一、权限管理是什么?
权限管理是指在一个系统或组织中,对用户或角色进行授权和权限分配的过程。它主要涉及到对系统中的各种资源(如文件、数据库、功能模块等)进行访问控制和权限限制,以确保用户只能访问其具备权限的资源,防止未经授权的访问和潜在的安全风险。
权限管理的目的是保护系统中的敏感信息和资源,确保只有经过授权的用户或角色才能进行相应的操作
二、如何实现
1.基本思路
我们用mysql设计数据库的时候,建表的时候就要添加权限字段int类型,默认值要调成0或者1这种默认的值,要约定好0代表什么,1代表什么。
然后有关的操作就可以到时候查阅这个值来判断这个人是不是管理员,然后进行操作.
2.实战
我们对于管理员的具体逻辑就是权限字段为1就是观察员,为2就是管理员,为11就是申请中的状态。下面是一个观察员申请成为管理员的操作,代码如下:
public R applyforManager(@RequestParam int account){
UpdateWrapper wrapper3 = new UpdateWrapper();
wrapper3.eq(“account”,account).set(“authority”,“11”);
userService.update(wrapper3);
return R.success(“已申请”);
}
在这里前端传递个账户过来,我根据这个账户把他数据库中的权限换成了申请中的状态。
下面是观察员同意或者不同意申请的代码:
public R reply(@RequestParam String yesorno,@RequestParam int account){
//前端传递过来的值是yes就是申请通过,传递过来是0就申请失败
if(yesorno.equals(“yes”)){
UpdateWrapper wrapper = new UpdateWrapper();
wrapper.eq(“account”,account).set(“authority”,“2”);
userService.update(wrapper);
return R.success(“yes,申请通过”);
}
else {
UpdateWrapper wrapper = new UpdateWrapper();
wrapper.eq(“account”,account).set(“authority”,“1”);
userService.update(wrapper);
return R.error(“no,申请失败”);
}
}
同样的操作,如果前端想要申请的话就传递yes过来,我会把他的权限弄成管理员,传递其他的过来就申请失败了,把权限退回成观察员。
最后要写个方法返回给前端,让前端展示谁在进行申请。这里我用分页查询,每页十个列表,pageSize表示当前是多少页。代码如下
public R applyList(@RequestParam(“pageSize”) int pageSize, @RequestParam(“keyword”) String keyword) {
QueryWrapper wrapper = new QueryWrapper<>();
Page page = new Page<>(pageSize, 10);
wrapper.like(“username”, keyword)
.eq(“authority”, “11”); // 添加查询条件,判断 authority 是否为 11
UserMapper.selectPage(page,wrapper); // 查询符合条件的用户列表
for (User u : page.getRecords()) {
System.out.println(u);
}
return R.success(page);
}
总结
其实就是数据库中有这个这个字段,判断一下这个字段的值来进行操作