ソースを参照

更新团队成员控制器和路由,新增用户登录验证逻辑,支持团队角色用户创建团队成员时自动关联团队ID和用户ID。

wuyi 3 ヶ月 前
コミット
11c7308252

+ 9 - 0
src/controllers/team-members.controller.ts

@@ -21,6 +21,15 @@ export class TeamMembersController {
 
   async create(request: FastifyRequest<{ Body: CreateTeamMembersBody }>, reply: FastifyReply) {
     try {
+      const user = request.user
+      if (!user) {
+        return reply.code(403).send({ message: '用户未登录' })
+      }
+      if (user.role === UserRole.TEAM) {
+        const team = await this.teamService.findByUserId(user.id)
+        request.body.teamId = team.id
+        request.body.teamUserId = user.id
+      }
       const teamMember = await this.teamMembersService.create(request.body, request.user.id)
       return reply.code(201).send(teamMember)
     } catch (error) {

+ 1 - 1
src/routes/team-members.routes.ts

@@ -16,7 +16,7 @@ export default async function teamMembersRoutes(fastify: FastifyInstance) {
   // 创建团队成员
   fastify.post<{ Body: CreateTeamMembersBody }>(
     '/',
-    { onRequest: [authenticate, hasRole(UserRole.ADMIN)] },
+    { onRequest: [authenticate, hasAnyRole(UserRole.ADMIN, UserRole.TEAM)] },
     teamMembersController.create.bind(teamMembersController)
   )