diff --git a/backend/src/@types/fastify.d.ts b/backend/src/@types/fastify.d.ts index 26be26036..265a235a0 100644 --- a/backend/src/@types/fastify.d.ts +++ b/backend/src/@types/fastify.d.ts @@ -110,7 +110,7 @@ declare module "@fastify/request-context" { }; }; identityPermissionMetadata?: Record; // filled by permission service - assumedProjectRole: { requesterId: string; actorId: string; actorType: ActorType; projectId: string }; + assumedProjectRole?: { requesterId: string; actorId: string; actorType: ActorType; projectId: string }; } } diff --git a/backend/src/ee/routes/v1/assume-privilege-router.ts b/backend/src/ee/routes/v1/assume-privilege-router.ts index 1f5e3e2ee..ab280a4ec 100644 --- a/backend/src/ee/routes/v1/assume-privilege-router.ts +++ b/backend/src/ee/routes/v1/assume-privilege-router.ts @@ -1,3 +1,4 @@ +import { requestContext } from "@fastify/request-context"; import { z } from "zod"; import { EventType } from "@app/ee/services/audit-log/audit-log-types"; @@ -6,7 +7,6 @@ import { BadRequestError } from "@app/lib/errors"; import { writeLimit } from "@app/server/config/rateLimiter"; import { verifyAuth } from "@app/server/plugins/auth/verify-auth"; import { ActorType, AuthMode } from "@app/services/auth/auth-type"; -import { requestContext } from "@fastify/request-context"; export const registerAssumePrivilegeRouter = async (server: FastifyZodProvider) => { server.route({ diff --git a/backend/src/services/project-role/project-role-service.ts b/backend/src/services/project-role/project-role-service.ts index bace8839a..38c5f393a 100644 --- a/backend/src/services/project-role/project-role-service.ts +++ b/backend/src/services/project-role/project-role-service.ts @@ -248,6 +248,7 @@ export const projectRoleServiceFactory = ({ actorEmail: "" } : undefined; + if (impersonation?.actorType === ActorType.IDENTITY) { const identityDetails = await identityDAL.findById(impersonation.actorId); if (!identityDetails) throw new NotFoundError({ message: `Identity with ID ${impersonation.actorId} not found` }); @@ -258,6 +259,7 @@ export const projectRoleServiceFactory = ({ impersonation.actorName = `${userDetails?.firstName} ${userDetails?.lastName || ""}`; impersonation.actorEmail = userDetails?.email || ""; } + return { permissions: packRules(permission.rules), membership, impersonation }; };