Browse Source

用户登录时用户信息中只有当前登录企业的角色,查看企业的所有用户列表时,获取的是用户在当前企业的角色

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7211 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
suntg 9 years ago
parent
commit
1e4b91d9a9

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

@@ -244,6 +244,7 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 
 	private void setGrantedAuthorities(User user) {
 		Set<GrantedAuthority> authSet = new HashSet<GrantedAuthority>();
+		user.setCurrentEnterpriseRoles();
 		Set<Role> roles = user.getRoles();
 		if (!CollectionUtils.isEmpty(roles)) {
 			for (Role role : roles) {

+ 17 - 0
src/main/java/com/uas/platform/b2b/model/User.java

@@ -2,6 +2,7 @@ package com.uas.platform.b2b.model;
 
 import java.io.Serializable;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.Set;
 
 import javax.persistence.Cacheable;
@@ -377,4 +378,20 @@ public class User implements Serializable {
 		return true;
 	}
 
+	/**
+	 * 设置当前登录企业的角色
+	 */
+	public void setCurrentEnterpriseRoles() {
+		if(!CollectionUtils.isEmpty(this.roles) && this.enterprise != null) {
+			Iterator<Role> iterator = this.roles.iterator();
+			Long enuu = this.enterprise.getUu();
+			while (iterator.hasNext()) {
+				Role role = iterator.next();
+				if(!role.getEnUU().equals(enuu)) {
+					iterator.remove();
+				}
+			}
+		}
+	}
+
 }

+ 19 - 14
src/main/java/com/uas/platform/b2b/service/impl/UserServiceImpl.java

@@ -1,16 +1,11 @@
 package com.uas.platform.b2b.service.impl;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 import javax.servlet.http.HttpServletRequest;
 
+import com.uas.platform.b2b.model.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.stereotype.Service;
@@ -24,12 +19,6 @@ import com.uas.platform.b2b.dao.EnterpriseDao;
 import com.uas.platform.b2b.dao.RoleDao;
 import com.uas.platform.b2b.dao.UserDao;
 import com.uas.platform.b2b.dao.VendorDao;
-import com.uas.platform.b2b.model.Distribute;
-import com.uas.platform.b2b.model.Enterprise;
-import com.uas.platform.b2b.model.SearchFilter;
-import com.uas.platform.b2b.model.User;
-import com.uas.platform.b2b.model.UserInfo;
-import com.uas.platform.b2b.model.Vendor;
 import com.uas.platform.b2b.service.UserService;
 import com.uas.platform.b2b.service.VendorService;
 import com.uas.platform.b2b.support.SendMailService;
@@ -142,7 +131,23 @@ public class UserServiceImpl implements UserService {
 
 	@Override
 	public List<User> findAll() {
-		return userDao.findByEnUU(SystemSession.getUser().getEnterprise().getUu());
+		List<User> users = userDao.findByEnUU(SystemSession.getUser().getEnterprise().getUu());
+		if(!CollectionUtils.isEmpty(users)) {
+			for (User user : users) {
+				Set<Role> roles = user.getRoles();
+				Long enuu = SystemSession.getUser().getEnterprise().getUu();
+				if(!CollectionUtils.isEmpty(roles)) {
+					Iterator<Role> iterator = roles.iterator();
+					while (iterator.hasNext()) {
+						Role role = iterator.next();
+						if(!role.getEnUU().equals(enuu)) {
+							iterator.remove();
+						}
+					}
+				}
+			}
+		}
+		return users;
 	}
 
 	@Override

+ 1 - 1
src/main/webapp/resources/tpl/index/home/left.html

@@ -16,7 +16,7 @@
 					<div>UU:{{::userInfo.userUU}}</div>
 					<div>姓名:{{::userInfo.userName}}</div>
 					<div>手机:{{::userInfo.userTel}}</div>
-					<div>角色:{{::userInfo.roles[0].desc}}</div>
+					<div>角色:{{::userInfo.role || '暂无角色'}}</div>
 				</div>
 			</div>
 		</div>