mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 16:27:46 +00:00
fix(secret-folders): delete folder by ID
This commit is contained in:
@@ -478,12 +478,25 @@ export const secretFolderServiceFactory = ({
|
|||||||
parentId: string;
|
parentId: string;
|
||||||
idOrName: string;
|
idOrName: string;
|
||||||
}) => {
|
}) => {
|
||||||
const targetFolder = await folderDAL.findOne({
|
let targetFolder = await folderDAL
|
||||||
envId: env.id,
|
.findOne({
|
||||||
[uuidValidate(idOrName) ? "id" : "name"]: idOrName,
|
envId: env.id,
|
||||||
parentId,
|
name: idOrName,
|
||||||
isReserved: false
|
parentId,
|
||||||
});
|
isReserved: false
|
||||||
|
})
|
||||||
|
.catch(() => null);
|
||||||
|
|
||||||
|
if (!targetFolder) {
|
||||||
|
targetFolder = await folderDAL
|
||||||
|
.findOne({
|
||||||
|
envId: env.id,
|
||||||
|
id: idOrName,
|
||||||
|
parentId,
|
||||||
|
isReserved: false
|
||||||
|
})
|
||||||
|
.catch(() => null);
|
||||||
|
}
|
||||||
|
|
||||||
if (!targetFolder) {
|
if (!targetFolder) {
|
||||||
throw new NotFoundError({ message: `Target folder not found` });
|
throw new NotFoundError({ message: `Target folder not found` });
|
||||||
@@ -589,18 +602,40 @@ export const secretFolderServiceFactory = ({
|
|||||||
|
|
||||||
await $checkFolderPolicy({ projectId, env, parentId: parentFolder.id, idOrName });
|
await $checkFolderPolicy({ projectId, env, parentId: parentFolder.id, idOrName });
|
||||||
|
|
||||||
|
let folderToDelete = await folderDAL
|
||||||
|
.findOne({
|
||||||
|
envId: env.id,
|
||||||
|
name: idOrName,
|
||||||
|
parentId: parentFolder.id,
|
||||||
|
isReserved: false
|
||||||
|
})
|
||||||
|
.catch(() => null);
|
||||||
|
|
||||||
|
if (!folderToDelete) {
|
||||||
|
folderToDelete = await folderDAL
|
||||||
|
.findOne({
|
||||||
|
envId: env.id,
|
||||||
|
id: idOrName,
|
||||||
|
parentId: parentFolder.id,
|
||||||
|
isReserved: false
|
||||||
|
})
|
||||||
|
.catch(() => null);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!folderToDelete) {
|
||||||
|
throw new NotFoundError({ message: `Folder with ID '${idOrName}' not found` });
|
||||||
|
}
|
||||||
|
|
||||||
const [doc] = await folderDAL.delete(
|
const [doc] = await folderDAL.delete(
|
||||||
{
|
{
|
||||||
envId: env.id,
|
envId: env.id,
|
||||||
[uuidValidate(idOrName) ? "id" : "name"]: idOrName,
|
id: folderToDelete.id,
|
||||||
parentId: parentFolder.id,
|
parentId: parentFolder.id,
|
||||||
isReserved: false
|
isReserved: false
|
||||||
},
|
},
|
||||||
tx
|
tx
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!doc) throw new NotFoundError({ message: `Failed to delete folder with ID '${idOrName}', not found` });
|
|
||||||
|
|
||||||
const folderVersions = await folderVersionDAL.findLatestFolderVersions([doc.id], tx);
|
const folderVersions = await folderVersionDAL.findLatestFolderVersions([doc.id], tx);
|
||||||
|
|
||||||
await folderCommitService.createCommit(
|
await folderCommitService.createCommit(
|
||||||
|
|||||||
Reference in New Issue
Block a user