mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-04 19:26:19 +00:00
Update service-token-service.ts
This commit is contained in:
@@ -13,6 +13,7 @@ import { BadRequestError, UnauthorizedError } from "@app/lib/errors";
|
|||||||
|
|
||||||
import { ActorType } from "../auth/auth-type";
|
import { ActorType } from "../auth/auth-type";
|
||||||
import { TProjectEnvDALFactory } from "../project-env/project-env-dal";
|
import { TProjectEnvDALFactory } from "../project-env/project-env-dal";
|
||||||
|
import { TUserDALFactory } from "../user/user-dal";
|
||||||
import { TServiceTokenDALFactory } from "./service-token-dal";
|
import { TServiceTokenDALFactory } from "./service-token-dal";
|
||||||
import {
|
import {
|
||||||
TCreateServiceTokenDTO,
|
TCreateServiceTokenDTO,
|
||||||
@@ -23,6 +24,7 @@ import {
|
|||||||
|
|
||||||
type TServiceTokenServiceFactoryDep = {
|
type TServiceTokenServiceFactoryDep = {
|
||||||
serviceTokenDAL: TServiceTokenDALFactory;
|
serviceTokenDAL: TServiceTokenDALFactory;
|
||||||
|
userDAL: TUserDALFactory;
|
||||||
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
permissionService: Pick<TPermissionServiceFactory, "getProjectPermission">;
|
||||||
projectEnvDAL: Pick<TProjectEnvDALFactory, "findBySlugs">;
|
projectEnvDAL: Pick<TProjectEnvDALFactory, "findBySlugs">;
|
||||||
};
|
};
|
||||||
@@ -31,6 +33,7 @@ export type TServiceTokenServiceFactory = ReturnType<typeof serviceTokenServiceF
|
|||||||
|
|
||||||
export const serviceTokenServiceFactory = ({
|
export const serviceTokenServiceFactory = ({
|
||||||
serviceTokenDAL,
|
serviceTokenDAL,
|
||||||
|
userDAL,
|
||||||
permissionService,
|
permissionService,
|
||||||
projectEnvDAL
|
projectEnvDAL
|
||||||
}: TServiceTokenServiceFactoryDep) => {
|
}: TServiceTokenServiceFactoryDep) => {
|
||||||
@@ -51,14 +54,14 @@ export const serviceTokenServiceFactory = ({
|
|||||||
ProjectPermissionActions.Create,
|
ProjectPermissionActions.Create,
|
||||||
ProjectPermissionSub.ServiceTokens
|
ProjectPermissionSub.ServiceTokens
|
||||||
);
|
);
|
||||||
|
|
||||||
scopes.forEach(({ environment, secretPath }) => {
|
scopes.forEach(({ environment, secretPath }) => {
|
||||||
ForbiddenError.from(permission).throwUnlessCan(
|
ForbiddenError.from(permission).throwUnlessCan(
|
||||||
ProjectPermissionActions.Create,
|
ProjectPermissionActions.Create,
|
||||||
subject(ProjectPermissionSub.Secrets, { environment, secretPath })
|
subject(ProjectPermissionSub.Secrets, { environment, secretPath })
|
||||||
);
|
);
|
||||||
})
|
});
|
||||||
|
|
||||||
const appCfg = getConfig();
|
const appCfg = getConfig();
|
||||||
|
|
||||||
// validates env
|
// validates env
|
||||||
@@ -119,7 +122,10 @@ export const serviceTokenServiceFactory = ({
|
|||||||
const serviceToken = await serviceTokenDAL.findById(actorId);
|
const serviceToken = await serviceTokenDAL.findById(actorId);
|
||||||
if (!serviceToken) throw new BadRequestError({ message: "Token not found" });
|
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 ({
|
const getProjectServiceTokens = async ({
|
||||||
|
|||||||
Reference in New Issue
Block a user