diff --git a/backend/src/main/java/io/dataease/auth/api/AuthApi.java b/backend/src/main/java/io/dataease/auth/api/AuthApi.java index 7430096544..8bc3214d9c 100644 --- a/backend/src/main/java/io/dataease/auth/api/AuthApi.java +++ b/backend/src/main/java/io/dataease/auth/api/AuthApi.java @@ -62,6 +62,11 @@ public interface AuthApi { @PostMapping("/isOpenCas") boolean isOpenCas(); + + @ApiOperation("是否开启企业微信") + @PostMapping("/isOpenWecom") + boolean isOpenWecom(); + @ApiIgnore @PostMapping("/isPluginLoaded") boolean isPluginLoaded(); diff --git a/backend/src/main/java/io/dataease/auth/server/AuthServer.java b/backend/src/main/java/io/dataease/auth/server/AuthServer.java index 50f16218e8..0a60ce4c71 100644 --- a/backend/src/main/java/io/dataease/auth/server/AuthServer.java +++ b/backend/src/main/java/io/dataease/auth/server/AuthServer.java @@ -282,11 +282,19 @@ public class AuthServer implements AuthApi { Boolean licValid = PluginUtils.licValid(); if (!licValid) return false; - Boolean supportCas = authUserService.supportCas(); return authUserService.supportCas(); } + @Override + public boolean isOpenWecom() { + Boolean licValid = PluginUtils.licValid(); + if (!licValid) + return false; + + return authUserService.supportWecom(); + } + @Override public boolean isPluginLoaded() { Boolean licValid = PluginUtils.licValid(); diff --git a/backend/src/main/java/io/dataease/auth/service/AuthUserService.java b/backend/src/main/java/io/dataease/auth/service/AuthUserService.java index 5cd5b7c738..ba237448ec 100644 --- a/backend/src/main/java/io/dataease/auth/service/AuthUserService.java +++ b/backend/src/main/java/io/dataease/auth/service/AuthUserService.java @@ -16,7 +16,7 @@ public interface AuthUserService { SysUserEntity getCasUserByName(String username); - SysUserEntity getUserBySub(String sub); + SysUserEntity getUserBySub(String sub, Integer from); List roles(Long userId); @@ -32,6 +32,8 @@ public interface AuthUserService { Boolean supportCas(); + Boolean supportWecom(); + Boolean pluginLoaded(); void checkAdmin(String uname, String pwd); diff --git a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java index d2be520475..f5376717d0 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/AuthUserServiceImpl.java @@ -18,6 +18,7 @@ import io.dataease.plugins.xpack.cas.service.CasXpackService; import io.dataease.plugins.xpack.ldap.service.LdapXpackService; import io.dataease.plugins.xpack.oidc.service.OidcXpackService; +import io.dataease.plugins.xpack.wecom.service.WecomXpackService; import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.cache.annotation.CacheEvict; @@ -76,8 +77,8 @@ public class AuthUserServiceImpl implements AuthUserService { } @Override - public SysUserEntity getUserBySub(String sub) { - return authMapper.findUserBySub(sub); + public SysUserEntity getUserBySub(String sub, Integer from) { + return authMapper.findUserBySub(sub, from); } @Override @@ -166,6 +167,15 @@ public class AuthUserServiceImpl implements AuthUserService { return casXpackService.suuportCas(); } + @Override + public Boolean supportWecom() { + Map beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((WecomXpackService.class)); + if (beansOfType.keySet().size() == 0) return false; + WecomXpackService wecomXpackService = SpringContextUtil.getBean(WecomXpackService.class); + if (ObjectUtils.isEmpty(wecomXpackService)) return false; + return wecomXpackService.isOpen(); + } + @Override public Boolean pluginLoaded() { Map beansOfType = SpringContextUtil.getApplicationContext().getBeansOfType((PluginCommonService.class)); diff --git a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java index dca84d3a04..e8d73a1119 100644 --- a/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java +++ b/backend/src/main/java/io/dataease/auth/service/impl/ShiroServiceImpl.java @@ -81,12 +81,17 @@ public class ShiroServiceImpl implements ShiroService { filterChainDefinitionMap.put("/api/auth/validateName", ANON); filterChainDefinitionMap.put("/api/auth/isOpenLdap", ANON); filterChainDefinitionMap.put("/api/auth/isOpenOidc", ANON); + filterChainDefinitionMap.put("/api/auth/isOpenWecom", ANON); + filterChainDefinitionMap.put("/api/auth/isOpenDingtalk", ANON); + filterChainDefinitionMap.put("/api/auth/isOpenLark", ANON); filterChainDefinitionMap.put("/api/auth/getPublicKey", ANON); filterChainDefinitionMap.put("/api/pluginCommon/component/*", ANON); filterChainDefinitionMap.put("/api/pluginCommon/staticInfo/**", ANON); filterChainDefinitionMap.put("/plugin/oidc/authInfo", ANON); filterChainDefinitionMap.put("/sso/callBack*", ANON); filterChainDefinitionMap.put("/cas/callBack*", ANON); + filterChainDefinitionMap.put("/plugin/wecom/callBack*", ANON); + filterChainDefinitionMap.put("/plugin/wecom/getQrParam", ANON); filterChainDefinitionMap.put("/cas/reset/**", ANON); filterChainDefinitionMap.put("/unauth", ANON); diff --git a/backend/src/main/java/io/dataease/ext/AuthMapper.java b/backend/src/main/java/io/dataease/ext/AuthMapper.java index 8824240ab1..32dfeb0c96 100644 --- a/backend/src/main/java/io/dataease/ext/AuthMapper.java +++ b/backend/src/main/java/io/dataease/ext/AuthMapper.java @@ -29,7 +29,7 @@ public interface AuthMapper { SysUserEntity findCasUserByName(@Param("username") String username); - SysUserEntity findUserBySub(@Param("sub") String sub); + SysUserEntity findUserBySub(@Param("sub") String sub, @Param("userFrom") Integer userFrom); List roles(@Param("userId") Long userId); diff --git a/backend/src/main/java/io/dataease/ext/AuthMapper.xml b/backend/src/main/java/io/dataease/ext/AuthMapper.xml index 4322d3469b..c36c0a7e4c 100644 --- a/backend/src/main/java/io/dataease/ext/AuthMapper.xml +++ b/backend/src/main/java/io/dataease/ext/AuthMapper.xml @@ -55,7 +55,7 @@