wangliang %!s(int64=3) %!d(string=hai) anos
pai
achega
714fbf4345

+ 4 - 4
distributed-print/src/main/java/com/qmth/distributed/print/api/ClientController.java

@@ -84,10 +84,10 @@ public class ClientController {
         }
         AuthBean authBean = teachcloudCommonService.getUserAuth(sysUser.getId());
         if (Objects.nonNull(authBean) && Objects.nonNull(authBean.getRoleList()) && authBean.getRoleList().size() > 0) {
-            Set<RoleTypeEnum> roleType = authBean.getRoleList().stream().map(s -> s.getType()).collect(Collectors.toSet());
-            if (!roleType.contains(RoleTypeEnum.PRINTER)) {
-                throw ExceptionResultEnum.ERROR.exception("客户端只允许" + RoleTypeEnum.PRINTER.getDesc() + "登录");
-            }
+            Set<String> roleNames = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
+//            if (!roleNames.contains(RoleTypeEnum.PRINTER)) {
+//                throw ExceptionResultEnum.ERROR.exception("客户端只允许" + RoleTypeEnum.PRINTER.getDesc() + "登录");
+//            }
         }
         return ResultUtil.ok(teachcloudCommonService.login(login.getPassword(), sysUser, AppSourceEnum.SYSTEM));
     }

+ 6 - 8
distributed-print/src/main/java/com/qmth/distributed/print/api/SysController.java

@@ -100,7 +100,7 @@ public class SysController {
         }
 
         BasicSchool basicSchool = null;
