diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/DocUserDetails.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/DocUserDetails.java index 00b2478d..3bc6c607 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/DocUserDetails.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/DocUserDetails.java @@ -1,6 +1,6 @@ package com.zyplayer.doc.data.config.security; -import java.util.Set; +import java.util.List; /** * 登录用户信息 @@ -13,7 +13,7 @@ public class DocUserDetails { private String username; private String password; private boolean enabled; - private Set authorities; + private List userAuthList; public Long getUserId() { return userId; @@ -47,12 +47,12 @@ public class DocUserDetails { this.enabled = enabled; } - public Set getAuthorities() { - return authorities; + public List getUserAuthList() { + return userAuthList; } - public void setAuthorities(Set authorities) { - this.authorities = authorities; + public void setUserAuthList(List userAuthList) { + this.userAuthList = userAuthList; } public DocUserDetails(Long userId, String username) { @@ -68,13 +68,13 @@ public class DocUserDetails { this.enabled = enabled; } - public DocUserDetails(Long userId, String username, String password, boolean enabled, Set authorities) { + public DocUserDetails(Long userId, String username, String password, boolean enabled, List userAuthList) { super(); this.userId = userId; this.username = username; this.password = password; this.enabled = enabled; - this.authorities = authorities; + this.userAuthList = userAuthList; } @Override @@ -84,7 +84,7 @@ public class DocUserDetails { ", username='" + username + '\'' + ", password='" + password + '\'' + ", enabled=" + enabled + - ", authorities=" + authorities + + ", userAuthList=" + userAuthList + '}'; } } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/DocUserUtil.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/DocUserUtil.java index cb5ca0c3..fa71aa16 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/DocUserUtil.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/DocUserUtil.java @@ -3,7 +3,10 @@ package com.zyplayer.doc.data.config.security; import com.zyplayer.doc.data.utils.CachePrefix; import com.zyplayer.doc.data.utils.CacheUtil; +import java.util.List; +import java.util.Objects; import java.util.Set; +import java.util.stream.Collectors; /** * 用户工具类 @@ -19,8 +22,17 @@ public class DocUserUtil { DocUserUtil.ACCESS_TOKEN.set(accessToken); } - public static boolean haveCustomAuth(String authName, String suffix) { - return haveAuth(authName + suffix); + public static boolean haveCustomAuth(String authName, Integer sysType, Integer sysModuleType, Long sysModuleId) { + DocUserDetails currentUser = getCurrentUser(); + if (currentUser == null) { + return false; + } + return currentUser.getUserAuthList().stream().anyMatch(auth -> + Objects.equals(auth.getAuthCode(), authName) + && Objects.equals(auth.getSysType(), sysType) + && Objects.equals(auth.getSysModuleType(), sysModuleType) + && Objects.equals(auth.getSysModuleId(), sysModuleId) + ); } public static boolean haveAuth(String... authNames) { @@ -28,8 +40,9 @@ public class DocUserUtil { if (currentUser == null) { return false; } + Set authCodeSet = currentUser.getUserAuthList().stream().map(UserAuthVo::getAuthCode).collect(Collectors.toSet()); for (String authName : authNames) { - if (!currentUser.getAuthorities().contains(authName)) { + if (!authCodeSet.contains(authName)) { return false; } } @@ -64,12 +77,12 @@ public class DocUserUtil { /** * 设置当前用户权限 */ - public static void setUserAuth(Long userId, Set userAuthSet) { + public static void setUserAuth(Long userId, List userAuthList) { String userToken = CacheUtil.get(CachePrefix.LOGIN_USER_ID_TOKEN + userId); if (userToken != null) { DocUserDetails docUser = CacheUtil.get(userToken); if (docUser != null) { - docUser.setAuthorities(userAuthSet); + docUser.setUserAuthList(userAuthList); CacheUtil.put(userToken, docUser); } } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/UserAuthVo.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/UserAuthVo.java new file mode 100644 index 00000000..65740488 --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/config/security/UserAuthVo.java @@ -0,0 +1,96 @@ +package com.zyplayer.doc.data.config.security; + +import com.zyplayer.doc.data.repository.manage.entity.UserAuth; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; + +import java.io.Serializable; + +/** + *

+ * 用户权限表 + *

+ * + * @author 暮光:城中城 + * @since 2019-05-31 + */ +public class UserAuthVo implements Serializable { + + private static final long serialVersionUID = 1L; + + public UserAuthVo() { + + } + + public UserAuthVo(UserAuth userAuth) { + this.authId = userAuth.getAuthId(); + this.sysType = userAuth.getSysType(); + this.sysModuleType = userAuth.getSysModuleType(); + this.sysModuleId = userAuth.getSysModuleId(); + } + + /** + * 权限ID + */ + private Long authId; + + /** + * 权限code + */ + private String authCode; + + /** + * 系统类型,{@link DocSysType} + */ + private Integer sysType; + + /** + * 系统模块类型,{@link DocSysModuleType} + */ + private Integer sysModuleType; + + /** + * 系统模块ID + */ + private Long sysModuleId; + + public Long getAuthId() { + return authId; + } + + public void setAuthId(Long authId) { + this.authId = authId; + } + + public Integer getSysType() { + return sysType; + } + + public void setSysType(Integer sysType) { + this.sysType = sysType; + } + + public Integer getSysModuleType() { + return sysModuleType; + } + + public void setSysModuleType(Integer sysModuleType) { + this.sysModuleType = sysModuleType; + } + + public Long getSysModuleId() { + return sysModuleId; + } + + public void setSysModuleId(Long sysModuleId) { + this.sysModuleId = sysModuleId; + } + + public String getAuthCode() { + return authCode; + } + + public void setAuthCode(String authCode) { + this.authCode = authCode; + } +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/UserAuth.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/UserAuth.java index 69ec690c..a1909648 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/UserAuth.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/manage/entity/UserAuth.java @@ -59,9 +59,19 @@ public class UserAuth implements Serializable { private Date updateTime; /** - * 自定义权限结尾 + * 系统类型,DocSysType */ - private String authCustomSuffix; + private Integer sysType; + + /** + * 系统模块类型,DocSysModuleType + */ + private Integer sysModuleType; + + /** + * 系统模块ID + */ + private Long sysModuleId; public Long getId() { return id; @@ -119,14 +129,31 @@ public class UserAuth implements Serializable { public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; } - public String getAuthCustomSuffix() { - return authCustomSuffix; + + public Integer getSysType() { + return sysType; } - - public void setAuthCustomSuffix(String authCustomSuffix) { - this.authCustomSuffix = authCustomSuffix; + + public void setSysType(Integer sysType) { + this.sysType = sysType; } - + + public Integer getSysModuleType() { + return sysModuleType; + } + + public void setSysModuleType(Integer sysModuleType) { + this.sysModuleType = sysModuleType; + } + + public Long getSysModuleId() { + return sysModuleId; + } + + public void setSysModuleId(Long sysModuleId) { + this.sysModuleId = sysModuleId; + } + @Override public String toString() { return "UserAuth{" + @@ -138,7 +165,6 @@ public class UserAuth implements Serializable { ", delFlag=" + delFlag + ", creationTime=" + creationTime + ", updateTime=" + updateTime + - ", authCustomSuffix=" + authCustomSuffix + "}"; } } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/DocSysModuleType.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/DocSysModuleType.java new file mode 100644 index 00000000..b95a98a1 --- /dev/null +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/DocSysModuleType.java @@ -0,0 +1,93 @@ +package com.zyplayer.doc.data.repository.support.consts; + +/** + * 系统模块类型枚举 + * + * @author 暮光:城中城 + * @since 2020-06-26 + */ +public class DocSysModuleType { + public static enum Manage { + USER_MANAGE(1, "用户管理权限"), + ; + + Manage(int type, String desc) { + this.type = type; + this.desc = desc; + } + + private final int type; + private final String desc; + + public int getType() { + return type; + } + + public String getDesc() { + return desc; + } + } + + public static enum Wiki { + PAGE(1, "空间"), + ; + + Wiki(int type, String desc) { + this.type = type; + this.desc = desc; + } + + private final int type; + private final String desc; + + public int getType() { + return type; + } + + public String getDesc() { + return desc; + } + } + + public static enum Db { + DATASOURCE(1, "数据源管理"), + ; + + Db(int type, String desc) { + this.type = type; + this.desc = desc; + } + + private final int type; + private final String desc; + + public int getType() { + return type; + } + + public String getDesc() { + return desc; + } + } + + public static enum Api { + DOC(1, "api文档管理"), + ; + + Api(int type, String desc) { + this.type = type; + this.desc = desc; + } + + private final int type; + private final String desc; + + public int getType() { + return type; + } + + public String getDesc() { + return desc; + } + } +} diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/UserMsgSysType.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/DocSysType.java similarity index 79% rename from zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/UserMsgSysType.java rename to zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/DocSysType.java index ea10385b..54879e17 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/UserMsgSysType.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/repository/support/consts/DocSysType.java @@ -6,12 +6,12 @@ package com.zyplayer.doc.data.repository.support.consts; * @author 暮光:城中城 * @since 2020-06-26 */ -public enum UserMsgSysType { +public enum DocSysType { // 系统类型 1=manage 2=wiki 3=db - MANAGE(1), WIKI(2), DB(2), + MANAGE(1), WIKI(2), DB(3), ; - UserMsgSysType(int type) { + DocSysType(int type) { this.type = type; } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/UserAuthService.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/UserAuthService.java index 91cc17b2..100a3093 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/UserAuthService.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/UserAuthService.java @@ -1,9 +1,10 @@ package com.zyplayer.doc.data.service.manage; -import com.zyplayer.doc.data.repository.manage.entity.UserAuth; import com.baomidou.mybatisplus.extension.service.IService; +import com.zyplayer.doc.data.config.security.UserAuthVo; +import com.zyplayer.doc.data.repository.manage.entity.UserAuth; -import java.util.Set; +import java.util.List; /** *

@@ -15,5 +16,5 @@ import java.util.Set; */ public interface UserAuthService extends IService { - Set getUserAuthSet(Long id); + List getUserAuthSet(Long id); } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/UserMessageService.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/UserMessageService.java index 5ea14aa4..e1b17dfb 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/UserMessageService.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/UserMessageService.java @@ -3,7 +3,7 @@ package com.zyplayer.doc.data.service.manage; import com.baomidou.mybatisplus.extension.service.IService; import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.repository.manage.entity.UserMessage; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserMsgType; /** @@ -18,5 +18,5 @@ public interface UserMessageService extends IService { void addWikiMessage(UserMessage userMessage); - UserMessage createUserMessage(DocUserDetails currentUser, Long pageId, String dataDesc, UserMsgSysType sysType, UserMsgType msgType); + UserMessage createUserMessage(DocUserDetails currentUser, Long pageId, String dataDesc, DocSysType sysType, UserMsgType msgType); } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/UserAuthServiceImpl.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/UserAuthServiceImpl.java index 6723150e..15dfe58c 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/UserAuthServiceImpl.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/UserAuthServiceImpl.java @@ -2,11 +2,13 @@ package com.zyplayer.doc.data.service.manage.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zyplayer.doc.data.config.security.UserAuthVo; import com.zyplayer.doc.data.repository.manage.entity.AuthInfo; import com.zyplayer.doc.data.repository.manage.entity.UserAuth; import com.zyplayer.doc.data.repository.manage.mapper.UserAuthMapper; import com.zyplayer.doc.data.service.manage.AuthInfoService; import com.zyplayer.doc.data.service.manage.UserAuthService; +import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -28,20 +30,21 @@ public class UserAuthServiceImpl extends ServiceImpl i AuthInfoService authInfoService; @Override - public Set getUserAuthSet(Long id) { + public List getUserAuthSet(Long id) { QueryWrapper authWrapper = new QueryWrapper<>(); authWrapper.eq("user_id", id).eq("del_flag", "0"); List userAuthList = this.list(authWrapper); - Set userAuthSet = Collections.emptySet(); - if (userAuthList != null && userAuthList.size() > 0) { - List authIdList = userAuthList.stream().map(UserAuth::getAuthId).collect(Collectors.toList()); - Collection authInfoList = authInfoService.listByIds(authIdList); - Map authNameMap = authInfoList.stream().collect(Collectors.toMap(AuthInfo::getId, AuthInfo::getAuthName)); - userAuthSet = userAuthList.stream().map(val -> { - String authName = Optional.ofNullable(authNameMap.get(val.getAuthId())).orElse(""); - return authName + Optional.ofNullable(val.getAuthCustomSuffix()).orElse(""); - }).collect(Collectors.toSet()); + if (CollectionUtils.isEmpty(userAuthList)) { + return Collections.emptyList(); } - return userAuthSet; + List authIdList = userAuthList.stream().map(UserAuth::getAuthId).collect(Collectors.toList()); + Collection authInfoList = authInfoService.listByIds(authIdList); + Map authNameMap = authInfoList.stream().collect(Collectors.toMap(AuthInfo::getId, AuthInfo::getAuthName)); + // 组装 + List userAuthVoList = userAuthList.stream().map(UserAuthVo::new).collect(Collectors.toList()); + for (UserAuthVo userAuthVo : userAuthVoList) { + userAuthVo.setAuthCode(authNameMap.get(userAuthVo.getAuthId())); + } + return userAuthVoList; } } diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/UserMessageServiceImpl.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/UserMessageServiceImpl.java index ec6f83ca..6e73b175 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/UserMessageServiceImpl.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/UserMessageServiceImpl.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.repository.manage.entity.UserMessage; import com.zyplayer.doc.data.repository.manage.mapper.UserMessageMapper; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserMsgType; import com.zyplayer.doc.data.service.manage.UserMessageService; import org.springframework.stereotype.Service; @@ -24,7 +24,7 @@ import java.util.Objects; public class UserMessageServiceImpl extends ServiceImpl implements UserMessageService { @Override - public UserMessage createUserMessage(DocUserDetails currentUser, Long dataId, String dataDesc, UserMsgSysType sysType, UserMsgType msgType) { + public UserMessage createUserMessage(DocUserDetails currentUser, Long dataId, String dataDesc, DocSysType sysType, UserMsgType msgType) { UserMessage userMessage = new UserMessage(); userMessage.setDataId(dataId); userMessage.setDataDesc(dataDesc); diff --git a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/WikiPageServiceImpl.java b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/WikiPageServiceImpl.java index 8e210642..e20e1b5a 100644 --- a/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/WikiPageServiceImpl.java +++ b/zyplayer-doc-data/src/main/java/com/zyplayer/doc/data/service/manage/impl/WikiPageServiceImpl.java @@ -8,7 +8,7 @@ import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.manage.entity.UserMessage; import com.zyplayer.doc.data.repository.manage.entity.WikiPage; import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserMsgType; import com.zyplayer.doc.data.service.manage.UserMessageService; import com.zyplayer.doc.data.service.manage.WikiPageService; @@ -54,7 +54,7 @@ public class WikiPageServiceImpl extends ServiceImpl i // 给相关人发送消息 WikiPage wikiPageSel = this.getById(wikiPage.getId()); DocUserDetails currentUser = DocUserUtil.getCurrentUser(); - UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_PARENT); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_PARENT); userMessage.setAffectUserId(wikiPageSel.getCreateUserId()); userMessage.setAffectUserName(wikiPageSel.getCreateUserName()); userMessageService.addWikiMessage(userMessage); @@ -64,7 +64,7 @@ public class WikiPageServiceImpl extends ServiceImpl i public void deletePage(WikiPage wikiPage) { // 给相关人发送消息 DocUserDetails currentUser = DocUserUtil.getCurrentUser(); - UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPage.getId(), wikiPage.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_DELETE); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPage.getId(), wikiPage.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_DELETE); userMessage.setAffectUserId(wikiPage.getCreateUserId()); userMessage.setAffectUserName(wikiPage.getCreateUserName()); userMessageService.addWikiMessage(userMessage); diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DatabaseDocController.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DatabaseDocController.java index 37090a97..b02ab5cd 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DatabaseDocController.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DatabaseDocController.java @@ -9,6 +9,8 @@ import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.manage.entity.DbDatasource; import com.zyplayer.doc.data.repository.manage.entity.UserAuth; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.service.manage.DbDatasourceService; import com.zyplayer.doc.data.service.manage.UserAuthService; import com.zyplayer.doc.db.controller.vo.DatabaseExportVo; @@ -65,14 +67,15 @@ public class DatabaseDocController { // 没管理权限只返回有权限的数据源 if (!DocUserUtil.haveAuth(DocAuthConst.DB_DATASOURCE_MANAGE)) { QueryWrapper updateWrapper = new QueryWrapper<>(); - updateWrapper.likeRight("auth_custom_suffix", DocAuthConst.DB); + updateWrapper.eq("sys_type", DocSysType.DB.getType()); + updateWrapper.eq("sys_module_type", DocSysModuleType.Db.DATASOURCE.getType()); updateWrapper.eq("del_flag", 0); updateWrapper.eq("user_id", currentUser.getUserId()); List userAuthList = userAuthService.list(updateWrapper); if (userAuthList == null || userAuthList.isEmpty()) { return DocDbResponseJson.ok(); } - List userAuthDbIds = userAuthList.stream().map(val -> NumberUtils.toLong(val.getAuthCustomSuffix().replace(DocAuthConst.DB, ""))).collect(Collectors.toList()); + List userAuthDbIds = userAuthList.stream().map(UserAuth::getSysModuleId).collect(Collectors.toList()); wrapper.in("id", userAuthDbIds); } wrapper.select("id", "name", "group_name"); @@ -227,7 +230,7 @@ public class DatabaseDocController { */ private void judgeAuth(Long sourceId, String authName, String noAuthInfo) { if (!DocUserUtil.haveAuth(DocAuthConst.DB_DATASOURCE_MANAGE) - && !DocUserUtil.haveCustomAuth(authName, DocAuthConst.DB + sourceId)) { + && !DocUserUtil.haveCustomAuth(authName, DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), sourceId)) { throw new ConfirmException(noAuthInfo); } } diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbDataSourceAuthController.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbDataSourceAuthController.java index f7a1695d..1b3571ca 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbDataSourceAuthController.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbDataSourceAuthController.java @@ -11,6 +11,8 @@ import com.zyplayer.doc.data.repository.manage.entity.AuthInfo; import com.zyplayer.doc.data.repository.manage.entity.UserAuth; import com.zyplayer.doc.data.repository.manage.entity.UserInfo; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.service.manage.AuthInfoService; import com.zyplayer.doc.data.service.manage.UserAuthService; import com.zyplayer.doc.data.service.manage.UserInfoService; @@ -148,7 +150,9 @@ public class DbDataSourceAuthController { private UserAuth createUserAuth(Long sourceId, Long loginUserId, Long userId, Long authId) { UserAuth userAuth = new UserAuth(); - userAuth.setAuthCustomSuffix(DocAuthConst.DB + sourceId); + userAuth.setSysType(DocSysType.DB.getType()); + userAuth.setSysModuleType(DocSysModuleType.Db.DATASOURCE.getType()); + userAuth.setSysModuleId(sourceId); userAuth.setCreationTime(new Date()); userAuth.setCreateUid(loginUserId); userAuth.setDelFlag(0); diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbProcedureController.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbProcedureController.java index 4daba8a0..55859268 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbProcedureController.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbProcedureController.java @@ -10,6 +10,8 @@ import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.manage.entity.DbProcLog; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.service.manage.DbProcLogService; import com.zyplayer.doc.db.controller.param.ProcedureListParam; import com.zyplayer.doc.db.framework.consts.DbAuthType; @@ -188,7 +190,7 @@ public class DbProcedureController { */ private void judgeAuth(Long sourceId, String authName, String noAuthInfo) { if (!DocUserUtil.haveAuth(DocAuthConst.DB_DATASOURCE_MANAGE) - && !DocUserUtil.haveCustomAuth(authName, DocAuthConst.DB + sourceId)) { + && !DocUserUtil.haveCustomAuth(authName, DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), sourceId)) { throw new ConfirmException(noAuthInfo); } } diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbSqlExecutorController.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbSqlExecutorController.java index 100b8f8b..e9f67f76 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbSqlExecutorController.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/controller/DbSqlExecutorController.java @@ -10,6 +10,8 @@ import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.manage.entity.DbFavorite; import com.zyplayer.doc.data.repository.manage.entity.DbHistory; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.service.manage.DbFavoriteService; import com.zyplayer.doc.data.service.manage.DbHistoryService; import com.zyplayer.doc.db.framework.consts.DbAuthType; @@ -60,8 +62,8 @@ public class DbSqlExecutorController { return DocDbResponseJson.warn("执行的SQL不能为空"); } boolean manageAuth = DocUserUtil.haveAuth(DocAuthConst.DB_DATASOURCE_MANAGE); - boolean select = DocUserUtil.haveCustomAuth(DbAuthType.SELECT.getName(), DocAuthConst.DB + sourceId); - boolean update = DocUserUtil.haveCustomAuth(DbAuthType.UPDATE.getName(), DocAuthConst.DB + sourceId); + boolean select = DocUserUtil.haveCustomAuth(DbAuthType.SELECT.getName(), DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), sourceId); + boolean update = DocUserUtil.haveCustomAuth(DbAuthType.UPDATE.getName(), DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), sourceId); if (!manageAuth && !select && !update) { return DocDbResponseJson.warn("没有该数据源的执行权限"); } diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/transfer/TransferDataServer.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/transfer/TransferDataServer.java index 674fe34a..c0737265 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/transfer/TransferDataServer.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/db/transfer/TransferDataServer.java @@ -8,6 +8,8 @@ import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.manage.entity.DbTransferTask; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.service.manage.DbTransferTaskService; import com.zyplayer.doc.data.utils.ThreadPoolUtil; import com.zyplayer.doc.db.framework.consts.DbAuthType; @@ -90,12 +92,12 @@ public class TransferDataServer { throw new ConfirmException("任务正在执行中,请勿重复执行"); } boolean manageAuth = DocUserUtil.haveAuth(DocAuthConst.DB_DATASOURCE_MANAGE); - boolean querySelect = DocUserUtil.haveCustomAuth(DbAuthType.SELECT.getName(), DocAuthConst.DB + transferTask.getQueryDatasourceId()); - boolean queryUpdate = DocUserUtil.haveCustomAuth(DbAuthType.UPDATE.getName(), DocAuthConst.DB + transferTask.getQueryDatasourceId()); + boolean querySelect = DocUserUtil.haveCustomAuth(DbAuthType.SELECT.getName(), DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), transferTask.getQueryDatasourceId()); + boolean queryUpdate = DocUserUtil.haveCustomAuth(DbAuthType.UPDATE.getName(), DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), transferTask.getQueryDatasourceId()); if (!manageAuth && !querySelect && !queryUpdate) { throw new ConfirmException("没有查询数据源的查询权限,创建任务失败"); } - boolean storageUpdate = DocUserUtil.haveCustomAuth(DbAuthType.UPDATE.getName(), DocAuthConst.DB + transferTask.getStorageDatasourceId()); + boolean storageUpdate = DocUserUtil.haveCustomAuth(DbAuthType.UPDATE.getName(), DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), transferTask.getStorageDatasourceId()); if (!manageAuth && !storageUpdate) { throw new ConfirmException("没有目标数据源的写入权限,创建任务失败"); } diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/common/ExecuteAuthService.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/common/ExecuteAuthService.java index 99c87f39..d1e6ea7c 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/common/ExecuteAuthService.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/common/ExecuteAuthService.java @@ -3,6 +3,8 @@ package com.zyplayer.doc.db.service.common; import com.zyplayer.doc.core.exception.ConfirmException; import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.db.framework.consts.DbAuthType; import com.zyplayer.doc.db.framework.db.mapper.base.ExecuteType; import org.springframework.stereotype.Service; @@ -24,8 +26,8 @@ public class ExecuteAuthService { */ public ExecuteType getExecuteType(Long sourceId) { boolean manageAuth = DocUserUtil.haveAuth(DocAuthConst.DB_DATASOURCE_MANAGE); - boolean select = DocUserUtil.haveCustomAuth(DbAuthType.SELECT.getName(), DocAuthConst.DB + sourceId); - boolean update = DocUserUtil.haveCustomAuth(DbAuthType.UPDATE.getName(), DocAuthConst.DB + sourceId); + boolean select = DocUserUtil.haveCustomAuth(DbAuthType.SELECT.getName(), DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), sourceId); + boolean update = DocUserUtil.haveCustomAuth(DbAuthType.UPDATE.getName(), DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), sourceId); if (!manageAuth && !select && !update) { throw new ConfirmException("没有该数据源的执行权限"); } diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/database/DbBaseService.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/database/DbBaseService.java index 69bc5901..4968c4cb 100644 --- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/database/DbBaseService.java +++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/service/database/DbBaseService.java @@ -5,6 +5,8 @@ import com.alibaba.fastjson.JSONObject; import com.zyplayer.doc.core.exception.ConfirmException; import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.db.controller.download.FormatDownloadConst; import com.zyplayer.doc.db.controller.param.DataViewParam; import com.zyplayer.doc.db.controller.param.ProcedureListParam; @@ -72,7 +74,7 @@ public abstract class DbBaseService { */ public void judgeAuth(Long sourceId, String authName, String noAuthInfo) { if (!DocUserUtil.haveAuth(DocAuthConst.DB_DATASOURCE_MANAGE) - && !DocUserUtil.haveCustomAuth(authName, DocAuthConst.DB + sourceId)) { + && !DocUserUtil.haveCustomAuth(authName, DocSysType.DB.getType(), DocSysModuleType.Db.DATASOURCE.getType(), sourceId)) { throw new ConfirmException(noAuthInfo); } } diff --git a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/web/LoginController.java b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/web/LoginController.java index 8365524a..0c005ee0 100644 --- a/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/web/LoginController.java +++ b/zyplayer-doc-manage/src/main/java/com/zyplayer/doc/manage/web/LoginController.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserUtil; +import com.zyplayer.doc.data.config.security.UserAuthVo; +import com.zyplayer.doc.data.repository.manage.entity.UserAuth; import com.zyplayer.doc.data.repository.manage.entity.UserInfo; import com.zyplayer.doc.data.service.manage.UserAuthService; import com.zyplayer.doc.data.service.manage.UserInfoService; @@ -79,7 +81,7 @@ public class LoginController { return DocResponseJson.warn("用户名或密码错误"); } } - Set userAuthSet = userAuthService.getUserAuthSet(userInfo.getId()); + List userAuthSet = userAuthService.getUserAuthSet(userInfo.getId()); String accessToken = IdUtil.simpleUUID(); DocUserDetails userDetails = new DocUserDetails(userInfo.getId(), userInfo.getUserName(), userInfo.getPassword(), true, userAuthSet); DocUserUtil.setCurrentUser(accessToken, userDetails); diff --git a/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.0.sql b/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.0.sql index fa552354..f47e27dd 100644 --- a/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.0.sql +++ b/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.1.1.0.sql @@ -152,7 +152,9 @@ CREATE TABLE `user_auth` ( `del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0=未删除 1=已删除', `creation_time` datetime NULL DEFAULT NULL COMMENT '创建时间', `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `auth_custom_suffix` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '自定义权限结尾', + `sys_type` int NULL COMMENT '系统类型,DocSysType', + `sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType', + `sys_module_id` bigint(20) NULL COMMENT '系统模块ID', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 73 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户权限表' ROW_FORMAT = Compact; diff --git a/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.sql b/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.sql index 54697167..bc1540c6 100644 --- a/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.sql +++ b/zyplayer-doc-manage/src/main/resources/sql/全量建表语句.sql @@ -155,7 +155,9 @@ CREATE TABLE `user_auth` ( `del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0=未删除 1=已删除', `creation_time` datetime NULL DEFAULT NULL COMMENT '创建时间', `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间', - `auth_custom_suffix` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '自定义权限结尾', + `sys_type` int NULL COMMENT '系统类型,DocSysType', + `sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType', + `sys_module_id` bigint(20) NULL COMMENT '系统模块ID', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 73 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户权限表' ROW_FORMAT = Compact; diff --git a/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.0.sql b/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.0.sql index ce8b0c9a..840fabd6 100644 --- a/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.0.sql +++ b/zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.0.sql @@ -58,5 +58,11 @@ CREATE TABLE `api_global_param` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录'; - +-- 权限表优化 +ALTER TABLE `user_auth` ADD COLUMN `sys_type` int NULL COMMENT '系统类型,DocSysType', +ADD COLUMN `sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType', +ADD COLUMN `sys_module_id` bigint(20) NULL COMMENT '系统模块ID'; +-- 历史数据处理 +update user_auth set sys_type=3, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'DB_', '') where auth_custom_suffix like 'DB_%'; +update user_auth set sys_type=2, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'WIKI_', '') where auth_custom_suffix like 'WIKI_%'; diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageAuthController.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageAuthController.java index 6c893098..6c9d309c 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageAuthController.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageAuthController.java @@ -7,10 +7,12 @@ import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserUtil; +import com.zyplayer.doc.data.config.security.UserAuthVo; import com.zyplayer.doc.data.repository.manage.entity.*; import com.zyplayer.doc.data.repository.manage.mapper.UserGroupAuthMapper; import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserMsgType; import com.zyplayer.doc.data.service.manage.*; import com.zyplayer.doc.wiki.controller.vo.UserPageAuthVo; @@ -68,7 +70,7 @@ public class WikiPageAuthController { if (canConfigAuth != null) { return DocResponseJson.warn(canConfigAuth); } - List authNameList = Stream.of(WikiAuthType.values()).map(WikiAuthType::getName).collect(Collectors.toList()); + List authNameList = Stream.of(WikiAuthType.values()).map(WikiAuthType::getCode).collect(Collectors.toList()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.in("auth_name", authNameList); Collection authInfoList = authInfoService.list(queryWrapper); @@ -84,27 +86,27 @@ public class WikiPageAuthController { for (UserPageAuthVo authVo : authVoList) { List userAuthList = new LinkedList<>(); if (Objects.equals(authVo.getEditPage(), 1)) { - Long authId = authInfoMap.get(WikiAuthType.EDIT_PAGE.getName()); + Long authId = authInfoMap.get(WikiAuthType.EDIT_PAGE.getCode()); UserAuth userAuth = this.createUserAuth(pageId, currentUser.getUserId(), authVo.getUserId(), authId); userAuthList.add(userAuth); } if (Objects.equals(authVo.getDeletePage(), 1)) { - Long authId = authInfoMap.get(WikiAuthType.DELETE_PAGE.getName()); + Long authId = authInfoMap.get(WikiAuthType.DELETE_PAGE.getCode()); UserAuth userAuth = this.createUserAuth(pageId, currentUser.getUserId(), authVo.getUserId(), authId); userAuthList.add(userAuth); } if (Objects.equals(authVo.getPageFileUpload(), 1)) { - Long authId = authInfoMap.get(WikiAuthType.PAGE_FILE_UPLOAD.getName()); + Long authId = authInfoMap.get(WikiAuthType.PAGE_FILE_UPLOAD.getCode()); UserAuth userAuth = this.createUserAuth(pageId, currentUser.getUserId(), authVo.getUserId(), authId); userAuthList.add(userAuth); } if (Objects.equals(authVo.getPageFileDelete(), 1)) { - Long authId = authInfoMap.get(WikiAuthType.PAGE_FILE_DELETE.getName()); + Long authId = authInfoMap.get(WikiAuthType.PAGE_FILE_DELETE.getCode()); UserAuth userAuth = this.createUserAuth(pageId, currentUser.getUserId(), authVo.getUserId(), authId); userAuthList.add(userAuth); } if (Objects.equals(authVo.getPageAuthManage(), 1)) { - Long authId = authInfoMap.get(WikiAuthType.PAGE_AUTH_MANAGE.getName()); + Long authId = authInfoMap.get(WikiAuthType.PAGE_AUTH_MANAGE.getCode()); UserAuth userAuth = this.createUserAuth(pageId, currentUser.getUserId(), authVo.getUserId(), authId); userAuthList.add(userAuth); } @@ -115,13 +117,13 @@ public class WikiPageAuthController { userAuthService.saveBatch(userAuthList); // 给相关人发送消息 UserInfo userInfo = userInfoService.getById(authVo.getUserId()); - UserMessage userMessage = userMessageService.createUserMessage(currentUser, pageId, wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_AUTH); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, pageId, wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_AUTH); userMessage.setAffectUserId(userInfo.getId()); userMessage.setAffectUserName(userInfo.getUserName()); userMessageService.addWikiMessage(userMessage); // 刷新用户权限 - Set userAuthSet = userAuthService.getUserAuthSet(authVo.getUserId()); - DocUserUtil.setUserAuth(authVo.getUserId(), userAuthSet); + List userAuthListNew = userAuthService.getUserAuthSet(authVo.getUserId()); + DocUserUtil.setUserAuth(authVo.getUserId(), userAuthListNew); } return DocResponseJson.ok(); } @@ -166,13 +168,15 @@ public class WikiPageAuthController { return DocResponseJson.ok(authVoList); } - private Integer haveAuth(Set authNameSet, WikiAuthType wikiAuthType){ - return authNameSet.contains(wikiAuthType.getName()) ? 1 : 0; + private Integer haveAuth(Set authNameSet, WikiAuthType wikiAuthType) { + return authNameSet.contains(wikiAuthType.getCode()) ? 1 : 0; } - private UserAuth createUserAuth(Long pageId, Long loginUserId, Long userId, Long authId){ + private UserAuth createUserAuth(Long pageId, Long loginUserId, Long userId, Long authId) { UserAuth userAuth = new UserAuth(); - userAuth.setAuthCustomSuffix(DocAuthConst.WIKI + pageId); + userAuth.setSysType(DocSysType.WIKI.getType()); + userAuth.setSysModuleType(DocSysModuleType.Wiki.PAGE.getType()); + userAuth.setSysModuleId(pageId); userAuth.setCreationTime(new Date()); userAuth.setCreateUid(loginUserId); userAuth.setDelFlag(0); diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageCommentController.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageCommentController.java index 7f011f43..ff164e97 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageCommentController.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageCommentController.java @@ -10,7 +10,7 @@ import com.zyplayer.doc.data.repository.manage.entity.UserMessage; import com.zyplayer.doc.data.repository.manage.entity.WikiPage; import com.zyplayer.doc.data.repository.manage.entity.WikiPageComment; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserMsgType; import com.zyplayer.doc.data.service.manage.UserMessageService; import com.zyplayer.doc.data.service.manage.WikiPageCommentService; @@ -98,7 +98,7 @@ public class WikiPageCommentController { pageComment.setDelFlag(1); wikiPageCommentService.updateById(pageComment); // 给相关人发送消息 - UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_COMMENT_DEL); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_COMMENT_DEL); userMessage.setAffectUserId(wikiPageSel.getCreateUserId()); userMessage.setAffectUserName(wikiPageSel.getCreateUserName()); userMessageService.addWikiMessage(userMessage); @@ -144,7 +144,7 @@ public class WikiPageCommentController { wikiPageCommentService.save(pageComment); } // 给相关人发送消息 - UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_COMMENT); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_COMMENT); userMessage.setAffectUserId(wikiPageSel.getCreateUserId()); userMessage.setAffectUserName(wikiPageSel.getCreateUserName()); userMessageService.addWikiMessage(userMessage); diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageController.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageController.java index 773a2a95..4da6853c 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageController.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageController.java @@ -15,7 +15,7 @@ import com.zyplayer.doc.data.repository.manage.mapper.WikiPageContentMapper; import com.zyplayer.doc.data.repository.manage.mapper.WikiPageMapper; import com.zyplayer.doc.data.repository.manage.param.SearchByEsParam; import com.zyplayer.doc.data.repository.manage.vo.SpaceNewsVo; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserMsgType; import com.zyplayer.doc.data.service.manage.*; import com.zyplayer.doc.data.utils.CachePrefix; @@ -242,7 +242,7 @@ public class WikiPageController { wrapper.eq("page_id", pageId); wikiPageContentService.update(pageContent, wrapper); // 给相关人发送消息 - UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_UPDATE); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_UPDATE); userMessageService.addWikiMessage(userMessage); } else { WikiSpace wikiSpaceSel = wikiSpaceService.getById(wikiPage.getSpaceId()); @@ -278,7 +278,7 @@ public class WikiPageController { pageContent.setCreateUserName(currentUser.getUsername()); wikiPageContentService.save(pageContent); // 给相关人发送消息 - UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPage.getId(), wikiPage.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_CREATE); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPage.getId(), wikiPage.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_CREATE); userMessageService.addWikiMessage(userMessage); } try { diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageFileController.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageFileController.java index 09340b08..e0a8bddd 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageFileController.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageFileController.java @@ -2,7 +2,6 @@ package com.zyplayer.doc.wiki.controller; import cn.hutool.core.date.DateTime; import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.RandomUtil; import com.zyplayer.doc.core.annotation.AuthMan; import com.zyplayer.doc.core.json.DocResponseJson; import com.zyplayer.doc.core.json.ResponseJson; @@ -12,7 +11,7 @@ import com.zyplayer.doc.data.repository.manage.entity.UserMessage; import com.zyplayer.doc.data.repository.manage.entity.WikiPage; import com.zyplayer.doc.data.repository.manage.entity.WikiPageFile; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserMsgType; import com.zyplayer.doc.data.service.manage.UserMessageService; import com.zyplayer.doc.data.service.manage.WikiPageFileService; @@ -94,7 +93,7 @@ public class WikiPageFileController { wikiPageFile.setUpdateTime(new Date()); wikiPageFileService.updateById(wikiPageFile); // 给相关人发送消息 - UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_FILE_DEL); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_FILE_DEL); userMessage.setAffectUserId(wikiPageSel.getCreateUserId()); userMessage.setAffectUserName(wikiPageSel.getCreateUserName()); userMessageService.addWikiMessage(userMessage); @@ -134,7 +133,7 @@ public class WikiPageFileController { return docResponseJson; } // 给相关人发送消息 - UserMessage userMessage = userMessageService.createUserMessage(currentUser, pageId, wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_UPLOAD); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, pageId, wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_UPLOAD); userMessage.setAffectUserId(wikiPageSel.getCreateUserId()); userMessage.setAffectUserName(wikiPageSel.getCreateUserName()); userMessageService.addWikiMessage(userMessage); diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageHistoryController.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageHistoryController.java index efc58398..a5207306 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageHistoryController.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageHistoryController.java @@ -9,8 +9,6 @@ import com.zyplayer.doc.core.json.ResponseJson; import com.zyplayer.doc.data.config.security.DocUserDetails; import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.manage.entity.*; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; -import com.zyplayer.doc.data.repository.support.consts.UserMsgType; import com.zyplayer.doc.data.service.manage.*; import com.zyplayer.doc.wiki.framework.consts.SpaceType; import com.zyplayer.doc.wiki.service.git.GitService; diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageZanController.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageZanController.java index 79fb1810..0900d01c 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageZanController.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiPageZanController.java @@ -10,7 +10,7 @@ import com.zyplayer.doc.data.repository.manage.entity.UserMessage; import com.zyplayer.doc.data.repository.manage.entity.WikiPage; import com.zyplayer.doc.data.repository.manage.entity.WikiPageZan; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserMsgType; import com.zyplayer.doc.data.service.manage.UserMessageService; import com.zyplayer.doc.data.service.manage.WikiPageService; @@ -86,7 +86,7 @@ public class WikiPageZanController { } wikiPageZanService.zanPage(wikiPageZan); // 给相关人发送消息 - UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), UserMsgSysType.WIKI, UserMsgType.WIKI_PAGE_ZAN); + UserMessage userMessage = userMessageService.createUserMessage(currentUser, wikiPageSel.getId(), wikiPageSel.getName(), DocSysType.WIKI, UserMsgType.WIKI_PAGE_ZAN); if (!Objects.equals(wikiPageZan.getYn(), 1)) { userMessage.setMsgType(UserMsgType.WIKI_PAGE_ZAN_CANCEL.getType()); } diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiSpaceController.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiSpaceController.java index 8cae32ba..2074068d 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiSpaceController.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/controller/WikiSpaceController.java @@ -13,7 +13,7 @@ import com.zyplayer.doc.data.repository.manage.entity.UserGroupAuth; import com.zyplayer.doc.data.repository.manage.entity.UserSetting; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; import com.zyplayer.doc.data.repository.manage.entity.WikiSpaceFavorite; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.data.repository.support.consts.UserSettingConst; import com.zyplayer.doc.data.service.manage.UserGroupAuthService; import com.zyplayer.doc.data.service.manage.UserSettingService; @@ -181,7 +181,7 @@ public class WikiSpaceController { // 先删除页面的所有用户的权限 QueryWrapper updateWrapper = new QueryWrapper<>(); updateWrapper.eq("data_id", spaceId); - updateWrapper.eq("project_type", UserMsgSysType.WIKI.getType()); + updateWrapper.eq("project_type", DocSysType.WIKI.getType()); userGroupAuthService.remove(updateWrapper); // 在创建权限 List authVoList = JSON.parseArray(authList, UserSpaceAuthVo.class); @@ -210,7 +210,7 @@ public class WikiSpaceController { } QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("data_id", spaceId); - queryWrapper.eq("project_type", UserMsgSysType.WIKI.getType()); + queryWrapper.eq("project_type", DocSysType.WIKI.getType()); List authList = userGroupAuthService.list(queryWrapper); if (CollectionUtils.isEmpty(authList)) { return DocResponseJson.ok(); @@ -247,7 +247,7 @@ public class WikiSpaceController { userAuth.setCreateTime(new Date()); userAuth.setCreateUserId(currentUser.getUserId()); userAuth.setCreateUserName(currentUser.getUsername()); - userAuth.setProjectType(UserMsgSysType.WIKI.getType()); + userAuth.setProjectType(DocSysType.WIKI.getType()); userAuth.setDelFlag(0); userAuthList.add(userAuth); } diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/framework/consts/WikiAuthType.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/framework/consts/WikiAuthType.java index 7c9f2902..a127cb3c 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/framework/consts/WikiAuthType.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/framework/consts/WikiAuthType.java @@ -18,11 +18,11 @@ public enum WikiAuthType { PAGE_AUTH_MANAGE(7, "WIKI_PAGE_AUTH_MANAGE_"), ; private Integer type; - private String name; + private String code; - WikiAuthType(Integer type, String name) { + WikiAuthType(Integer type, String code) { this.type = type; - this.name = name; + this.code = code; } public Integer getType() { @@ -33,11 +33,11 @@ public enum WikiAuthType { this.type = type; } - public String getName() { - return name; + public String getCode() { + return code; } - public void setName(String name) { - this.name = name; + public void setCode(String code) { + this.code = code; } } diff --git a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/service/common/WikiPageAuthService.java b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/service/common/WikiPageAuthService.java index 5478838c..30e8b74a 100644 --- a/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/service/common/WikiPageAuthService.java +++ b/zyplayer-doc-wiki/src/main/java/com/zyplayer/doc/wiki/service/common/WikiPageAuthService.java @@ -3,8 +3,8 @@ package com.zyplayer.doc.wiki.service.common; import com.zyplayer.doc.data.config.security.DocUserUtil; import com.zyplayer.doc.data.repository.manage.entity.WikiSpace; import com.zyplayer.doc.data.repository.manage.mapper.UserGroupAuthMapper; -import com.zyplayer.doc.data.repository.support.consts.DocAuthConst; -import com.zyplayer.doc.data.repository.support.consts.UserMsgSysType; +import com.zyplayer.doc.data.repository.support.consts.DocSysModuleType; +import com.zyplayer.doc.data.repository.support.consts.DocSysType; import com.zyplayer.doc.wiki.framework.consts.SpaceType; import com.zyplayer.doc.wiki.framework.consts.WikiAuthType; import org.springframework.stereotype.Service; @@ -43,10 +43,10 @@ public class WikiPageAuthService { } // 空间不是自己的,也没有权限 if (SpaceType.isOthersPersonal(wikiSpaceSel.getType(), currentUserId, wikiSpaceSel.getCreateUserId())) { - boolean pageAuth = DocUserUtil.haveCustomAuth(WikiAuthType.EDIT_PAGE.getName(), DocAuthConst.WIKI + pageId); + boolean pageAuth = DocUserUtil.haveCustomAuth(WikiAuthType.EDIT_PAGE.getCode(), DocSysType.WIKI.getType(), DocSysModuleType.Wiki.PAGE.getType(), pageId); if (!pageAuth) { // 在空间上直接授权了分组的权限,在这个分组里就具有权限 - Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), UserMsgSysType.WIKI.getType(), WikiAuthType.EDIT_PAGE.getType(), currentUserId); + Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), DocSysType.WIKI.getType(), WikiAuthType.EDIT_PAGE.getType(), currentUserId); if (authId == null) { return "您没有修改该文章的权限!"; } @@ -68,9 +68,9 @@ public class WikiPageAuthService { return "只有个人空间才可以编辑权限"; } if (!Objects.equals(currentUserId, wikiSpaceSel.getCreateUserId())) { - if (!DocUserUtil.haveCustomAuth(WikiAuthType.PAGE_AUTH_MANAGE.getName(), DocAuthConst.WIKI + pageId)) { + if (!DocUserUtil.haveCustomAuth(WikiAuthType.PAGE_AUTH_MANAGE.getCode(), DocSysType.WIKI.getType(), DocSysModuleType.Wiki.PAGE.getType(), pageId)) { // 在空间上直接授权了分组的权限,在这个分组里就具有权限 - Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), UserMsgSysType.WIKI.getType(), WikiAuthType.PAGE_AUTH_MANAGE.getType(), currentUserId); + Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), DocSysType.WIKI.getType(), WikiAuthType.PAGE_AUTH_MANAGE.getType(), currentUserId); if (authId == null) { return "您不是创建人或没有权限"; } @@ -94,10 +94,10 @@ public class WikiPageAuthService { } // 空间不是自己的,也没有权限 if (SpaceType.isOthersPersonal(wikiSpaceSel.getType(), currentUserId, wikiSpaceSel.getCreateUserId())) { - boolean pageAuth = DocUserUtil.haveCustomAuth(WikiAuthType.PAGE_FILE_UPLOAD.getName(), DocAuthConst.WIKI + pageId); + boolean pageAuth = DocUserUtil.haveCustomAuth(WikiAuthType.PAGE_FILE_UPLOAD.getCode(), DocSysType.WIKI.getType(), DocSysModuleType.Wiki.PAGE.getType(), pageId); if (!pageAuth) { // 在空间上直接授权了分组的权限,在这个分组里就具有权限 - Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), UserMsgSysType.WIKI.getType(), WikiAuthType.PAGE_FILE_UPLOAD.getType(), currentUserId); + Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), DocSysType.WIKI.getType(), WikiAuthType.PAGE_FILE_UPLOAD.getType(), currentUserId); if (authId == null) { return "您没有上传该文章附件的权限!"; } @@ -121,10 +121,10 @@ public class WikiPageAuthService { } // 空间不是自己的,也没有权限 if (SpaceType.isOthersPersonal(wikiSpaceSel.getType(), currentUserId, wikiSpaceSel.getCreateUserId())) { - boolean pageAuth = DocUserUtil.haveCustomAuth(WikiAuthType.PAGE_FILE_DELETE.getName(), DocAuthConst.WIKI + pageId); + boolean pageAuth = DocUserUtil.haveCustomAuth(WikiAuthType.PAGE_FILE_DELETE.getCode(), DocSysType.WIKI.getType(), DocSysModuleType.Wiki.PAGE.getType(), pageId); if (!pageAuth) { // 在空间上直接授权了分组的权限,在这个分组里就具有权限 - Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), UserMsgSysType.WIKI.getType(), WikiAuthType.PAGE_FILE_DELETE.getType(), currentUserId); + Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), DocSysType.WIKI.getType(), WikiAuthType.PAGE_FILE_DELETE.getType(), currentUserId); if (authId == null) { return "您没有删除该文章附件的权限!"; } @@ -152,10 +152,10 @@ public class WikiPageAuthService { } // 空间不是自己的,也没有权限 if (SpaceType.isOthersPersonal(wikiSpaceSel.getType(), currentUserId, wikiSpaceSel.getCreateUserId())) { - boolean pageAuth = DocUserUtil.haveCustomAuth(WikiAuthType.DELETE_PAGE.getName(), DocAuthConst.WIKI + pageId); + boolean pageAuth = DocUserUtil.haveCustomAuth(WikiAuthType.DELETE_PAGE.getCode(), DocSysType.WIKI.getType(), DocSysModuleType.Wiki.PAGE.getType(), pageId); if (!pageAuth) { // 在空间上直接授权了分组的权限,在这个分组里就具有权限 - Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), UserMsgSysType.WIKI.getType(), WikiAuthType.DELETE_PAGE.getType(), currentUserId); + Long authId = userGroupAuthMapper.haveAuth(wikiSpaceSel.getId(), DocSysType.WIKI.getType(), WikiAuthType.DELETE_PAGE.getType(), currentUserId); if (authId == null) { return "您没有删除该文章的权限!"; }