34 Commits

Author SHA1 Message Date
4579dbda81 Revert "refactor(sims): 重构JwtInterceptor并修复用户角色加载"
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
Gitea Sync / trigger-gitea-sync (push) Waiting to run
Java CI with Maven / build (push) Waiting to run
This reverts commit 8ee13b5f8f06a34f8c7f1fc41ae9d38169b25183.
2024-09-05 18:27:30 +08:00
8ee13b5f8f refactor(sims): 重构JwtInterceptor并修复用户角色加载
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
Gitea Sync / trigger-gitea-sync (push) Waiting to run
Java CI with Maven / build (push) Waiting to run
- 在JwtInterceptor中新增getUserIdFromReq方法,用于从请求中获取用户ID。
- 在UserController的getSelf方法中使用新方法获取当前用户ID并修复。
- 重构UserService中关于用户角色加载的代码,消除不必要的循环,提高执行效率。
- 修复了在UserService中findUser方法传入空值的问题,并增加用户不存在时的异常处理。
2024-09-05 18:24:59 +08:00
28f5b146d8 增强JWT拦截器异常处理
Some checks failed
Docker Build and Publish / build (push) Has been cancelled
Gitea Sync / trigger-gitea-sync (push) Has been cancelled
Java CI with Maven / build (push) Has been cancelled
新增异常处理,专门针对无法识别的token异常,提升错误提示的准确性。当token验证失败时,现在将抛出一个具体的"token验证失败,请重新登录"错误,以区别于登录过期错误。
2024-09-03 17:32:26 +08:00
d353304f3a 在测试中mock S3Client,避免报错 2024-09-03 16:34:35 +08:00
b9ca333958 添加文件上传功能及S3集成
新版本中添加了文件上传功能,并集成了S3进行文件存储。这包括控制器、服务和工具类的更新,以及配置S3客户端的bean配置。
2024-09-03 16:13:00 +08:00
f113c341e5 Revert "feat(cors): 允许option请求通过"
Some checks failed
Docker Build and Publish / build (push) Has been cancelled
Gitea Sync / trigger-gitea-sync (push) Has been cancelled
Java CI with Maven / build (push) Has been cancelled
This reverts commit f867d7b7bc9fd2a809fc725f401a42542659368c.
2024-08-29 17:53:30 +08:00
6a0812b836 Revert "feat(cors): 暴力允许option请求通过"
This reverts commit 0fea9664f9bf7415085345419644ef3134806b3c.
2024-08-29 17:53:29 +08:00
fb37c59810 feat(cors): 使用CorsFilter来处理跨域问题 2024-08-29 17:53:26 +08:00
0fea9664f9 feat(cors): 暴力允许option请求通过
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
Gitea Sync / trigger-gitea-sync (push) Waiting to run
Java CI with Maven / build (push) Waiting to run
2024-08-29 17:15:28 +08:00
f867d7b7bc feat(cors): 允许option请求通过
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
Gitea Sync / trigger-gitea-sync (push) Waiting to run
Java CI with Maven / build (push) Waiting to run
2024-08-29 16:54:37 +08:00
b7afe430d3
ci(docker-publish): 确保仅在push事件时提交标签更新 (#22)
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
Gitea Sync / trigger-gitea-sync (push) Waiting to run
Java CI with Maven / build (push) Waiting to run
* ci(docker-publish): 确保仅在push事件时提交标签更新

* refactor(github-workflows): 标准化Gitea Sync workflow名称

* feat(cors): 全局启用CORS支持

在Spring应用中通过配置CORS实现跨域请求支持,允许所有来源、方法和头。
此变更有助于解决前端应用在不同域上运行时的跨域问题。
2024-08-28 21:13:59 +08:00
2c51b04381
feat(user): 为用户表添加唯一索引 (#23)
Some checks failed
Docker Build and Publish / build (push) Failing after 2m16s
gitea-sync.yml / trigger-gitea-sync (push) Successful in 4s
Java CI with Maven / build (push) Failing after 5m48s
2024-08-26 10:21:01 +08:00
6e3ffa092b
reformat 格式化代码 (#21)
Some checks are pending
Docker Build and Publish / build (push) Waiting to run
gitea-sync.yml / trigger-gitea-sync (push) Waiting to run
Java CI with Maven / build (push) Waiting to run
* reformat 格式化代码

* 为依赖图的生成添加写权限
2024-08-25 20:21:15 +08:00
437b23022c fix(JwtInterceptor): 解决登录过期问题
增加对过期JWT令牌的异常处理,以在访问受限时强制重新认证。在验证失败时抛出服务异常前,捕获并处理TokenExpiredException。
2024-08-25 19:12:28 +08:00
c00d979e91
RBAC 优化 (#18)
* refactor(common): 整理拦截器配置和JWT拦截器实现

* feat(auth): 将权限信息使用注解的形式固定在接口上

* feat(rbac): stash

* fix(GlobalException): 在ServiceException处理中添加日志记录

在全局异常处理器中为ServiceException添加错误日志记录,以提高错误跟踪的可观察性。现在,当捕获到ServiceException时,将记录错误消息。

更改包含:
- 导入lombok.extern.slf4j.Slf4j注解以启用日志记录功能。
- 使用@Slf4j注解GlobalException类。- 在ServiceException的@ExceptionHandler方法中添加日志记录语句。

* feat(auth): 实现RBAC,调整JWT验证,更新用户服务和控制器

* 为所有接口添加权限注解

* 删除没有必要的接口

* 删除过期的测试

* refactor(entity): 使用MyBatis-Plus和AutoTable注解重新定义主键和注释

- 重构`Role`, `RolePermission`, `User`, 和`UserRole`实体类,统一使用`@ColumnId`注解代替`@TableId`,并为各实体类的字段添加了相应的注释。- 为`Role`实体类的`roleId`和`roleName`字段,`RolePermission`的`roleId`和`permissionId`字段,`User`实体类的`studentId`, `username`, `password`, `email`, `grade`, 和`userGroup`字段,以及`UserRole`的`userId`和`roleId`字段添加了`@ColumnNotNull`注解,以强化字段的非空约束。

* refactor(jwt-interceptor):精简无效的JWT,提高检查效率

调整JwtInterceptor以精简无效的JWT检查逻辑。实现对JWT效验和用户ID提取的优化,避免不必要的数据库查询。refactor(role): 使用自定义注解替换MyBatis Plus注解并移除冗余字段

通过自定义注解替换MyBatis Plus注解,以整理和优化实体类定义。删除了Role类中的冗余字段,如'tag',以及未使用的imports。

refactor(user-service): 使用ModelMapper简化对象映射,重构注册逻辑引入ModelMapper以简化User对象和DTO之间的映射操作。重构UserService中的用户注册逻辑,使用ModelMapper进行对象转换,减少手动设置属性的需求。

fix(user-controller):调整用户注册请求参数,统一数据类型

调整UserController中的注册请求参数,将'studentId'和'userGroup'的类型与现有代码库保持一致,以便正确进行参数传递和处理。

feat(user-service): 实现rbacService集成,增强用户注册流程

在UserService中集成rbacService,以在用户注册时为新用户分配默认角色。优化了用户注册流程,并简化了权限和角色的管理。

BREAKING CHANGE: 对UserRole逻辑的改动可能会影响现有的用户权限和角色分配。请确保在更新代码后进行

* 修复测试配置
2024-08-25 01:42:40 +08:00
68ef028a1b 实现权限校验 2024-08-21 21:21:48 +08:00
a04c901b04 RecordController基本完成 2024-08-20 23:44:09 +08:00
17bc297b10 Merge remote-tracking branch 'origin/wr' into wr 2024-08-19 23:33:22 +08:00
aa08b363e1 完成查询自己的记录的接口 2024-08-19 23:19:51 +08:00
da6057ccab test(sims): 删除多余的测试 2024-08-17 02:39:34 +08:00
7528d960f1 一些小错 2024-08-17 01:58:41 +08:00
a91f3dd203 一些小错 2024-08-17 01:46:33 +08:00
6b862ffe6b Merge remote-tracking branch 'origin/wr' into wr 2024-08-17 01:15:10 +08:00
a74b724045 获取所有奖惩记录,改了userMapper里面一个错的命名 2024-08-17 01:13:36 +08:00
07d2aa00b0 refactor(gitignore): 从.gitignore中移除application.yaml移除src/main/resources/application.yaml文件的.gitignore条目,以便将其包含在版本控制中。此外,新增src/main/resources/application-prod.yaml文件的.gitignore条目,以保持环境特定配置文件不受版本控制的影响。同时,调整了SimsApplication类以引入@Profile注释,为不同的环境配置文件做好准备。 2024-08-17 00:55:26 +08:00
a8f39e2b0c feat(mapper): 添加 MpUserMapper 及用户插入测试
新增 MpUserMapper 接口,扩展自 Mybatis Plus 的 BaseMapper,用于 User 实体的数据库操作。在 UserMapperTest 中添加 testAddUser 方法以验证用户插入功能,使用 SQLite 数据库进行单元测试。
2024-08-16 22:51:06 +08:00
e9bbc1e274 refactor(user): 更改用户组字段并更新关联代码
用户实体的group字段已被重命名为userGroup,以提高清晰度。此外,与用户组相关的逻辑已从UserService和UserController中更新,以适应这一变化。用户权限集合的处理逻辑也被移除。
2024-08-16 22:47:45 +08:00
675c07939e docs(record): 添加奖惩记录接口的描述 2024-08-16 16:33:32 +08:00
c484bdcf69 docs(user): 添加用户接口的描述 2024-08-16 16:32:05 +08:00
55d2072fa0 改一下 2024-08-16 16:17:03 +08:00
tortoise014
038b7ebe8d
定义 User 和 Record 接口 (#9)
* 登陆,注册,加上异常集中处理,mybatis和mybatisplus不兼容好像是

* 更新hutool依赖并移除mybatis-starter

此更改升级了hutool版本从5.8.11到5.8.26,并且移除了mybatis-spring-boot-starter依赖。这对于优化项目依赖和保持项目轻量级有好处。

* 数据库表名有点小问题

* 解决用户表映射问题以匹配实际数据库结构

之前,用户表列名在MyBatis映射中被错误地标注为`userId`和`group`,而数据库中的实际列名为`user_id`和`group`(无反引号)。此次更改通过在MyBatis注释中使用正确的列名来解决了该问题,确保了数据操作的正确执行。此外,还修正了选择语句中的列名,以确保查询能够正确执行并返回期望的结果。

* 不会测那个apifox有token怎么加进去啊

* 拦截器ok

* 允许接口文档目录的未登录访问
启用自动建表

* jwtUtils

* 权限校验1

* 管理员查看用户信息

* 816

* refactor(user): 简化控制器和实体类并调整注释格式

- 合并登录和注册请求模型,统一参数处理- 删除未使用的字段和导入语句,优化代码
-调整方法注释格式,提升可读性和一致性
- 实体类 `User` 移除 `name` 字段,避免冗余

BREAKING CHANGE: `User` 实体类移除 `name` 字段,可能影响依赖此字段的数据库查询。请确保更新相关代码以适应这一变更。

* feat(user): 完成User的接口

* feat(user): 完成Record的接口

---------

Co-authored-by: suyiiyii <suyiiyii@gmail.com>
2024-08-16 01:44:20 +08:00
tortoise014
ce69219012
feat: 创建表
* 表

* 二级分类

* chore: 更新mybatis-plus扩展启动器版本

* 添加了实现成员申请撤销记录,管理员撤销的表

* chore: 更新mybatis-plus扩展启动器版本

* 用通知来解决:普通成员可以向管理员申请撤销某一个奖惩记录,管理员可以查看所有撤销申请,并决定是否撤销该记录
然后,那个职务的问题,我觉得可以直接放到role里面,HierarchyRelation表就只记录上下级关系

---------

Co-authored-by: suyiiyii <suyiiyii@gmail.com>
2024-08-10 18:41:37 +08:00
3b44def8aa
feat: 添加健康检查和问候控制器 (#7)
实现新的健康检查端点和Hello控制器以响应GET和POST请求。健康检查返回"ok"或自定义响应,而Hello控制器返回带参数的问候信息。另外,引入了springdoc-openapi以增强API文档生成能力。
2024-08-10 02:46:54 +08:00
0e0a927fdf feat(SIMS): init 2024-08-08 22:51:10 +08:00