-        if (!Objects.equals(login.getSchoolCode().toUpperCase(), RoleTypeEnum.ADMIN.name())) {
+        if (!login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             basicSchool = cacheService.schoolCache(login.getSchoolCode());
             if (Objects.isNull(basicSchool)) {
                 throw ExceptionResultEnum.SCHOOL_NO_DATA.exception();
@@ -111,7 +111,7 @@ public class SysController {
         }
         QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
         wrapper.lambda().eq(SysUser::getLoginName, login.getLoginName());
-        if (!Objects.equals(login.getSchoolCode().toUpperCase(), RoleTypeEnum.ADMIN.name())) {
+        if (!login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             wrapper.lambda().eq(SysUser::getSchoolId, basicSchool.getId());
         }
         List<SysUser> userList = sysUserService.list(wrapper);
@@ -119,14 +119,12 @@ public class SysController {
         if (Objects.isNull(userList) || userList.size() == 0) {
             throw ExceptionResultEnum.USER_NO_DATA.exception();
         }
-        if (Objects.equals(login.getSchoolCode().toUpperCase(), RoleTypeEnum.ADMIN.name())) {
+        if (login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             userList.forEach(o -> {
                 AuthBean authBean = teachcloudCommonService.getUserAuth(o.getId());
                 if (Objects.nonNull(authBean) && Objects.nonNull(authBean.getRoleList()) && authBean.getRoleList().size() > 0) {
-                    Set<RoleTypeEnum> roleType = authBean.getRoleList().stream().map(s -> s.getType()).collect(Collectors.toSet());
-                    if (!roleType.contains(RoleTypeEnum.ADMIN)
-//                            && !roleType.contains(RoleTypeEnum.CUSTOMER)
-                    ) {
+                    Set<String> roleNames = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
+                    if (!roleNames.contains(RoleTypeEnum.ADMIN.getDesc())) {
                         throw ExceptionResultEnum.ERROR.exception("学校代码为admin只允许超级管理员登录");
                     }
                 }
@@ -215,7 +213,7 @@ public class SysController {
     @ApiResponses({@ApiResponse(code = 200, message = "学校信息", response = EditResult.class)})
     @Aac(auth = BOOL.FALSE)
     public Result queryBySchoolCode(@ApiParam(value = "机构code", required = true) @RequestParam String code) {
-        if (!Objects.equals(code.toUpperCase(), RoleTypeEnum.ADMIN.name())) {
+        if (!code.equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             BasicSchool basicSchool = cacheService.schoolCache(code);
             if (Objects.isNull(basicSchool)) {
                 throw ExceptionResultEnum.SCHOOL_NO_DATA.exception();

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintAuthenticationService.java

@@ -113,7 +113,7 @@ public class DistributedPrintAuthenticationService implements AuthorizationServi
         request.setAttribute(SystemConstant.ORG, authBean.getOrg());
 
         //超级系统管理员拥有所有权限
-        int count = Objects.nonNull(authBean) ? (int) authBean.getRoleList().stream().filter(s -> s.getType() == RoleTypeEnum.ADMIN).count() : 0;
+        int count = Objects.nonNull(authBean) ? (int) authBean.getRoleList().stream().filter(s -> RoleTypeEnum.valueOf(s.getName()) == RoleTypeEnum.ADMIN).count() : 0;
         if (count > 0) {
             return true;
         }

+ 1 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -70,6 +70,7 @@ public class SystemConstant {
     public static final String DEFAULT_SIGN = "#";
     public static final String PARENT_ORG = "武汉大学教务处";
     public static final String SCHOOL_CODE = "wdfx";
+    public static final String ADMIN_CODE = "admin";
 //    public static final int MAX_RETRY_CREATE_PDF_COUNT = 5;
 
     /**

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/RoleTypeEnum.java

@@ -9,7 +9,7 @@ import java.util.List;
  */
 public enum RoleTypeEnum {
 
-    ADMIN("超级管理员"),
+    ADMIN("系统管理员"),
     SCHOOL_ADMIN("学校管理员"),
     EXAM_TEACHER("考务老师"),
     QUESTION_TEACHER("命题老师"),

+ 6 - 6
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -244,7 +244,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
                 sysRoleQueryWrapper.lambda().in(SysRole::getId, roleIds)
                         .eq(SysRole::getEnable, true);
                 List<SysRole> sysRoleList = sysRoleService.list(sysRoleQueryWrapper);
-                int count = Objects.nonNull(sysRoleList) && sysRoleList.size() > 0 ? (int) sysRoleList.stream().filter(s -> s.getType() == RoleTypeEnum.ADMIN).count() : 0;
+                int count = Objects.nonNull(sysRoleList) && sysRoleList.size() > 0 ? (int) sysRoleList.stream().filter(s -> RoleTypeEnum.valueOf(s.getName()) == RoleTypeEnum.ADMIN).count() : 0;
                 QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
                 if (count > 0) {//超级系统管理员
                     Long schoolId = (Long) ServletUtil.getRequestSchoolByNotVaild();
@@ -299,7 +299,7 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
             throw ExceptionResultEnum.NOT_LOGIN.exception();
         }
         for (Platform p : Platform.values()) {
-            String sessionId = SessionUtil.digest(userId, Math.abs(authBean.getRoleList().stream().map(s -> s.getType()).collect(Collectors.toSet()).hashCode()), p.name());
+            String sessionId = SessionUtil.digest(userId, Math.abs(authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet()).hashCode()), p.name());
             tbSessionService.removeById(sessionId);
             redisUtil.deleteUserSession(sessionId);
         }
@@ -728,18 +728,18 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         String token = SystemConstant.getUuid();
         cacheService.userCache(sysUser.getId());
         //添加用户会话缓存
-        Set<String> roleName = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
-        String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleName.toString().hashCode()), platform.name());
+        Set<String> roleNames = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
+        String sessionId = SessionUtil.digest(sysUser.getId(), Math.abs(roleNames.toString().hashCode()), platform.name());
         //TODO 测试用
         String test = SignatureEntityTest.build(SignatureType.TOKEN, sessionId, token);
         ExpireTimeBean expireTime = AuthUtil.getExpireTime(platform);
-        TBSession tbSession = new TBSession(sysUser.getSchoolId(), sessionId, String.valueOf(sysUser.getId()), roleName.toString(),
+        TBSession tbSession = new TBSession(sysUser.getSchoolId(), sessionId, String.valueOf(sysUser.getId()), roleNames.toString(),
                 platform.name(), platform.name(), deviceId, ServletUtil.getRequest().getLocalAddr(), token,
                 expireTime.getDate().getTime(), appSource);
         tbSessionService.saveOrUpdate(tbSession);
         redisUtil.setUserSession(sessionId, tbSession, expireTime.getExpireSeconds());
 
-        LoginResult loginResult = new LoginResult(sysUser, sessionId, test, roleName, appSource);
+        LoginResult loginResult = new LoginResult(sysUser, sessionId, test, roleNames, appSource);
 //        LoginResult loginResult = new LoginResult(sysUser, sessionId, token, roleName, appSource);
         loginResult.setSchoolInfo(Objects.nonNull(authBean.getSchool()) ? loginResult.new SchoolNativeBean(authBean.getSchool()) : null);
         loginResult.setOrgInfo(Objects.nonNull(authBean.getOrg()) ? loginResult.new OrgNativeBean(authBean.getOrg()) : null);

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/AuthUtil.java

@@ -13,6 +13,7 @@ import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.PrivilegePropertyEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.service.CacheService;
+import org.apache.catalina.Role;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -148,7 +149,7 @@ public class AuthUtil {
         request.setAttribute(SystemConstant.ORG, authBean.getOrg());
 
         //超级系统管理员拥有所有权限
-        int count = Objects.nonNull(authBean) ? (int) authBean.getRoleList().stream().filter(s -> s.getType() == RoleTypeEnum.ADMIN).count() : 0;
+        int count = Objects.nonNull(authBean) ? (int) authBean.getRoleList().stream().filter(s -> RoleTypeEnum.valueOf(s.getName()) == RoleTypeEnum.ADMIN).count() : 0;
         if (count > 0) {
             return true;
         }

+ 6 - 6
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/SysController.java

@@ -99,7 +99,7 @@ public class SysController {
         }
 
         BasicSchool basicSchool = null;
-        if (!Objects.equals(login.getSchoolCode().toUpperCase(), RoleTypeEnum.ADMIN.name())) {
+        if (!login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             basicSchool = cacheService.schoolCache(login.getSchoolCode());
             if (Objects.isNull(basicSchool)) {
                 throw ExceptionResultEnum.SCHOOL_NO_DATA.exception();
@@ -110,7 +110,7 @@ public class SysController {
         }
         QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
         wrapper.lambda().eq(SysUser::getLoginName, login.getLoginName());
-        if (!Objects.equals(login.getSchoolCode().toUpperCase(), RoleTypeEnum.ADMIN.name())) {
+        if (!login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             wrapper.lambda().eq(SysUser::getSchoolId, basicSchool.getId());
         }
         List<SysUser> userList = sysUserService.list(wrapper);
@@ -118,12 +118,12 @@ public class SysController {
         if (Objects.isNull(userList) || userList.size() == 0) {
             throw ExceptionResultEnum.USER_NO_DATA.exception();
         }
-        if (Objects.equals(login.getSchoolCode().toUpperCase(), RoleTypeEnum.ADMIN.name())) {
+        if (login.getSchoolCode().equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             userList.forEach(o -> {
                 AuthBean authBean = teachcloudCommonService.getUserAuth(o.getId());
                 if (Objects.nonNull(authBean) && Objects.nonNull(authBean.getRoleList()) && authBean.getRoleList().size() > 0) {
-                    Set<RoleTypeEnum> roleType = authBean.getRoleList().stream().map(s -> s.getType()).collect(Collectors.toSet());
-                    if (!roleType.contains(RoleTypeEnum.ADMIN) && !roleType.contains(RoleTypeEnum.CUSTOMER)) {
+                    Set<String> roleNames = authBean.getRoleList().stream().map(s -> s.getName()).collect(Collectors.toSet());
+                    if (!roleNames.contains(RoleTypeEnum.ADMIN.getDesc())) {
                         throw ExceptionResultEnum.ERROR.exception("学校代码为admin只允许超级管理员登录");
                     }
                 }
@@ -220,7 +220,7 @@ public class SysController {
     @ApiResponses({@ApiResponse(code = 200, message = "学校信息", response = EditResult.class)})
     @Aac(auth = BOOL.FALSE)
     public Result queryBySchoolCode(@ApiParam(value = "机构code", required = true) @RequestParam String code) {
-        if (!Objects.equals(code.toUpperCase(), RoleTypeEnum.ADMIN.name())) {
+        if (!code.equalsIgnoreCase(SystemConstant.ADMIN_CODE)) {
             BasicSchool basicSchool = cacheService.schoolCache(code);
             if (Objects.isNull(basicSchool)) {
                 throw ExceptionResultEnum.SCHOOL_NO_DATA.exception();

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/auth/TeachcloudReportAuthenticationService.java

@@ -113,7 +113,7 @@ public class TeachcloudReportAuthenticationService implements AuthorizationServi
         request.setAttribute(SystemConstant.ORG, authBean.getOrg());
 
         //超级系统管理员拥有所有权限
-        int count = Objects.nonNull(authBean) ? (int) authBean.getRoleList().stream().filter(s -> s.getType() == RoleTypeEnum.ADMIN).count() : 0;
+        int count = Objects.nonNull(authBean) ? (int) authBean.getRoleList().stream().filter(s -> RoleTypeEnum.valueOf(s.getName()) == RoleTypeEnum.ADMIN).count() : 0;
         if (count > 0) {
             return true;
         }