From fc8bd0470fe1d5f82c2dd129669cf48049f2866e Mon Sep 17 00:00:00 2001 From: Daniel Hougaard <62331820+DanielHougaard@users.noreply.github.com> Date: Mon, 29 Jan 2024 14:34:32 +0400 Subject: [PATCH] Update service-token-service.ts --- .../service-token/service-token-service.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/backend/src/services/service-token/service-token-service.ts b/backend/src/services/service-token/service-token-service.ts index 48ead50e6f..09f5e83a00 100644 --- a/backend/src/services/service-token/service-token-service.ts +++ b/backend/src/services/service-token/service-token-service.ts @@ -13,6 +13,7 @@ import { BadRequestError, UnauthorizedError } from "@app/lib/errors"; import { ActorType } from "../auth/auth-type"; import { TProjectEnvDALFactory } from "../project-env/project-env-dal"; +import { TUserDALFactory } from "../user/user-dal"; import { TServiceTokenDALFactory } from "./service-token-dal"; import { TCreateServiceTokenDTO, @@ -23,6 +24,7 @@ import { type TServiceTokenServiceFactoryDep = { serviceTokenDAL: TServiceTokenDALFactory; + userDAL: TUserDALFactory; permissionService: Pick; projectEnvDAL: Pick; }; @@ -31,6 +33,7 @@ export type TServiceTokenServiceFactory = ReturnType { @@ -51,14 +54,14 @@ export const serviceTokenServiceFactory = ({ ProjectPermissionActions.Create, ProjectPermissionSub.ServiceTokens ); - + scopes.forEach(({ environment, secretPath }) => { ForbiddenError.from(permission).throwUnlessCan( ProjectPermissionActions.Create, subject(ProjectPermissionSub.Secrets, { environment, secretPath }) ); - }) - + }); + const appCfg = getConfig(); // validates env @@ -119,7 +122,10 @@ export const serviceTokenServiceFactory = ({ const serviceToken = await serviceTokenDAL.findById(actorId); if (!serviceToken) throw new BadRequestError({ message: "Token not found" }); - return serviceToken; + const serviceTokenUser = await userDAL.findById(serviceToken.createdBy); + if (!serviceTokenUser) throw new BadRequestError({ message: "Server token user not found" }); + + return { serviceToken, user: serviceTokenUser }; }; const getProjectServiceTokens = async ({