Check if project is v2 before allowing a bot to be created

This commit is contained in:
Daniel Hougaard
2024-02-13 20:17:57 +01:00
parent 6fa11fe637
commit 8c3569a047
2 changed files with 11 additions and 1 deletions

View File

@@ -281,7 +281,7 @@ export const registerRoutes = async (
secretScanningDAL,
secretScanningQueue
});
const projectBotService = projectBotServiceFactory({ permissionService, projectBotDAL });
const projectBotService = projectBotServiceFactory({ permissionService, projectBotDAL, projectDAL });
const projectMembershipService = projectMembershipServiceFactory({
projectMembershipDAL,

View File

@@ -113,6 +113,16 @@ export const projectBotServiceFactory = ({
const { permission } = await permissionService.getProjectPermission(actor, actorId, bot.projectId, actorOrgId);
ForbiddenError.from(permission).throwUnlessCan(ProjectPermissionActions.Edit, ProjectPermissionSub.Integrations);
const project = await projectBotDAL.findProjectByBotId(botId);
if (!project) {
throw new BadRequestError({ message: "Failed to find project by bot ID" });
}
if (project.version === "v2") {
throw new BadRequestError({ message: "Failed to set bot active, project has a default bot enabled" });
}
if (isActive) {
if (!botKey?.nonce || !botKey?.encryptedKey) {
throw new BadRequestError({ message: "Failed to set bot active - missing bot key" });