Updated the projects.ts controller
This commit is contained in:
parent
079202205e
commit
9ed4143560
@ -2,9 +2,13 @@ import { IProject, IProjectPlan, Project } from "@models/Project";
|
||||
import { encryptClearField } from "@utils/decryption";
|
||||
import { Types } from "mongoose";
|
||||
import crypto from "crypto";
|
||||
import { IKeyRole } from "@models/AccessKey";
|
||||
import { AccessKey, IKeyRole } from "@models/AccessKey";
|
||||
import { Member } from "@models/Member";
|
||||
import { planLimits } from "../limits/plans";
|
||||
import { License } from "@models/License";
|
||||
import { Permission } from "@models/Permission";
|
||||
import { Group } from "@models/Group";
|
||||
import { MetaData } from "@models/MetaData";
|
||||
|
||||
export const checkProjectAccess = (requiredPermission: IKeyRole) => async (userId: string, projectId: string) => {
|
||||
if (!Types.ObjectId.isValid(projectId))
|
||||
@ -64,7 +68,12 @@ export const deleteProject = async (id: string, userId: string) => {
|
||||
const project = await checkProjectAccess(IKeyRole.ADMIN)(userId, id);
|
||||
if ("code" in project) return project;
|
||||
|
||||
// TODO: Delete all licenses, groups, permissions, ..
|
||||
License.deleteMany({ projectId: encryptClearField(project.id) });
|
||||
Permission.deleteMany({ projectId: encryptClearField(project.id) });
|
||||
Group.deleteMany({ projectId: encryptClearField(project.id) });
|
||||
MetaData.deleteMany({ projectId: encryptClearField(project.id) });
|
||||
AccessKey.deleteMany({ projectId: encryptClearField(project.id) });
|
||||
Member.deleteMany({ projectId: encryptClearField(project.id) });
|
||||
|
||||
await project?.deleteOne();
|
||||
};
|
||||
@ -75,8 +84,6 @@ export const patchProject = async (id: string, userId: string, config: {
|
||||
const project = await checkProjectAccess(IKeyRole.MANAGE)(userId, id);
|
||||
if ("code" in project) return project;
|
||||
|
||||
// TODO: Check if groups & permissions exist
|
||||
|
||||
await project.updateOne({ name: config.name, defaults: Object.assign(project.defaults, config.defaults) });
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user