若依框架开启注册功能及分配的单个或多个角色
由于若依框架是默认关闭注册功能的,所以想要开启的话得手动进行开启,开启后默认是没有用户角色的,想要配置用户角色,还得登录admin账户进行分配。因此想要点击注册后,选好用户角色后可以直接分配用户角色,就有了如下的文章:
一、开启注册功能
-
前端开启注册功能
-
后台开启注册功能
方法一:直接用admin账户登录后台管理系统进行设置
方法二:直接操作数据库进行设置
至此开启完毕!
二、分配单个角色
1、在首页注册后会调用下面的这个注册接口,然后一步一步去调用数据库
2、然后一步一步进去找到它的实现类,SysUserServiceImpl,然后再275行的时候找到这个方法,然后把下面的代码复制进去就行
3、修改public boolean registerUser(SysUser user){}方法
public boolean registerUser(SysUser user)
{
Boolean total = userMapper.insertUser(user) > 0; //这个是插入到用户表中
//插入到角色表中,然后注意一下这个new Long[]{2L},2L代表的含义是2是xx角色的id,L是Long长整型,这个样子是写死的,比如说:2是房东角色
//的id,那么这种做法插入都是房东的角色,所有注册的权限是房东角色权限。房东的权限可以在admin用户下分配(这里不细说)
insertUserRole(userMapper.selectUserByUserName(user.getUserName()).getUserId(),new Long[]{2L});
return total;
//return userMapper.insertUser(user) > 0; 原本存在的,可以删掉可以注释掉
}
三、分配多个角色
先说一下我这个的基本思路,比较low,但是可以实现。以我现在做的房屋租赁系统为例子:首先我是在前端注册页面新加一个字段registerForm.userType,这个字段为“11”的时候代表:房东,“22”的时候代表:租客,然后后端通过这个传过来的字段进行校验,如果为11,分配房东角色,拥有房东权限,如果为22,那就分配租客角色,拥有租客权限,这是我目前想到最简单的一个做法,不用额外新建一个表啥的。当然,关于那个字段的,你可以另外建立一个进行判断就行,不用跟我这么麻烦,我懒得写了就直接用了。话不多说了,上图:
新增的代码如下,其余都跟原来的一样:
<el-form-item prop="userType" label="角色">
<el-radio-group v-model="registerForm.userType">
<el-radio label="11">房东</el-radio>
<el-radio label="22">租客</el-radio>
</el-radio-group>
data() {
const equalToPassword = (rule, value, callback) => {
if (this.registerForm.password !== value) {
callback(new Error("两次输入的密码不一致"));
} else {
callback();
}
};
return {
codeUrl: "",
registerForm: {
username: "",
password: "",
confirmPassword: "",
userType: "11", //11代表房东,22代表租客
code: "",
uuid: ""
},
......
把下面这个代码复制进去就行
@Override
public boolean registerUser(SysUser user)
{
System.out.println(user);
System.out.println(user.getUserType());
if (user.getUserType().equals("11")){
System.out.println("房东");
Boolean total = userMapper.insertUser(user) > 0;
//插入角色
insertUserRole(userMapper.selectUserByUserName(user.getUserName()).getUserId(),new Long[]{2L});
return total;
// return userMapper.insertUser(user) > 0;
}else {
System.out.println("租客");
Boolean total = userMapper.insertUser(user) > 0;
//插入角色,100是我的租客角色id
insertUserRole(userMapper.selectUserByUserName(user.getUserName()).getUserId(),new Long[]{100L});
return total;
}
}
至此,完成分配多个角色!