浏览代码

角色,机构禁用处理

hym 4 年之前
父节点
当前提交
28a5a7e3e8

+ 36 - 2
user_auth/src/main/java/com/huaxu/controller/UserController.java

@@ -11,6 +11,7 @@ import com.huaxu.model.Pagination;
 import com.huaxu.model.ResultStatus;
 import com.huaxu.service.UserService;
 
+import com.huaxu.util.ByteArrayUtils;
 import com.huaxu.util.RedisUtil;
 import com.huaxu.util.UserUtil;
 import io.swagger.annotations.Api;
@@ -25,6 +26,7 @@ import springfox.documentation.annotations.ApiIgnore;
 import javax.servlet.http.HttpServletRequest;
 import java.security.Principal;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * 用户(User)控制层
@@ -99,9 +101,28 @@ public class UserController {
         LoginUser currentUser = UserUtil.getCurrentUser();
         Integer roleId = currentUser.getRoleId();
         String roleKey="disableRole:"+roleId;
-
+        String companyKey="disableCompany:"+currentUser.getCompanyId();
+        String departmentKey="department:"+currentUser.getDepartmentId();
         byte[] bytes = redisUtil.get(roleKey.getBytes());
-        if(bytes!=null){
+        byte[] bytes2 = redisUtil.get(companyKey.getBytes());
+        byte[] bytes3 = redisUtil.get(departmentKey.getBytes());
+        String authorization = request.getHeader("Authorization");
+        String token =authorization.substring(authorization.indexOf("Bearer")+6).trim();
+        String tokenKey = "offlineStatus:" + token;
+        int status=0;
+        if(bytes==null){
+            status=2;
+        }
+        if(bytes2==null){
+            status=3;
+        }
+        if((currentUser.getDepartmentId()!=null&&bytes3!=null)){
+            status=4;
+        }
+        redisUtil.setExpire(tokenKey.getBytes(),
+                ByteArrayUtils.objectToBytes(status).get(), 1800);//15分钟过期
+
+        if(bytes!=null||bytes2!=null||(currentUser.getDepartmentId()!=null&&bytes3!=null)){
             return null;
         }
        /* String authorization = request.getHeader("Authorization");
@@ -127,5 +148,18 @@ public class UserController {
         int result = userService.insertRegister(user);
         return new AjaxMessage<>(ResultStatus.OK, result);
     }
+    @RequestMapping(value = "getUserStatus", method = RequestMethod.POST)
+    @ApiOperation(value = "获取用户当前状态")
+    public AjaxMessage<Integer> getUserStatus(@ApiParam(value = "token", required = true)@RequestParam String accessToken) {
+       String key="offlineStatus:"+ accessToken;
+        byte[] bytes = redisUtil.get(key.getBytes());
+        Optional<Integer> status = ByteArrayUtils.bytesToObject(bytes);
+        int result=0;
+        if(status!=null){
+            result=status.get();
+        }
+        return new AjaxMessage<>(ResultStatus.OK, result);
+    }
+
 
 }

+ 5 - 0
user_auth/src/main/java/com/huaxu/entity/User.java

@@ -96,4 +96,9 @@ public class User implements Serializable {
     private String updateBy;
     private String logo;
     private String webUrl;
+    private Integer departmentOrgState;
+    private Integer companyOrgState;
+    private String token;
+    private Integer roleState;
+
 }

+ 1 - 1
user_auth/src/main/java/com/huaxu/security/config/ResourceServerConfig.java

@@ -40,7 +40,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 .requestMatchers().antMatchers("/**")
                 .and()
                 .authorizeRequests()
-                .antMatchers("/sms/**","/statics/**","/validateCode/image","/user/**").permitAll()
+                .antMatchers("/user/getUserStatus","/sms/**","/statics/**","/validateCode/image","/user/**").permitAll()
                 .antMatchers("/swagger-ui.html","/webjars/**", "/webjars/**", "/swagger-resources/**",
                         "/v2/**"
                         )

+ 1 - 0
user_auth/src/main/java/com/huaxu/service/UserService.java

@@ -92,5 +92,6 @@ public interface UserService {
      * @return 影响行数
      */
     int insertRegister(User user);
+     void offline(String clientId, Integer userId, String status);
 
 }

+ 40 - 2
user_auth/src/main/java/com/huaxu/service/impl/UserServiceImpl.java

@@ -30,6 +30,7 @@ import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAut
 import org.springframework.security.oauth2.provider.*;
 import org.springframework.security.oauth2.provider.token.AuthorizationServerTokenServices;
 import org.springframework.security.oauth2.provider.token.ConsumerTokenServices;
+import org.springframework.security.oauth2.provider.token.TokenStore;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ReflectionUtils;
 
@@ -60,6 +61,8 @@ public class UserServiceImpl implements UserService {
     private AuthorizationServerTokenServices authorizationServerTokenServices;
     @Autowired
     private LoginLogMapper loginLogMapper;
+    @Autowired
+    private TokenStore tokenStore;
 
 
     /**
@@ -169,11 +172,25 @@ public class UserServiceImpl implements UserService {
     }
 
 
-
+    public void offline(String clientId, Integer userId, String status) {
+        Collection<OAuth2AccessToken> c = tokenStore.findTokensByClientIdAndUserName(clientId, String.valueOf(userId));
+        System.out.println(c.size());
+        for (OAuth2AccessToken oAuth2AccessToken : c) {
+            String accessToken = oAuth2AccessToken.getValue();
+            String tokenKey = "offlineStatus:" + accessToken;
+            redisUtil.setExpire(tokenKey.getBytes(), ByteArrayUtils.objectToBytes(status).get(), 1800);//15分钟过期
+            tokenStore.removeAccessToken(oAuth2AccessToken);
+        }
+    }
     @Override
     public User chooseUser(User user) {
 
+        LoginUser currentUser = UserUtil.getCurrentUser();
 
+        if(currentUser.getTenantId()!=null){
+            user.setPhone(currentUser.getPhoneNumber());
+            user.setTenantId(currentUser.getTenantId());
+        }
         user=findUser(user);
         UserDto userDto=new UserDto();
         userDto.setPhone(user.getPhone());
@@ -184,9 +201,28 @@ public class UserServiceImpl implements UserService {
         List<ProgramItem>programItems=new ArrayList<>();
 
         Permission permission= findPermission(user);
+
+        boolean returnFlag=false;
         if(permission==null||(permission!=null&&permission.getRoleState()==0)){
-            return null;
+            user.setRoleState(0);
+            returnFlag=true;
+
+        }
+        if((user.getCompanyOrgState()!=null&&user.getCompanyOrgState()==0)){
+            returnFlag=true;
+        }
+        if((user.getDepartmentOrgState()!=null&&user.getDepartmentOrgState()==0)){
+            returnFlag=true;
+        }
+        if("0".equals(user.getEnableState())){
+            returnFlag=true;
         }
+        if(returnFlag){
+            return user;
+        }
+
+            offline("smart-city-v2",user.getId(),"1");
+
 
         getDataPermission(permission.getPermissionType(),user,programItems);
         //角色必须是ROLE_开头,其余的是用户功能权限
@@ -221,6 +257,7 @@ public class UserServiceImpl implements UserService {
         loginUser.setAuthorities(grantedAuthorities);
         loginUser.setPermissonType(permission.getPermissionType());
         loginUser.setRoleId(permission.getRoleId());
+        loginUser.setLoginToken(UUID.randomUUID().toString());
         MobileLoginAuthenticationToken authenticationTokenReslut = new MobileLoginAuthenticationToken(loginUser,oAuth2Authentication.getCredentials(),loginUser.getAuthorities());
         authenticationTokenReslut.setDetails(oAuth2Authentication.getDetails());
         OAuth2Authentication oAuth2AuthenticationNew = new OAuth2Authentication(oAuth2Authentication.getOAuth2Request(), authenticationTokenReslut);
@@ -228,6 +265,7 @@ public class UserServiceImpl implements UserService {
         OAuth2AccessToken accessToken = authorizationServerTokenServices.createAccessToken(oAuth2AuthenticationNew);
 
         insertLoginLog(loginUser,"登录");
+        user.setToken(accessToken.getValue());
         return user;
     }
 

+ 6 - 2
user_auth/src/main/resources/mapper/UserMapper.xml

@@ -21,6 +21,8 @@
         <result property="updateBy" column="UPDATE_BY" jdbcType="VARCHAR"/>
         <result property="logo" column="LOGO" jdbcType="VARCHAR"/>
         <result property="webUrl" column="WEB_URL" jdbcType="VARCHAR"/>
+        <result property="companyOrgState" column="companyOrgState" jdbcType="INTEGER"/>
+        <result property="departmentOrgState" column="departmentOrgState" jdbcType="INTEGER"/>
     </resultMap>
 
 
@@ -47,14 +49,16 @@
     <!--通过实体作为筛选条件查询-->
     <select id="selectList" resultMap="UserMap">
         select
-        a.*, b.LOGO,b.WEB_URL
+        a.*, b.LOGO,b.WEB_URL ,c.ORG_STATE companyOrgState,d.ORG_STATE departmentOrgState
         from uims_user a join uims_tenant b on a.TENANT_ID=b.CODE
+        join uims_org c on a.COMPANY_ORG_ID=c.id left join
+        uims_org d on a.DEPT_ORG_ID=d.ID
         <where>
             <if test="id != null">
                 and ID = #{id}
             </if>
             <if test="tenantId != null and tenantId != ''">
-                and TENANT_ID = #{tenantId}
+                and a.TENANT_ID = #{tenantId}
             </if>
             <if test="username != null and username != ''">
                 and USERNAME = #{username}

+ 198 - 0
user_auth/user_auth.iml

@@ -0,0 +1,198 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="Spring" name="Spring">
+      <configuration />
+    </facet>
+    <facet type="web" name="Web">
+      <configuration>
+        <webroots />
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+      <excludeFolder url="file://$MODULE_DIR$/target" />
+    </content>
+    <orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" name="Maven: com.aliyun:aliyun-java-sdk-core:4.1.0" level="project" />
+    <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.9" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.11" level="project" />
+    <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.1.14" level="project" />
+    <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.1" level="project" />
+    <orderEntry type="library" name="Maven: javax.activation:activation:1.1.1" level="project" />
+    <orderEntry type="module" module-name="common" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.23" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.1.9.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.1.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.36.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.36.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.36.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.36.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.36.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.36.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.2.10.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.21" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.21" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.21" level="project" />
+    <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.17.Final" level="project" />
+    <orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.11.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.11.2" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.26" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.11.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.23.4" level="project" />
+    <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.9.13" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.9.13" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: com.vaadin.external.google:android-json:0.0.20131108.vaadin1" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-core:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
+    <orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.4" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.1.5" level="project" />
+    <orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" />
+    <orderEntry type="library" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:5.1.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.13" level="project" />
+    <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.13" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-common:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-spring-web:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
+    <orderEntry type="library" name="Maven: org.javassist:javassist:3.21.0-GA" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.4.0" level="project" />
+    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.1.0.Final" level="project" />
+    <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-nacos-discovery:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-io:commons-io:2.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.1.1" level="project" />
+    <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.47" level="project" />
+    <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-ribbon:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.archaius:archaius-core:0.7.6" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.code.findbugs:jsr305:3.0.1" level="project" />
+    <orderEntry type="library" name="Maven: commons-configuration:commons-configuration:1.8" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon:2.3.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.ribbon:ribbon-transport:2.3.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-contexts:0.4.9" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty-servo:0.4.9" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.hystrix:hystrix-core:1.5.18" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: javax.inject:javax.inject:1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" />
+    <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey.contribs:jersey-apache-client4:1.19.1" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.servo:servo-core:0.12.21" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-commons-util:0.3.0" level="project" />
+    <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-loadbalancer:2.3.0" level="project" />
+    <orderEntry type="library" scope="RUNTIME" name="Maven: com.netflix.netflix-commons:netflix-statistics:0.1.1" level="project" />
+    <orderEntry type="library" name="Maven: io.reactivex:rxjava:1.3.8" level="project" />
+    <orderEntry type="library" name="Maven: mysql:mysql-connector-java:5.1.47" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-boot-starter:3.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.2.0" level="project" />
+    <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:2.1" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.2" level="project" />
+    <orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:2.0.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-oauth2:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-security:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.7.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-security:2.1.0.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.commons:commons-pool2:2.6.2" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:2.1.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.9" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-jwt:1.0.11.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.64" level="project" />
+    <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.64" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security.oauth:spring-security-oauth2:2.3.4.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:5.1.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:5.1.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:5.1.5.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-mapper-asl:1.9.13" level="project" />
+    <orderEntry type="library" name="Maven: org.codehaus.jackson:jackson-core-asl:1.9.13" level="project" />
+    <orderEntry type="library" name="Maven: com.google.guava:guava:20.0" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.1.6.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.8.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.4" level="project" />
+  </component>
+</module>

+ 1 - 1
user_center/src/main/java/com/huaxu/dto/OrgTree.java

@@ -104,6 +104,6 @@ public class OrgTree {
    @TableField(exist = false)
    private String areaName;
    private List<OrgTree>orgs;
-   private boolean display;
+   private boolean disabled;
 }
 

+ 23 - 3
user_center/src/main/java/com/huaxu/service/impl/OrgServiceImpl.java

@@ -7,6 +7,8 @@ import com.huaxu.entity.Org;
 import com.huaxu.model.LoginUser;
 import com.huaxu.model.ProgramItem;
 import com.huaxu.service.OrgService;
+import com.huaxu.util.ByteArrayUtils;
+import com.huaxu.util.RedisUtil;
 import com.huaxu.util.UserUtil;
 import io.swagger.models.auth.In;
 import org.springframework.beans.BeanUtils;
@@ -27,7 +29,8 @@ import static com.google.common.collect.Lists.newArrayList;
 public class OrgServiceImpl implements OrgService {
     @Autowired
     private OrgMapper orgMapper;
-
+    @Autowired
+    private RedisUtil redisUtil;
 
 
     /**
@@ -110,7 +113,24 @@ public class OrgServiceImpl implements OrgService {
                     return -3;
             }
         }
+        //將禁用的角色放入redis,作为登出判断
+        String keyName="";
+        if(org.getOrgType().equals("company")){
+            keyName="disableCompany:";
+        }else if(org.getOrgType().equals("company")){
+            keyName="department:";
+        }
+        if(org.getOrgState()==0){
+
+            String orgKey=keyName+org.getId();
 
+            redisUtil.setExpire(orgKey.getBytes(), ByteArrayUtils.objectToBytes("1").get(), 60*60*24);//15分钟过期
+
+        } if(org.getOrgState()==1){
+            String orgKey=keyName+org.getId();
+            redisUtil.del(orgKey.getBytes());
+
+        }
 
         LoginUser currentUser = UserUtil.getCurrentUser();
         org.setUpdateBy(currentUser.getUsername());
@@ -257,9 +277,9 @@ public class OrgServiceImpl implements OrgService {
                 if (id.equals(orgTree.getParentOrgId())) {
                     //拥有权限可以显示
                     if(orgIds!=null&&orgIds.contains(orgTree.getId())){
-                        orgTree.setDisplay(true);
+                        orgTree.setDisabled(false);
                     }else{
-                        orgTree.setDisplay(false);
+                        orgTree.setDisabled(true);
                     }
                     List<OrgTree> chidren = getOrgTree(list, orgTree.getId(),level,orgIds);
                     OrgTree temPermission = new OrgTree();