feat: 更新web配置接口

This commit is contained in:
bunny 2025-04-26 10:25:38 +08:00
parent a351191b4c
commit fb4623da8f
13 changed files with 40 additions and 18 deletions

View File

@ -6,7 +6,7 @@ import cn.bunny.domain.system.entity.Role;
import cn.bunny.domain.vo.LoginVo;
import cn.bunny.domain.vo.result.ResultCodeEnum;
import cn.bunny.services.context.BaseContext;
import cn.bunny.services.mapper.system.PowerMapper;
import cn.bunny.services.mapper.system.PermissionMapper;
import cn.bunny.services.mapper.system.RoleMapper;
import cn.bunny.services.utils.JwtHelper;
import cn.bunny.services.utils.system.RoleUtil;
@ -36,7 +36,7 @@ import java.util.function.Supplier;
public class CustomAuthorizationManagerServiceImpl implements AuthorizationManager<RequestAuthorizationContext> {
@Resource
private PowerMapper powerMapper;
private PermissionMapper permissionMapper;
@Resource
private RoleMapper roleMapper;
@ -100,6 +100,7 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag
* @param request 请求url地址
*/
private Boolean hasAuth(HttpServletRequest request) {
String requestMethod = request.getMethod();
// 根据用户ID查询角色数据
Long userId = BaseContext.getUserId();
List<Role> roleList = roleMapper.selectListByUserId(userId);
@ -116,10 +117,12 @@ public class CustomAuthorizationManagerServiceImpl implements AuthorizationManag
if (requestURI.contains("noManage")) return true;
// 根据角色列表查询权限信息
List<Permission> permissionList = powerMapper.selectListByUserId(userId);
List<Permission> permissionList = permissionMapper.selectListByUserId(userId);
// 判断是否与请求路径匹配
return permissionList.stream().map(Permission::getRequestUrl)
return permissionList.stream()
.filter(permission -> permission.getRequestMethod().equals(requestMethod))
.map(Permission::getRequestUrl)
.filter(Objects::nonNull)
.anyMatch(requestUrl -> {
if ((requestUrl.contains("/*") || requestUrl.contains("/**"))) {

View File

@ -26,14 +26,14 @@ public class ConfigurationController {
}
@Operation(summary = "获取修改web配置文件", description = "获取修改web配置文件")
@GetMapping("getWebConfig")
@GetMapping()
public Result<WebConfiguration> getWebConfig() {
WebConfiguration webConfiguration = configurationService.webConfig();
return Result.success(webConfiguration);
}
@Operation(summary = "更新web配置文件", description = "更新web配置文件")
@PutMapping("updateWebConfiguration")
@PutMapping()
public Result<Object> updateWebConfiguration(@Valid @RequestBody WebConfigurationDto dto) {
configurationService.updateWebConfiguration(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);

View File

@ -37,7 +37,7 @@ public class EmailTemplateController {
private EmailTemplateService emailTemplateService;
@Operation(summary = "分页查询邮件模板", description = "分页查询邮件模板")
@GetMapping("getEmailTemplateList/{page}/{limit}")
@GetMapping("query/page/{page}/{limit}")
public Result<PageResult<EmailTemplateVo>> getEmailTemplateList(
@Parameter(name = "page", description = "当前页", required = true)
@PathVariable("page") Integer page,
@ -50,14 +50,14 @@ public class EmailTemplateController {
}
@Operation(summary = "获取邮件模板类型字段", description = "获取邮件模板类型字段")
@GetMapping("getEmailTypes")
@GetMapping("query/emailTypes")
public Result<List<Map<String, String>>> getEmailTypes() {
List<Map<String, String>> list = emailTemplateService.getEmailTypes();
return Result.success(list);
}
@Operation(summary = "添加邮件模板", description = "添加邮件模板")
@PostMapping("addEmailTemplate")
@PostMapping("add/emailTemplate")
public Result<String> addEmailTemplate(@Valid @RequestBody EmailTemplateAddDto dto) {
emailTemplateService.addEmailTemplate(dto);
return Result.success(ResultCodeEnum.ADD_SUCCESS);

View File

@ -65,7 +65,7 @@ public class PowerController {
@Operation(summary = "更新权限", description = "更新权限")
@PutMapping("updatePower")
public Result<Object> updatePower(@Valid @RequestBody PowerUpdateDto dto) {
public Result<String> updatePower(@Valid @RequestBody PowerUpdateDto dto) {
powerService.updatePower(dto);
return Result.success(ResultCodeEnum.UPDATE_SUCCESS);
}

View File

@ -34,5 +34,8 @@ public class PowerAddDto {
@Schema(name = "requestUrl", title = "请求路径")
private String requestUrl;
@Schema(name = "requestMethod", title = "请求方法")
private String requestMethod;
}

View File

@ -22,5 +22,8 @@ public class PowerDto {
@Schema(name = "requestUrl", title = "请求路径")
private String requestUrl;
@Schema(name = "requestMethod", title = "请求方法")
private String requestMethod;
}

View File

@ -34,5 +34,8 @@ public class PowerUpdateDto {
@Schema(name = "requestUrl", title = "请求路径")
private String requestUrl;
@Schema(name = "requestMethod", title = "请求方法")
private String requestMethod;
}

View File

@ -24,5 +24,8 @@ public class Permission extends BaseEntity {
@Schema(name = "requestUrl", title = "请求路径")
private String requestUrl;
@Schema(name = "requestMethod", title = "请求方法")
private String requestMethod;
}

View File

@ -31,6 +31,9 @@ public class PowerVo extends BaseUserVo {
@Schema(name = "requestUrl", title = "请求路径")
private String requestUrl;
@Schema(name = "requestMethod", title = "请求路径")
private String requestMethod;
@Schema(name = "children", title = "子级")
private List<PowerVo> children;

View File

@ -20,7 +20,7 @@ import java.util.List;
* @since 2024-10-03 16:00:52
*/
@Mapper
public interface PowerMapper extends BaseMapper<Permission> {
public interface PermissionMapper extends BaseMapper<Permission> {
/**
* * 分页查询权限内容

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.bunny.services.mapper.system.PowerMapper">
<mapper namespace="cn.bunny.services.mapper.system.PermissionMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="cn.bunny.domain.system.entity.Permission">
@ -14,6 +14,7 @@
<id column="power_code" property="powerCode"/>
<id column="power_name" property="powerName"/>
<id column="request_url" property="requestUrl"/>
<id column="request_method" property="requestMethod"/>
</resultMap>
<!-- 通用查询结果列 -->
@ -40,7 +41,10 @@
and permission.power_name like CONCAT('%',#{dto.powerName},'%')
</if>
<if test="dto.requestUrl != null and dto.requestUrl != ''">
and permission.request_url like CONCAT('%',#{dto.requestUrl},'%')
and permission.requestMethod like CONCAT('%',#{dto.requestMethod},'%')
</if>
<if test="dto.requestMethod != null and dto.requestMethod != ''">
and permission.request_method like CONCAT('%',#{dto.requestMethod},'%')
</if>
</where>
</select>

View File

@ -9,7 +9,7 @@ import cn.bunny.domain.system.vo.PowerVo;
import cn.bunny.domain.vo.result.PageResult;
import cn.bunny.domain.vo.result.ResultCodeEnum;
import cn.bunny.services.exception.AuthCustomerException;
import cn.bunny.services.mapper.system.PowerMapper;
import cn.bunny.services.mapper.system.PermissionMapper;
import cn.bunny.services.mapper.system.RolePermissionMapper;
import cn.bunny.services.service.system.PowerService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -37,7 +37,7 @@ import java.util.List;
*/
@Service
@Transactional
public class PowerServiceImpl extends ServiceImpl<PowerMapper, Permission> implements PowerService {
public class PowerServiceImpl extends ServiceImpl<PermissionMapper, Permission> implements PowerService {
@Resource
private RolePermissionMapper rolePermissionMapper;

View File

@ -10,7 +10,7 @@ import cn.bunny.domain.system.entity.Role;
import cn.bunny.domain.vo.LoginVo;
import cn.bunny.services.exception.AuthCustomerException;
import cn.bunny.services.mapper.log.UserLoginLogMapper;
import cn.bunny.services.mapper.system.PowerMapper;
import cn.bunny.services.mapper.system.PermissionMapper;
import cn.bunny.services.mapper.system.RoleMapper;
import cn.bunny.services.mapper.system.UserMapper;
import cn.bunny.services.utils.JwtHelper;
@ -38,7 +38,7 @@ import java.util.regex.Pattern;
@Component
public class UserUtil {
private final MinioUtil minioUtil;
private final PowerMapper powerMapper;
private final PermissionMapper permissionMapper;
private final RoleMapper roleMapper;
private final UserMapper userMapper;
private final UserLoginLogMapper userLoginLogMapper;
@ -123,7 +123,7 @@ public class UserUtil {
// 判断是否是 admin 如果是admin 赋予所有权限
boolean isAdmin = RoleUtil.checkAdmin(roles, permissions, user);
if (!isAdmin) {
permissions = powerMapper.selectListByUserId(userId).stream().map(Permission::getPowerCode).toList();
permissions = permissionMapper.selectListByUserId(userId).stream().map(Permission::getPowerCode).toList();
}
// 计算过期时间并格式化返回