修改角色错乱问题

This commit is contained in:
chenxing
2026-08-17 18:54:44 +08:00
parent 05c7741954
commit 6543203bc6
3 changed files with 9 additions and 7 deletions
@@ -445,7 +445,7 @@ public class SysUserService implements ISysUserService {
new ImportColumnDef("phone", "手机号(可选)", 16, false, null),
new ImportColumnDef("email", "email(可选)", 24, false, null),
new ImportColumnDef("nature", "用户性质\n(可选,默认普通用户\n组管理员2,\n普通用户0,\n导入不接受别的代码)", 24, false, "0"),
new ImportColumnDef("identity", "用户身份\n(1教师 2教职工 3学生 4家长)", 24, false, null),
new ImportColumnDef("identity", "用户身份\n(1教师 2校领导 3学生 4家长)", 24, false, null),
new ImportColumnDef("gender", "性别(可选)", 12, false, null),
new ImportColumnDef("birthday", "生日(yyyy-MM-dd)(可选)", 22, false, null)
);
@@ -516,7 +516,7 @@ public class SysUserService implements ISysUserService {
* - 组名 / 组id:取每个用户实际所属的主组(isMain=1),与导入模板的「参考」列保持一致;<br>
* - 密码:数据库存的是 BCrypt 密文、不可逆,导出留空(再导入时退化为默认 Vzuk4Dp3);<br>
* - 用户性质 nature:取 type 的 key(0普通 / 1超级管理员 / 2学校管理员);<br>
* - 用户身份 identity:取 roles 数组第一个元素(系统角色枚举 key:1管理员 2老师 3校领导 4局领导 5学生 6家长 7工作号)。
* - 用户身份 identity:取 roles 数组第一个元素(系统角色枚举 SysRoleEnum key:1老师 2校领导 3学生 4家长 5局领导 6工作号 7管理员)。
*/
@Override
public void exportUsers(Integer groupId, Integer withSub, String name, HttpServletResponse response) throws IOException {
@@ -839,7 +839,7 @@ public class SysUserService implements ISysUserService {
/**
* 根据模板中的用户性质与用户身份构建 roles 列表。
* - 用户性质:0普通用户(不加管理员),2组管理员(加 ADMIN=7);其他值视为非法。
* - 用户身份:1教师->TEACHER(1),2教职工->SCHOOL_LEADER(2),3学生->STUDENT(3),4家长->PARENT(4)。
* - 用户身份:1教师->TEACHER(1),2校领导->SCHOOL_LEADER(2),3学生->STUDENT(3),4家长->PARENT(4)。
*/
private List<Integer> buildImportRoles(Integer nature, Integer identity) {
Set<Integer> roleSet = new HashSet<>();
@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import com.yunhai.platform.utils.exception.DException;
import com.yunhai.userbase.enums.SysRoleEnum;
import java.util.Arrays;
import java.util.List;
@@ -81,10 +82,11 @@ public class OtherUtil {
}
/**
* 判断是否为校领导
*/
* 判断角色是否为管理员(SysRoleEnum.ADMIN = 7)。
* 注:方法名历史遗留为 isAdminById,语义即「是否具备管理员权限」。
*/
public final static Boolean isAdminById(Integer roleId){
return Arrays.asList(2,5,7).contains(roleId);
return roleId != null && SysRoleEnum.ADMIN.getKey().equals(roleId);
}
+1 -1
View File
@@ -10,7 +10,7 @@
-- 2. 密码统一为 yunhai@1357,已使用 BCrypt(strength=10,前缀 $2a$,与后端
-- org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder 默认一致)加密后写入 password 列。
-- 3. 超级管理员角色由 roles 列承载:本系统角色枚举(SysRoleEnum)最高为 ADMIN(7),
-- 应用内 isAdminById 对 {2,5,7} 返回 true,故赋予 [7] 即具备管理员权限。
-- 应用内 isAdminById 仅对 SysRoleEnum.ADMIN(7) 返回 true,故赋予 [7] 即具备管理员权限。
-- 若需“全角色”超级权限,可将 '[7]' 改为 '[1,2,3,4,5,6,7]'。
-- 4. type 列(用户类型枚举 UserTypeEnum):0=普通用户,1=超级管理员,2=学校管理员。
-- 本脚本写入的 3 个种子账号均为 type=1(超级管理员);应用层在新增/编辑用户时会自动推导: