refactor: 把登录逻辑移到admin 因为不同项目的登录 可能是不一样的
This commit is contained in:
@@ -18,7 +18,7 @@ import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.admin.customize.service.login.dto.CaptchaDTO;
|
||||
import com.agileboot.admin.customize.service.login.dto.ConfigDTO;
|
||||
import com.agileboot.admin.customize.service.login.command.LoginCommand;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.infrastructure.annotations.ratelimit.RateLimitKey;
|
||||
import com.agileboot.admin.customize.service.login.LoginService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -100,7 +100,7 @@ public class LoginController {
|
||||
public ResponseDTO<TokenDTO> login(@RequestBody LoginCommand loginCommand) {
|
||||
// 生成令牌
|
||||
String token = loginService.login(loginCommand);
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
CurrentLoginUserDTO currentUserDTO = userApplicationService.getLoginUserInfo(loginUser);
|
||||
|
||||
return ResponseDTO.ok(new TokenDTO(token, currentUserDTO));
|
||||
@@ -114,7 +114,7 @@ public class LoginController {
|
||||
@Operation(summary = "获取当前登录用户信息")
|
||||
@GetMapping("/getLoginUserInfo")
|
||||
public ResponseDTO<CurrentLoginUserDTO> getLoginUserInfo() {
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
|
||||
CurrentLoginUserDTO currentUserDTO = userApplicationService.getLoginUserInfo(loginUser);
|
||||
|
||||
@@ -129,7 +129,7 @@ public class LoginController {
|
||||
@Operation(summary = "获取用户对应的菜单路由", description = "用于动态生成路由")
|
||||
@GetMapping("/getRouters")
|
||||
public ResponseDTO<List<RouterDTO>> getRouters() {
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
List<RouterDTO> routerTree = menuApplicationService.getRouterTree(loginUser);
|
||||
return ResponseDTO.ok(routerTree);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.agileboot.domain.system.menu.dto.MenuDetailDTO;
|
||||
import com.agileboot.domain.system.menu.query.MenuQuery;
|
||||
import com.agileboot.infrastructure.annotations.accessLog.AccessLog;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.common.enums.BusinessTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -74,7 +74,7 @@ public class SysMenuController extends BaseController {
|
||||
@Operation(summary = "菜单列表(树级)", description = "菜单树级下拉框")
|
||||
@GetMapping("/dropdown")
|
||||
public ResponseDTO<List<Tree<Long>>> dropdownList() {
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
List<Tree<Long>> dropdownList = menuApplicationService.getDropdownList(loginUser);
|
||||
return ResponseDTO.ok(dropdownList);
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ import com.agileboot.domain.system.user.command.UpdateUserPasswordCommand;
|
||||
import com.agileboot.domain.system.user.dto.UserProfileDTO;
|
||||
import com.agileboot.infrastructure.annotations.accessLog.AccessLog;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.common.enums.BusinessTypeEnum;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@@ -49,7 +49,7 @@ public class SysProfileController extends BaseController {
|
||||
@Operation(summary = "获取个人信息")
|
||||
@GetMapping
|
||||
public ResponseDTO<UserProfileDTO> profile() {
|
||||
LoginUser user = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser user = AuthenticationUtils.getLoginUser();
|
||||
UserProfileDTO userProfile = userApplicationService.getUserProfile(user.getUserId());
|
||||
return ResponseDTO.ok(userProfile);
|
||||
}
|
||||
@@ -61,7 +61,7 @@ public class SysProfileController extends BaseController {
|
||||
@AccessLog(title = "个人信息", businessType = BusinessTypeEnum.MODIFY)
|
||||
@PutMapping
|
||||
public ResponseDTO<Void> updateProfile(@RequestBody UpdateProfileCommand command) {
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
command.setUserId(loginUser.getUserId());
|
||||
userApplicationService.updateUserProfile(command);
|
||||
return ResponseDTO.ok();
|
||||
@@ -74,7 +74,7 @@ public class SysProfileController extends BaseController {
|
||||
@AccessLog(title = "个人信息", businessType = BusinessTypeEnum.MODIFY)
|
||||
@PutMapping("/password")
|
||||
public ResponseDTO<Void> updatePassword(@RequestBody UpdateUserPasswordCommand command) {
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
command.setUserId(loginUser.getUserId());
|
||||
userApplicationService.updatePasswordBySelf(loginUser, command);
|
||||
return ResponseDTO.ok();
|
||||
@@ -90,7 +90,7 @@ public class SysProfileController extends BaseController {
|
||||
if (file.isEmpty()) {
|
||||
throw new ApiException(ErrorCode.Business.USER_UPLOAD_FILE_FAILED);
|
||||
}
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
String avatarUrl = FileUploadUtils.upload(UploadSubDir.AVATAR_PATH, file);
|
||||
|
||||
userApplicationService.updateUserAvatar(new UpdateUserAvatarCommand(loginUser.getUserId(), avatarUrl));
|
||||
|
||||
@@ -16,7 +16,7 @@ import com.agileboot.domain.system.user.dto.UserDetailDTO;
|
||||
import com.agileboot.domain.system.user.query.SearchUserQuery;
|
||||
import com.agileboot.infrastructure.annotations.accessLog.AccessLog;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.common.enums.BusinessTypeEnum;
|
||||
import com.agileboot.orm.system.result.SearchUserDO;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
@@ -136,7 +136,7 @@ public class SysUserController extends BaseController {
|
||||
@DeleteMapping("/{userIds}")
|
||||
public ResponseDTO<Void> remove(@PathVariable List<Long> userIds) {
|
||||
BulkOperationCommand<Long> bulkDeleteCommand = new BulkOperationCommand<>(userIds);
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
userApplicationService.deleteUsers(loginUser, bulkDeleteCommand);
|
||||
return ResponseDTO.ok();
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.agileboot.admin.customize.config;
|
||||
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.service.TokenService;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.login.TokenService;
|
||||
import java.io.IOException;
|
||||
import javax.servlet.FilterChain;
|
||||
import javax.servlet.ServletException;
|
||||
@@ -33,7 +33,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
|
||||
@Override
|
||||
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain)
|
||||
throws ServletException, IOException {
|
||||
LoginUser loginUser = tokenService.getLoginUser(request);
|
||||
WebLoginUser loginUser = tokenService.getLoginUser(request);
|
||||
if (loginUser != null && AuthenticationUtils.getAuthentication() == null) {
|
||||
tokenService.refreshToken(loginUser);
|
||||
// 如果没有将当前登录用户放入到上下文中的话,会认定用户未授权,返回用户未登陆的错误
|
||||
@@ -45,7 +45,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
|
||||
}
|
||||
|
||||
|
||||
private void putCurrentLoginUserIntoContext(HttpServletRequest request, LoginUser loginUser) {
|
||||
private void putCurrentLoginUserIntoContext(HttpServletRequest request, WebLoginUser loginUser) {
|
||||
UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(loginUser,
|
||||
null, loginUser.getAuthorities());
|
||||
authToken.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
|
||||
|
||||
@@ -9,9 +9,8 @@ import com.agileboot.common.utils.ServletHolderUtil;
|
||||
import com.agileboot.infrastructure.cache.redis.RedisCacheService;
|
||||
import com.agileboot.infrastructure.thread.AsyncTaskFactory;
|
||||
import com.agileboot.infrastructure.thread.ThreadPoolManager;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.service.TokenService;
|
||||
import com.agileboot.infrastructure.web.service.UserDetailsServiceImpl;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.login.TokenService;
|
||||
import com.agileboot.orm.common.enums.LoginStatusEnum;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@@ -92,7 +91,7 @@ public class SecurityConfig {
|
||||
@Bean
|
||||
public LogoutSuccessHandler logOutSuccessHandler() {
|
||||
return (request, response, authentication) -> {
|
||||
LoginUser loginUser = tokenService.getLoginUser(request);
|
||||
WebLoginUser loginUser = tokenService.getLoginUser(request);
|
||||
if (loginUser != null) {
|
||||
String userName = loginUser.getUsername();
|
||||
// 删除用户缓存记录
|
||||
|
||||
@@ -25,8 +25,7 @@ import com.agileboot.infrastructure.thread.ThreadPoolManager;
|
||||
import com.agileboot.admin.customize.service.login.dto.CaptchaDTO;
|
||||
import com.agileboot.admin.customize.service.login.dto.ConfigDTO;
|
||||
import com.agileboot.admin.customize.service.login.command.LoginCommand;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.service.TokenService;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.common.enums.ConfigKeyEnum;
|
||||
import com.agileboot.orm.common.enums.LoginStatusEnum;
|
||||
import com.agileboot.orm.system.entity.SysUserEntity;
|
||||
@@ -105,7 +104,7 @@ public class LoginService {
|
||||
// 把当前登录用户 放入上下文中
|
||||
SecurityContextHolder.getContext().setAuthentication(authentication);
|
||||
// 这里获取的loginUser是UserDetailsServiceImpl#loadUserByUsername方法返回的LoginUser
|
||||
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
|
||||
WebLoginUser loginUser = (WebLoginUser) authentication.getPrincipal();
|
||||
recordLoginInfo(loginUser);
|
||||
// 生成token
|
||||
return tokenService.createTokenAndPutUserInCache(loginUser);
|
||||
@@ -203,7 +202,7 @@ public class LoginService {
|
||||
* 记录登录信息
|
||||
* @param loginUser 登录用户
|
||||
*/
|
||||
public void recordLoginInfo(LoginUser loginUser) {
|
||||
public void recordLoginInfo(WebLoginUser loginUser) {
|
||||
ThreadPoolManager.execute(AsyncTaskFactory.loginInfoTask(loginUser.getUsername(), LoginStatusEnum.LOGIN_SUCCESS,
|
||||
LoginStatusEnum.LOGIN_SUCCESS.description()));
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.agileboot.infrastructure.web.service;
|
||||
package com.agileboot.admin.customize.service.login;
|
||||
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
@@ -7,7 +7,7 @@ import com.agileboot.common.constant.Constants.Token;
|
||||
import com.agileboot.common.exception.ApiException;
|
||||
import com.agileboot.common.exception.error.ErrorCode;
|
||||
import com.agileboot.infrastructure.cache.redis.RedisCacheService;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import io.jsonwebtoken.Claims;
|
||||
import io.jsonwebtoken.Jwts;
|
||||
import io.jsonwebtoken.MalformedJwtException;
|
||||
@@ -63,7 +63,7 @@ public class TokenService {
|
||||
*
|
||||
* @return 用户信息
|
||||
*/
|
||||
public LoginUser getLoginUser(HttpServletRequest request) {
|
||||
public WebLoginUser getLoginUser(HttpServletRequest request) {
|
||||
// 获取请求携带的令牌
|
||||
String token = getTokenFromRequest(request);
|
||||
if (StrUtil.isNotEmpty(token)) {
|
||||
@@ -91,7 +91,7 @@ public class TokenService {
|
||||
* @param loginUser 用户信息
|
||||
* @return 令牌
|
||||
*/
|
||||
public String createTokenAndPutUserInCache(LoginUser loginUser) {
|
||||
public String createTokenAndPutUserInCache(WebLoginUser loginUser) {
|
||||
loginUser.setCachedKey(IdUtil.fastUUID());
|
||||
|
||||
redisCache.loginUserCache.set(loginUser.getCachedKey(), loginUser);
|
||||
@@ -103,7 +103,7 @@ public class TokenService {
|
||||
* 当超过20分钟,自动刷新token
|
||||
* @param loginUser 登录用户
|
||||
*/
|
||||
public void refreshToken(LoginUser loginUser) {
|
||||
public void refreshToken(WebLoginUser loginUser) {
|
||||
long currentTime = System.currentTimeMillis();
|
||||
if (currentTime > loginUser.getAutoRefreshCacheTime()) {
|
||||
loginUser.setAutoRefreshCacheTime(currentTime + TimeUnit.MINUTES.toMillis(autoRefreshTime));
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.agileboot.infrastructure.web.service;
|
||||
package com.agileboot.admin.customize.service.login;
|
||||
|
||||
import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.agileboot.common.exception.ApiException;
|
||||
import com.agileboot.common.exception.error.ErrorCode;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.RoleInfo;
|
||||
import com.agileboot.orm.common.enums.DataScopeEnum;
|
||||
import com.agileboot.orm.common.enums.UserStatusEnum;
|
||||
@@ -35,6 +35,7 @@ import org.springframework.stereotype.Service;
|
||||
/**
|
||||
* 自定义加载用户信息通过用户名
|
||||
* 用于SpringSecurity 登录流程
|
||||
* 没有办法把这个类 放进loginService中 会在SecurityConfig中造成循环依赖
|
||||
* @see com.agileboot.infrastructure.config.SecurityConfig#filterChain(HttpSecurity)
|
||||
* @author valarchie
|
||||
*/
|
||||
@@ -67,20 +68,23 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
||||
log.info("登录用户:{} 已被停用.", username);
|
||||
throw new ApiException(ErrorCode.Business.USER_IS_DISABLE, username);
|
||||
}
|
||||
LoginUser loginUser = new LoginUser(userEntity.getUserId(), userEntity.getIsAdmin(), userEntity.getUsername(),
|
||||
userEntity.getPassword());
|
||||
loginUser.setLoginTime(System.currentTimeMillis());
|
||||
loginUser.setAutoRefreshCacheTime(loginUser.getLoginTime() + TimeUnit.MINUTES.toMillis(tokenService.getAutoRefreshTime()));
|
||||
loginUser.fillUserAgent();
|
||||
|
||||
RoleInfo roleInfo = getRoleInfo(userEntity.getRoleId(), userEntity.getIsAdmin());
|
||||
|
||||
WebLoginUser loginUser = new WebLoginUser(userEntity.getUserId(), userEntity.getIsAdmin(), userEntity.getUsername(),
|
||||
userEntity.getPassword(), roleInfo, userEntity.getDeptId());
|
||||
loginUser.fillLoginInfo();
|
||||
loginUser.setAutoRefreshCacheTime(loginUser.getLoginInfo().getLoginTime()
|
||||
+ TimeUnit.MINUTES.toMillis(tokenService.getAutoRefreshTime()));
|
||||
return loginUser;
|
||||
}
|
||||
|
||||
public RoleInfo getRoleInfo(Long roleId) {
|
||||
public RoleInfo getRoleInfo(Long roleId, boolean isAdmin) {
|
||||
if (roleId == null) {
|
||||
return RoleInfo.EMPTY_ROLE;
|
||||
}
|
||||
|
||||
if (roleId == RoleInfo.ADMIN_ROLE_ID) {
|
||||
if (isAdmin) {
|
||||
LambdaQueryWrapper<SysMenuEntity> menuQuery = Wrappers.lambdaQuery();
|
||||
menuQuery.select(SysMenuEntity::getMenuId);
|
||||
List<SysMenuEntity> allMenus = menuService.list(menuQuery);
|
||||
@@ -115,5 +119,4 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission;
|
||||
package com.agileboot.admin.customize.service.permission;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.checker.AllDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.checker.CustomDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.checker.DefaultDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.checker.DeptTreeDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.checker.OnlySelfDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.checker.SingleDeptDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.AbstractDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.AllDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.CustomDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.DefaultDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.DeptTreeDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.OnlySelfDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.SingleDeptDataPermissionChecker;
|
||||
import com.agileboot.orm.common.enums.DataScopeEnum;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import javax.annotation.PostConstruct;
|
||||
@@ -40,7 +41,7 @@ public class DataPermissionCheckerFactory {
|
||||
}
|
||||
|
||||
|
||||
public static AbstractDataPermissionChecker getChecker(LoginUser loginUser) {
|
||||
public static AbstractDataPermissionChecker getChecker(WebLoginUser loginUser) {
|
||||
if (loginUser == null) {
|
||||
return deptTreeChecker;
|
||||
}
|
||||
@@ -1,11 +1,10 @@
|
||||
package com.agileboot.infrastructure.web.service;
|
||||
package com.agileboot.admin.customize.service.permission;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.agileboot.admin.customize.service.permission.model.AbstractDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.AbstractDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataPermissionCheckerFactory;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.system.entity.SysUserEntity;
|
||||
import com.agileboot.orm.system.service.ISysUserService;
|
||||
import java.util.List;
|
||||
@@ -31,7 +30,7 @@ public class DataPermissionService {
|
||||
* @return 检验结果
|
||||
*/
|
||||
public boolean checkUserId(Long userId) {
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
SysUserEntity targetUser = userService.getById(userId);
|
||||
if (targetUser == null) {
|
||||
return true;
|
||||
@@ -57,12 +56,12 @@ public class DataPermissionService {
|
||||
}
|
||||
|
||||
public boolean checkDeptId(Long deptId) {
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
return checkDataScope(loginUser, deptId, null);
|
||||
}
|
||||
|
||||
|
||||
public boolean checkDataScope(LoginUser loginUser, Long targetDeptId, Long targetUserId) {
|
||||
public boolean checkDataScope(WebLoginUser loginUser, Long targetDeptId, Long targetUserId) {
|
||||
DataCondition dataCondition = DataCondition.builder().targetDeptId(targetDeptId).targetUserId(targetUserId).build();
|
||||
AbstractDataPermissionChecker checker = DataPermissionCheckerFactory.getChecker(loginUser);
|
||||
return checker.check(loginUser, dataCondition);
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.agileboot.infrastructure.web.service;
|
||||
package com.agileboot.admin.customize.service.permission;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.RoleInfo;
|
||||
import java.util.Set;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -26,7 +26,7 @@ public class MenuPermissionService {
|
||||
if (StrUtil.isEmpty(permission)) {
|
||||
return false;
|
||||
}
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
if (loginUser == null || CollUtil.isEmpty(loginUser.getRoleInfo().getMenuPermissions())) {
|
||||
return false;
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission;
|
||||
package com.agileboot.admin.customize.service.permission.model;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -20,6 +20,6 @@ public abstract class AbstractDataPermissionChecker {
|
||||
* @param condition 条件
|
||||
* @return 校验结果
|
||||
*/
|
||||
public abstract boolean check(LoginUser loginUser, DataCondition condition);
|
||||
public abstract boolean check(WebLoginUser loginUser, DataCondition condition);
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission;
|
||||
package com.agileboot.admin.customize.service.permission.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.agileboot.admin.customize.service.permission.model.checker;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.AbstractDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 数据权限测试接口
|
||||
* @author valarchie
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AllDataPermissionChecker extends AbstractDataPermissionChecker {
|
||||
|
||||
private ISysDeptService deptService;
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(WebLoginUser loginUser, DataCondition condition) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
package com.agileboot.admin.customize.service.permission.model.checker;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.AbstractDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.AbstractDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import java.util.Set;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -25,7 +25,7 @@ public class CustomDataPermissionChecker extends AbstractDataPermissionChecker {
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(LoginUser loginUser, DataCondition condition) {
|
||||
public boolean check(WebLoginUser loginUser, DataCondition condition) {
|
||||
if (condition == null || loginUser == null) {
|
||||
return false;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.agileboot.admin.customize.service.permission.model.checker;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.AbstractDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 数据权限测试接口
|
||||
* @author valarchie
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class DefaultDataPermissionChecker extends AbstractDataPermissionChecker {
|
||||
|
||||
private ISysDeptService deptService;
|
||||
|
||||
@Override
|
||||
public boolean check(WebLoginUser loginUser, DataCondition condition) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
package com.agileboot.admin.customize.service.permission.model.checker;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.AbstractDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.AbstractDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import java.util.Objects;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -23,7 +23,7 @@ public class DeptTreeDataPermissionChecker extends AbstractDataPermissionChecker
|
||||
private ISysDeptService deptService;
|
||||
|
||||
@Override
|
||||
public boolean check(LoginUser loginUser, DataCondition condition) {
|
||||
public boolean check(WebLoginUser loginUser, DataCondition condition) {
|
||||
if (condition == null || loginUser == null) {
|
||||
return false;
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
package com.agileboot.admin.customize.service.permission.model.checker;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.AbstractDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.AbstractDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import java.util.Objects;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -23,7 +23,7 @@ public class OnlySelfDataPermissionChecker extends AbstractDataPermissionChecker
|
||||
private ISysDeptService deptService;
|
||||
|
||||
@Override
|
||||
public boolean check(LoginUser loginUser, DataCondition condition) {
|
||||
public boolean check(WebLoginUser loginUser, DataCondition condition) {
|
||||
if (condition == null || loginUser == null) {
|
||||
return false;
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
package com.agileboot.admin.customize.service.permission.model.checker;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.AbstractDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.AbstractDataPermissionChecker;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import java.util.Objects;
|
||||
import lombok.AllArgsConstructor;
|
||||
@@ -23,7 +23,7 @@ public class SingleDeptDataPermissionChecker extends AbstractDataPermissionCheck
|
||||
private ISysDeptService deptService;
|
||||
|
||||
@Override
|
||||
public boolean check(LoginUser loginUser, DataCondition condition) {
|
||||
public boolean check(WebLoginUser loginUser, DataCondition condition) {
|
||||
if (condition == null || loginUser == null) {
|
||||
return false;
|
||||
}
|
||||
@@ -1,13 +1,14 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
package com.agileboot.admin.customize.service.permission;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.CustomDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.RoleInfo;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import org.apache.commons.collections4.SetUtils;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -16,7 +17,7 @@ import org.junit.jupiter.api.Test;
|
||||
class CustomDataPermissionCheckerTest {
|
||||
|
||||
private final ISysDeptService deptService = mock(ISysDeptService.class);
|
||||
public LoginUser loginUser = mock(LoginUser.class);
|
||||
public WebLoginUser loginUser = mock(WebLoginUser.class);
|
||||
|
||||
@BeforeEach
|
||||
public void mockBefore() {
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
package com.agileboot.admin.customize.service.permission;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
@@ -6,9 +6,10 @@ import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.DeptTreeDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.RoleInfo;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -18,7 +19,7 @@ class DeptTreeDataPermissionCheckerTest {
|
||||
|
||||
private final ISysDeptService deptService = mock(ISysDeptService.class);
|
||||
|
||||
public LoginUser loginUser = mock(LoginUser.class);
|
||||
public WebLoginUser loginUser = mock(WebLoginUser.class);
|
||||
|
||||
@BeforeEach
|
||||
public void mockBefore() {
|
||||
@@ -30,7 +31,7 @@ class DeptTreeDataPermissionCheckerTest {
|
||||
DeptTreeDataPermissionChecker checker = new DeptTreeDataPermissionChecker(deptService);
|
||||
|
||||
boolean check1 = checker.check(null, null);
|
||||
boolean check2 = checker.check(new LoginUser(), null);
|
||||
boolean check2 = checker.check(new WebLoginUser(), null);
|
||||
boolean check3 = checker.check(null, new DataCondition());
|
||||
boolean check4 = checker.check(loginUser, new DataCondition());
|
||||
|
||||
@@ -61,7 +62,7 @@ class DeptTreeDataPermissionCheckerTest {
|
||||
void testCheckWhenIsSameDept() {
|
||||
DeptTreeDataPermissionChecker checker = new DeptTreeDataPermissionChecker(deptService);
|
||||
|
||||
Mockito.when(deptService.isChildOfTheDept(any(), any())).thenReturn(false);
|
||||
when(deptService.isChildOfTheDept(any(), any())).thenReturn(false);
|
||||
when(loginUser.getDeptId()).thenReturn(1L);
|
||||
DataCondition dataCondition = new DataCondition();
|
||||
dataCondition.setTargetDeptId(1L);
|
||||
@@ -76,7 +77,7 @@ class DeptTreeDataPermissionCheckerTest {
|
||||
void testCheckWhenFailed() {
|
||||
DeptTreeDataPermissionChecker checker = new DeptTreeDataPermissionChecker(deptService);
|
||||
|
||||
Mockito.when(deptService.isChildOfTheDept(any(), any())).thenReturn(false);
|
||||
when(deptService.isChildOfTheDept(any(), any())).thenReturn(false);
|
||||
when(loginUser.getDeptId()).thenReturn(1L);
|
||||
DataCondition dataCondition = new DataCondition();
|
||||
dataCondition.setTargetDeptId(2L);
|
||||
@@ -1,11 +1,12 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
package com.agileboot.admin.customize.service.permission;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.OnlySelfDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@@ -18,9 +19,9 @@ class OnlySelfDataPermissionCheckerTest {
|
||||
OnlySelfDataPermissionChecker checker = new OnlySelfDataPermissionChecker(deptService);
|
||||
|
||||
boolean check1 = checker.check(null, null);
|
||||
boolean check2 = checker.check(new LoginUser(), null);
|
||||
boolean check2 = checker.check(new WebLoginUser(), null);
|
||||
boolean check3 = checker.check(null, new DataCondition());
|
||||
boolean check4 = checker.check(new LoginUser(), new DataCondition());
|
||||
boolean check4 = checker.check(new WebLoginUser(), new DataCondition());
|
||||
|
||||
assertFalse(check1);
|
||||
assertFalse(check2);
|
||||
@@ -31,7 +32,7 @@ class OnlySelfDataPermissionCheckerTest {
|
||||
@Test
|
||||
void testCheckWhenSameUserId() {
|
||||
OnlySelfDataPermissionChecker checker = new OnlySelfDataPermissionChecker(deptService);
|
||||
LoginUser loginUser = new LoginUser();
|
||||
WebLoginUser loginUser = new WebLoginUser();
|
||||
loginUser.setUserId(1L);
|
||||
DataCondition dataCondition = new DataCondition();
|
||||
dataCondition.setTargetUserId(1L);
|
||||
@@ -45,7 +46,7 @@ class OnlySelfDataPermissionCheckerTest {
|
||||
@Test
|
||||
void testCheckWhenDifferentUserId() {
|
||||
OnlySelfDataPermissionChecker checker = new OnlySelfDataPermissionChecker(deptService);
|
||||
LoginUser loginUser = new LoginUser();
|
||||
WebLoginUser loginUser = new WebLoginUser();
|
||||
loginUser.setUserId(1L);
|
||||
DataCondition dataCondition = new DataCondition();
|
||||
dataCondition.setTargetDeptId(2L);
|
||||
@@ -1,13 +1,14 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
package com.agileboot.admin.customize.service.permission;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.admin.customize.service.permission.model.checker.SingleDeptDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.RoleInfo;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.admin.customize.service.permission.model.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -16,7 +17,7 @@ class SingleDeptDataPermissionCheckerTest {
|
||||
|
||||
private final ISysDeptService deptService = mock(ISysDeptService.class);
|
||||
|
||||
public LoginUser loginUser = mock(LoginUser.class);
|
||||
public WebLoginUser loginUser = mock(WebLoginUser.class);
|
||||
|
||||
@BeforeEach
|
||||
public void mockBefore() {
|
||||
@@ -29,7 +30,7 @@ class SingleDeptDataPermissionCheckerTest {
|
||||
SingleDeptDataPermissionChecker checker = new SingleDeptDataPermissionChecker(deptService);
|
||||
|
||||
boolean check1 = checker.check(null, null);
|
||||
boolean check2 = checker.check(new LoginUser(), null);
|
||||
boolean check2 = checker.check(new WebLoginUser(), null);
|
||||
boolean check3 = checker.check(null, new DataCondition());
|
||||
boolean check4 = checker.check(loginUser, new DataCondition());
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.agileboot.infrastructure.cache.guava.AbstractGuavaCacheTemplate;
|
||||
import com.agileboot.infrastructure.cache.guava.GuavaCacheService;
|
||||
import com.agileboot.infrastructure.cache.redis.RedisCacheService;
|
||||
import com.agileboot.infrastructure.cache.redis.RedisCacheTemplate;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.RoleInfo;
|
||||
import com.agileboot.orm.system.entity.SysDeptEntity;
|
||||
import com.agileboot.orm.system.entity.SysPostEntity;
|
||||
@@ -29,7 +29,7 @@ public class CacheCenter {
|
||||
|
||||
public static RedisCacheTemplate<String> captchaCache;
|
||||
|
||||
public static RedisCacheTemplate<LoginUser> loginUserCache;
|
||||
public static RedisCacheTemplate<WebLoginUser> loginUserCache;
|
||||
|
||||
public static RedisCacheTemplate<SysUserEntity> userCache;
|
||||
|
||||
@@ -51,7 +51,7 @@ public class CacheCenter {
|
||||
loginUserCache = redisCache.loginUserCache;
|
||||
userCache = redisCache.userCache;
|
||||
roleCache = redisCache.roleCache;
|
||||
roleModelInfoCache = redisCache.roleModelInfoCache;
|
||||
// roleModelInfoCache = redisCache.roleModelInfoCache;
|
||||
postCache = redisCache.postCache;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.agileboot.domain.monitor.dto;
|
||||
|
||||
import com.agileboot.domain.common.cache.CacheCenter;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.system.entity.SysDeptEntity;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -54,7 +54,7 @@ public class OnlineUserDTO {
|
||||
private Long loginTime;
|
||||
|
||||
|
||||
public OnlineUserDTO(LoginUser user) {
|
||||
public OnlineUserDTO(WebLoginUser user) {
|
||||
if (user == null) {
|
||||
return;
|
||||
}
|
||||
@@ -65,7 +65,7 @@ public class OnlineUserDTO {
|
||||
this.loginLocation = user.getLoginInfo().getLocation();
|
||||
this.browser = user.getLoginInfo().getBrowser();
|
||||
this.operationSystem = user.getLoginInfo().getOperationSystem();
|
||||
this.loginTime = user.getLoginTime();
|
||||
this.loginTime = user.getLoginInfo().getLoginTime();
|
||||
|
||||
SysDeptEntity deptEntity = CacheCenter.deptCache.get(user.getDeptId() + "");
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ import com.agileboot.domain.system.menu.dto.RouterDTO;
|
||||
import com.agileboot.domain.system.menu.model.MenuModel;
|
||||
import com.agileboot.domain.system.menu.model.MenuModelFactory;
|
||||
import com.agileboot.domain.system.menu.query.MenuQuery;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.common.enums.StatusEnum;
|
||||
import com.agileboot.orm.system.entity.SysMenuEntity;
|
||||
import com.agileboot.orm.system.service.ISysMenuService;
|
||||
@@ -51,7 +51,7 @@ public class MenuApplicationService {
|
||||
return new MenuDetailDTO(byId);
|
||||
}
|
||||
|
||||
public List<Tree<Long>> getDropdownList(LoginUser loginUser) {
|
||||
public List<Tree<Long>> getDropdownList(WebLoginUser loginUser) {
|
||||
List<SysMenuEntity> menuEntityList =
|
||||
loginUser.isAdmin() ? menuService.list() : menuService.getMenuListByUserId(loginUser.getUserId());
|
||||
|
||||
@@ -116,7 +116,7 @@ public class MenuApplicationService {
|
||||
}
|
||||
|
||||
|
||||
public List<Tree<Long>> buildMenuEntityTree(LoginUser loginUser) {
|
||||
public List<Tree<Long>> buildMenuEntityTree(WebLoginUser loginUser) {
|
||||
List<SysMenuEntity> allMenus;
|
||||
if (loginUser.isAdmin()) {
|
||||
allMenus = menuService.list();
|
||||
@@ -166,7 +166,7 @@ public class MenuApplicationService {
|
||||
}
|
||||
|
||||
|
||||
public List<RouterDTO> getRouterTree(LoginUser loginUser) {
|
||||
public List<RouterDTO> getRouterTree(WebLoginUser loginUser) {
|
||||
List<Tree<Long>> trees = buildMenuEntityTree(loginUser);
|
||||
return buildRouterTree(trees);
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import com.agileboot.domain.system.user.dto.UserProfileDTO;
|
||||
import com.agileboot.domain.system.user.model.UserModel;
|
||||
import com.agileboot.domain.system.user.model.UserModelFactory;
|
||||
import com.agileboot.domain.system.user.query.SearchUserQuery;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.system.entity.SysPostEntity;
|
||||
import com.agileboot.orm.system.entity.SysRoleEntity;
|
||||
import com.agileboot.orm.system.entity.SysUserEntity;
|
||||
@@ -77,7 +77,7 @@ public class UserApplicationService {
|
||||
*
|
||||
* @return 当前登录用户信息
|
||||
*/
|
||||
public CurrentLoginUserDTO getLoginUserInfo(LoginUser loginUser) {
|
||||
public CurrentLoginUserDTO getLoginUserInfo(WebLoginUser loginUser) {
|
||||
CurrentLoginUserDTO permissionDTO = new CurrentLoginUserDTO();
|
||||
|
||||
permissionDTO.setUserInfo(new UserDTO(CacheCenter.userCache.getObjectById(loginUser.getUserId())));
|
||||
@@ -144,7 +144,7 @@ public class UserApplicationService {
|
||||
CacheCenter.userCache.delete(model.getUserId());
|
||||
}
|
||||
|
||||
public void deleteUsers(LoginUser loginUser, BulkOperationCommand<Long> command) {
|
||||
public void deleteUsers(WebLoginUser loginUser, BulkOperationCommand<Long> command) {
|
||||
for (Long id : command.getIds()) {
|
||||
UserModel userModel = userModelFactory.loadById(id);
|
||||
userModel.checkCanBeDelete(loginUser);
|
||||
@@ -152,7 +152,7 @@ public class UserApplicationService {
|
||||
}
|
||||
}
|
||||
|
||||
public void updatePasswordBySelf(LoginUser loginUser, UpdateUserPasswordCommand command) {
|
||||
public void updatePasswordBySelf(WebLoginUser loginUser, UpdateUserPasswordCommand command) {
|
||||
UserModel userModel = userModelFactory.loadById(command.getUserId());
|
||||
userModel.modifyPassword(command);
|
||||
userModel.updateById();
|
||||
|
||||
@@ -14,7 +14,7 @@ import com.agileboot.domain.system.user.command.UpdateProfileCommand;
|
||||
import com.agileboot.domain.system.user.command.UpdateUserCommand;
|
||||
import com.agileboot.domain.system.user.command.UpdateUserPasswordCommand;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.system.entity.SysUserEntity;
|
||||
import com.agileboot.orm.system.service.ISysUserService;
|
||||
import java.util.Objects;
|
||||
@@ -114,7 +114,7 @@ public class UserModel extends SysUserEntity {
|
||||
}
|
||||
}
|
||||
|
||||
public void checkCanBeDelete(LoginUser loginUser) {
|
||||
public void checkCanBeDelete(WebLoginUser loginUser) {
|
||||
if (Objects.equals(getUserId(), loginUser.getUserId())
|
||||
|| this.getIsAdmin()) {
|
||||
throw new ApiException(ErrorCode.Business.USER_CURRENT_USER_CAN_NOT_BE_DELETE);
|
||||
|
||||
@@ -11,7 +11,7 @@ import com.agileboot.domain.system.post.model.PostModelFactory;
|
||||
import com.agileboot.domain.system.role.model.RoleModelFactory;
|
||||
import com.agileboot.domain.system.user.command.UpdateUserPasswordCommand;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.system.service.ISysUserService;
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
@@ -84,7 +84,7 @@ class UserModelTest {
|
||||
void testCheckCanBeDeleteWhenDeleteItself() {
|
||||
UserModel userModel = userModelFactory.create();
|
||||
userModel.setUserId(USER_ID);
|
||||
LoginUser loginUser = new LoginUser();
|
||||
WebLoginUser loginUser = new WebLoginUser();
|
||||
loginUser.setUserId(USER_ID);
|
||||
|
||||
ApiException exception = assertThrows(ApiException.class, () -> userModel.checkCanBeDelete(loginUser));
|
||||
@@ -97,7 +97,7 @@ class UserModelTest {
|
||||
UserModel userModel = userModelFactory.create();
|
||||
long adminId = 1L;
|
||||
userModel.setUserId(adminId);
|
||||
LoginUser loginUser = new LoginUser();
|
||||
WebLoginUser loginUser = new WebLoginUser();
|
||||
loginUser.setUserId(2L);
|
||||
|
||||
ApiException exception = assertThrows(ApiException.class, () -> userModel.checkCanBeDelete(loginUser));
|
||||
@@ -110,7 +110,7 @@ class UserModelTest {
|
||||
void testCheckCanBeDeleteWhenSuccessful() {
|
||||
UserModel userModel = userModelFactory.create();
|
||||
userModel.setUserId(2L);
|
||||
LoginUser loginUser = new LoginUser();
|
||||
WebLoginUser loginUser = new WebLoginUser();
|
||||
loginUser.setUserId(ADMIN_USER_ID);
|
||||
|
||||
Assertions.assertDoesNotThrow(() -> userModel.checkCanBeDelete(loginUser));
|
||||
|
||||
@@ -6,9 +6,8 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.extra.servlet.ServletUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.agileboot.common.utils.ServletHolderUtil;
|
||||
import com.agileboot.infrastructure.annotations.accessLog.AccessLog;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.orm.common.enums.OperationStatusEnum;
|
||||
import com.agileboot.orm.common.enums.RequestMethodEnum;
|
||||
import com.agileboot.orm.common.enums.util.BasicEnumUtil;
|
||||
@@ -38,7 +37,7 @@ public class OperationLogModel extends SysOperationLogEntity {
|
||||
// 获取当前的用户
|
||||
String ip = ServletUtil.getClientIP(request);
|
||||
setOperatorIp(ip);
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
if (loginUser != null) {
|
||||
this.setUsername(loginUser.getUsername());
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import com.agileboot.common.exception.ApiException;
|
||||
import com.agileboot.common.exception.error.ErrorCode;
|
||||
import com.agileboot.common.utils.ServletHolderUtil;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -77,7 +77,7 @@ public @interface RateLimit {
|
||||
WEB_USER {
|
||||
@Override
|
||||
public String generateCombinedKey(RateLimit rateLimiter) {
|
||||
LoginUser loginUser = AuthenticationUtils.getWebLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getWebLoginUser();
|
||||
if (loginUser == null) {
|
||||
throw new ApiException(ErrorCode.Client.COMMON_NO_AUTHORIZATION);
|
||||
}
|
||||
@@ -91,7 +91,7 @@ public @interface RateLimit {
|
||||
APP_USER {
|
||||
@Override
|
||||
public String generateCombinedKey(RateLimit rateLimiter) {
|
||||
LoginUser loginUser = AuthenticationUtils.getAppLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getAppLoginUser();
|
||||
if (loginUser == null) {
|
||||
throw new ApiException(ErrorCode.Client.COMMON_NO_AUTHORIZATION);
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@ package com.agileboot.infrastructure.annotations.unrepeatable;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Inherited;
|
||||
@@ -46,7 +46,7 @@ public @interface Unrepeatable {
|
||||
String username;
|
||||
|
||||
try {
|
||||
LoginUser loginUser = AuthenticationUtils.getAppLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getAppLoginUser();
|
||||
username = loginUser.getUsername();
|
||||
} catch (Exception e) {
|
||||
username = NO_LOGIN;
|
||||
@@ -69,7 +69,7 @@ public @interface Unrepeatable {
|
||||
String username;
|
||||
|
||||
try {
|
||||
LoginUser loginUser = AuthenticationUtils.getWebLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getWebLoginUser();
|
||||
username = loginUser.getUsername();
|
||||
} catch (Exception e) {
|
||||
username = NO_LOGIN;
|
||||
|
||||
@@ -2,9 +2,8 @@ package com.agileboot.infrastructure.cache.redis;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.agileboot.infrastructure.cache.RedisUtil;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.RoleInfo;
|
||||
import com.agileboot.infrastructure.web.service.UserDetailsServiceImpl;
|
||||
import com.agileboot.orm.system.entity.SysPostEntity;
|
||||
import com.agileboot.orm.system.entity.SysRoleEntity;
|
||||
import com.agileboot.orm.system.entity.SysUserEntity;
|
||||
@@ -15,6 +14,7 @@ import java.io.Serializable;
|
||||
import javax.annotation.PostConstruct;
|
||||
import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
@@ -28,13 +28,13 @@ public class RedisCacheService {
|
||||
private RedisUtil redisUtil;
|
||||
|
||||
public RedisCacheTemplate<String> captchaCache;
|
||||
public RedisCacheTemplate<LoginUser> loginUserCache;
|
||||
public RedisCacheTemplate<WebLoginUser> loginUserCache;
|
||||
public RedisCacheTemplate<SysUserEntity> userCache;
|
||||
public RedisCacheTemplate<SysRoleEntity> roleCache;
|
||||
|
||||
public RedisCacheTemplate<SysPostEntity> postCache;
|
||||
|
||||
public RedisCacheTemplate<RoleInfo> roleModelInfoCache;
|
||||
// public RedisCacheTemplate<RoleInfo> roleModelInfoCache;
|
||||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
@@ -59,14 +59,14 @@ public class RedisCacheService {
|
||||
}
|
||||
};
|
||||
|
||||
roleModelInfoCache = new RedisCacheTemplate<RoleInfo>(redisUtil, CacheKeyEnum.ROLE_MODEL_INFO_KEY) {
|
||||
@Override
|
||||
public RoleInfo getObjectFromDb(Object id) {
|
||||
UserDetailsServiceImpl userDetailsService = SpringUtil.getBean(UserDetailsServiceImpl.class);
|
||||
return userDetailsService.getRoleInfo((Long) id);
|
||||
}
|
||||
|
||||
};
|
||||
// roleModelInfoCache = new RedisCacheTemplate<RoleInfo>(redisUtil, CacheKeyEnum.ROLE_MODEL_INFO_KEY) {
|
||||
// @Override
|
||||
// public RoleInfo getObjectFromDb(Object id) {
|
||||
// UserDetailsService userDetailsService = SpringUtil.getBean(UserDetailsService.class);
|
||||
// return userDetailsService.getRoleInfo((Long) id);
|
||||
// }
|
||||
//
|
||||
// };
|
||||
|
||||
postCache = new RedisCacheTemplate<SysPostEntity>(redisUtil, CacheKeyEnum.POST_ENTITY_KEY) {
|
||||
@Override
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.agileboot.infrastructure.mybatisplus;
|
||||
|
||||
import com.agileboot.infrastructure.security.AuthenticationUtils;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||
import java.util.Date;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -49,7 +49,7 @@ public class CustomMetaObjectHandler implements MetaObjectHandler {
|
||||
public Long getUserIdSafely() {
|
||||
Long userId = null;
|
||||
try {
|
||||
LoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
WebLoginUser loginUser = AuthenticationUtils.getLoginUser();
|
||||
userId = loginUser.getUserId();
|
||||
} catch (Exception e) {
|
||||
log.warn("can not find user in current thread.");
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.agileboot.infrastructure.security;
|
||||
|
||||
import com.agileboot.common.exception.ApiException;
|
||||
import com.agileboot.common.exception.error.ErrorCode;
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.login.WebLoginUser;
|
||||
import org.springframework.security.core.Authentication;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
|
||||
@@ -32,9 +32,9 @@ public class AuthenticationUtils {
|
||||
* 获取用户
|
||||
**/
|
||||
@Deprecated
|
||||
public static LoginUser getLoginUser() {
|
||||
public static WebLoginUser getLoginUser() {
|
||||
try {
|
||||
return (LoginUser) getAuthentication().getPrincipal();
|
||||
return (WebLoginUser) getAuthentication().getPrincipal();
|
||||
} catch (Exception e) {
|
||||
throw new ApiException(ErrorCode.Business.USER_FAIL_TO_GET_USER_INFO);
|
||||
}
|
||||
@@ -43,9 +43,9 @@ public class AuthenticationUtils {
|
||||
/**
|
||||
* 获取App用户
|
||||
**/
|
||||
public static LoginUser getAppLoginUser() {
|
||||
public static WebLoginUser getAppLoginUser() {
|
||||
try {
|
||||
return (LoginUser) getAuthentication().getPrincipal();
|
||||
return (WebLoginUser) getAuthentication().getPrincipal();
|
||||
} catch (Exception e) {
|
||||
throw new ApiException(ErrorCode.Business.USER_FAIL_TO_GET_USER_INFO);
|
||||
}
|
||||
@@ -54,9 +54,9 @@ public class AuthenticationUtils {
|
||||
/**
|
||||
* 获取App用户
|
||||
**/
|
||||
public static LoginUser getWebLoginUser() {
|
||||
public static WebLoginUser getWebLoginUser() {
|
||||
try {
|
||||
return (LoginUser) getAuthentication().getPrincipal();
|
||||
return (WebLoginUser) getAuthentication().getPrincipal();
|
||||
} catch (Exception e) {
|
||||
throw new ApiException(ErrorCode.Business.USER_FAIL_TO_GET_USER_INFO);
|
||||
}
|
||||
|
||||
@@ -20,67 +20,38 @@ import org.springframework.security.core.userdetails.UserDetails;
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class LoginUser implements UserDetails {
|
||||
public class BaseLoginUser implements UserDetails {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long userId;
|
||||
protected Long userId;
|
||||
|
||||
/**
|
||||
* 用户唯一标识,缓存的key
|
||||
*/
|
||||
private String cachedKey;
|
||||
protected String cachedKey;
|
||||
|
||||
private boolean isAdmin;
|
||||
protected String username;
|
||||
|
||||
private String username;
|
||||
|
||||
private String password;
|
||||
protected String password;
|
||||
|
||||
/**
|
||||
* 登录信息
|
||||
*/
|
||||
private final LoginInfo loginInfo = new LoginInfo();
|
||||
|
||||
/**
|
||||
* 登录时间
|
||||
*/
|
||||
private Long loginTime;
|
||||
|
||||
/**
|
||||
* 当超过这个时间 则触发刷新缓存时间
|
||||
*/
|
||||
private Long autoRefreshCacheTime;
|
||||
protected final LoginInfo loginInfo = new LoginInfo();
|
||||
|
||||
|
||||
public LoginUser(Long userId, Boolean isAdmin, String username, String password) {
|
||||
public BaseLoginUser(Long userId, String username, String password) {
|
||||
this.userId = userId;
|
||||
this.isAdmin = isAdmin;
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public RoleInfo getRoleInfo() {
|
||||
return SpringUtil.getBean(RedisCacheService.class).roleModelInfoCache.getObjectById(getRoleId());
|
||||
}
|
||||
|
||||
public Long getRoleId() {
|
||||
if (isAdmin()) {
|
||||
return RoleInfo.ADMIN_ROLE_ID;
|
||||
} else {
|
||||
return SpringUtil.getBean(RedisCacheService.class).userCache.getObjectById(userId).getRoleId();
|
||||
}
|
||||
}
|
||||
|
||||
public Long getDeptId() {
|
||||
return SpringUtil.getBean(RedisCacheService.class).userCache.getObjectById(userId).getDeptId();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置用户代理信息
|
||||
*
|
||||
*/
|
||||
public void fillUserAgent() {
|
||||
public void fillLoginInfo() {
|
||||
UserAgent userAgent = UserAgent.parseUserAgentString(ServletHolderUtil.getRequest().getHeader("User-Agent"));
|
||||
String ip = ServletUtil.getClientIP(ServletHolderUtil.getRequest());
|
||||
|
||||
@@ -88,6 +59,7 @@ public class LoginUser implements UserDetails {
|
||||
this.getLoginInfo().setLocation(IpRegionUtil.getBriefLocationByIp(ip));
|
||||
this.getLoginInfo().setBrowser(userAgent.getBrowser().getName());
|
||||
this.getLoginInfo().setOperationSystem(userAgent.getOperatingSystem().getName());
|
||||
this.getLoginInfo().setLoginTime(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
|
||||
@@ -28,4 +28,9 @@ public class LoginInfo {
|
||||
*/
|
||||
private String operationSystem;
|
||||
|
||||
/**
|
||||
* 登录时间
|
||||
*/
|
||||
private Long loginTime;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.agileboot.infrastructure.web.domain.login;
|
||||
|
||||
import cn.hutool.extra.spring.SpringUtil;
|
||||
import com.agileboot.infrastructure.cache.redis.RedisCacheService;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 登录用户身份权限
|
||||
* @author valarchie
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class WebLoginUser extends BaseLoginUser {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private boolean isAdmin;
|
||||
|
||||
private Long deptId;
|
||||
|
||||
private RoleInfo roleInfo;
|
||||
|
||||
/**
|
||||
* 当超过这个时间 则触发刷新缓存时间
|
||||
*/
|
||||
private Long autoRefreshCacheTime;
|
||||
|
||||
|
||||
public WebLoginUser(Long userId, Boolean isAdmin, String username, String password, RoleInfo roleInfo,
|
||||
Long deptId) {
|
||||
this.userId = userId;
|
||||
this.isAdmin = isAdmin;
|
||||
this.username = username;
|
||||
this.password = password;
|
||||
this.roleInfo = roleInfo;
|
||||
this.deptId = deptId;
|
||||
}
|
||||
|
||||
public RoleInfo getRoleInfo() {
|
||||
return roleInfo;
|
||||
}
|
||||
|
||||
public Long getRoleId() {
|
||||
return getRoleInfo().getRoleId();
|
||||
}
|
||||
|
||||
public Long getDeptId() {
|
||||
return deptId;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.AbstractDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 数据权限测试接口
|
||||
* @author valarchie
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class AllDataPermissionChecker extends AbstractDataPermissionChecker {
|
||||
|
||||
private ISysDeptService deptService;
|
||||
|
||||
|
||||
@Override
|
||||
public boolean check(LoginUser loginUser, DataCondition condition) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.agileboot.infrastructure.web.domain.permission.checker;
|
||||
|
||||
import com.agileboot.infrastructure.web.domain.login.LoginUser;
|
||||
import com.agileboot.infrastructure.web.domain.permission.AbstractDataPermissionChecker;
|
||||
import com.agileboot.infrastructure.web.domain.permission.DataCondition;
|
||||
import com.agileboot.orm.system.service.ISysDeptService;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 数据权限测试接口
|
||||
* @author valarchie
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class DefaultDataPermissionChecker extends AbstractDataPermissionChecker {
|
||||
|
||||
private ISysDeptService deptService;
|
||||
|
||||
@Override
|
||||
public boolean check(LoginUser loginUser, DataCondition condition) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user