Просмотр исходного кода

登录拦截增加角色判断

hejq 7 лет назад
Родитель
Сommit
59c08012c9

+ 15 - 0
src/main/java/com/uas/platform/b2b/filter/SSOInterceptor.java

@@ -78,6 +78,9 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 	@Autowired
 	private SigninLogService signinLogService;
 
+	@Autowired
+    private com.uas.platform.b2b.v2.service.EnterpriseService v2EnterpriseService;
+
 	private final DeviceResolver deviceResolver = new LiteDeviceResolver();
 
     @Autowired
@@ -163,6 +166,12 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 			}
 		}
 		if (user != null) {
+            // 登录之前判断在当前企业的角色信息
+            if (null != user.getEnterprise()) {
+                Enterprise enterprise = user.getEnterprise();
+                user = v2EnterpriseService.setUserRole(user, enterprise);
+                user.setCurrentEnterprise(enterprise);
+            }
 			SystemSession.setUser(user);
 			try {
 				accessDecision(request, user);
@@ -269,6 +278,12 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 			}
 		}
 		if (user != null) {
+		    // 登录之前判断在当前企业的角色信息
+            if (null != user.getEnterprise()) {
+                Enterprise enterprise = user.getEnterprise();
+                user = v2EnterpriseService.setUserRole(user, enterprise);
+                user.setCurrentEnterprise(enterprise);
+            }
 			SystemSession.setUser(user);
             setResponseAuthorized(response, user, true);
 			try {

+ 2 - 1
src/main/java/com/uas/platform/b2b/v2/service/EnterpriseService.java

@@ -40,6 +40,7 @@ public interface EnterpriseService {
      *
      * @param user 用户
      * @param enterprise 企业
+     * @return User
      */
-    void setUserRole(User user, Enterprise enterprise);
+    User setUserRole(User user, Enterprise enterprise);
 }

+ 8 - 0
src/main/java/com/uas/platform/b2b/v2/service/UserService.java

@@ -27,4 +27,12 @@ public interface UserService {
      * @param userUU
      */
 	void removeUser(Long spaceUU, Long userUU);
+
+    /**
+     * 设置用户角色
+     *
+     * @param oldUser 用户信息
+     * @return User
+     */
+    User checkIsAdmin(User oldUser);
 }

+ 2 - 2
src/main/java/com/uas/platform/b2b/v2/service/impl/EnterpriseServiceImpl.java

@@ -134,7 +134,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
      * @param enterprise 企业信息
      */
     @Override
-    public void setUserRole(User user, Enterprise enterprise) {
+    public User setUserRole(User user, Enterprise enterprise) {
         // 新用户注册企业时为空
         Set<Role> existRoles = new HashSet<Role>();
         // 老用户注册新企业
@@ -147,7 +147,7 @@ public class EnterpriseServiceImpl implements EnterpriseService {
             existRoles.add(adminList.get(0));
             user.setRoles(existRoles);
         }
-        userDao.save(user);
+        return userDao.save(user);
     }
 
 	@Override

+ 5 - 3
src/main/java/com/uas/platform/b2b/v2/service/impl/UserServiceImpl.java

@@ -73,7 +73,7 @@ public class UserServiceImpl implements UserService {
         LOGGER.info(JSONObject.toJSON(oldUser));
 		// 判断新注册用户是否绑定企业并且设置成管理员
         if (!CollectionUtils.isEmpty(oldUser.getEnterprises()) && oldUser.getEnterprises().size() == 1) {
-            checkIsAdmin(oldUser);
+            oldUser = checkIsAdmin(oldUser);
         }
 		return oldUser;
 	}
@@ -83,12 +83,14 @@ public class UserServiceImpl implements UserService {
      *
      * @param oldUser 用户信息
      */
-    private void checkIsAdmin(User oldUser) {
+    @Override
+    public User checkIsAdmin(final User oldUser) {
 	    oldUser.getEnterprises().forEach(enterprise -> {
 	        if (Objects.equals(enterprise.getEnAdminuu(), oldUser.getUserUU())) {
-                enterpriseService.setUserRole(oldUser, enterprise);
+               enterpriseService.setUserRole(oldUser, enterprise);
             }
         });
+	    return oldUser;
     }
 
     private com.uas.platform.b2b.model.User getUser(UserView user) {