mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-17 20:21:18 +00:00
feat: fixing ts
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
import { z } from "zod";
|
||||
|
||||
import {
|
||||
AccessScope,
|
||||
GroupProjectMembershipsSchema,
|
||||
GroupsSchema,
|
||||
ProjectMembershipRole,
|
||||
ProjectUserMembershipRolesSchema,
|
||||
TemporaryPermissionMode,
|
||||
UsersSchema
|
||||
} from "@app/db/schemas";
|
||||
import { EFilterReturnedUsers } from "@app/ee/services/group/group-types";
|
||||
@@ -13,7 +15,6 @@ import { ms } from "@app/lib/ms";
|
||||
import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
|
||||
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
|
||||
import { AuthMode } from "@app/services/auth/auth-type";
|
||||
import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types";
|
||||
|
||||
export const registerGroupProjectRouter = async (server: FastifyZodProvider) => {
|
||||
server.route({
|
||||
@@ -54,7 +55,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
|
||||
z.object({
|
||||
role: z.string(),
|
||||
isTemporary: z.literal(true),
|
||||
temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode),
|
||||
temporaryMode: z.nativeEnum(TemporaryPermissionMode),
|
||||
temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"),
|
||||
temporaryAccessStartTime: z.string().datetime()
|
||||
})
|
||||
@@ -73,17 +74,27 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const groupMembership = await server.services.groupProject.addGroupToProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
roles: req.body.roles || [{ role: req.body.role }],
|
||||
projectId: req.params.projectId,
|
||||
groupIdOrName: req.params.groupIdOrName
|
||||
// TODO(simp): name to id convertor
|
||||
const { membership: groupMembership } = await server.services.membershipGroup.createMembership({
|
||||
permission: req.permission,
|
||||
data: {
|
||||
groupId: req.params.groupIdOrName,
|
||||
roles: req.body.roles || [{ role: req.body.role, isTemporary: false }]
|
||||
},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { groupMembership };
|
||||
return {
|
||||
groupMembership: {
|
||||
...groupMembership,
|
||||
projectId: req.params.projectId,
|
||||
groupId: groupMembership.actorGroupId as string
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
@@ -115,7 +126,7 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
|
||||
z.object({
|
||||
role: z.string(),
|
||||
isTemporary: z.literal(true),
|
||||
temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode),
|
||||
temporaryMode: z.nativeEnum(TemporaryPermissionMode),
|
||||
temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"),
|
||||
temporaryAccessStartTime: z.string().datetime()
|
||||
})
|
||||
@@ -131,17 +142,22 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const roles = await server.services.groupProject.updateGroupInProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
projectId: req.params.projectId,
|
||||
groupId: req.params.groupId,
|
||||
roles: req.body.roles
|
||||
const { membership: groupMembership } = await server.services.membershipGroup.updateMembership({
|
||||
permission: req.permission,
|
||||
selector: {
|
||||
groupId: req.params.groupId
|
||||
},
|
||||
data: {
|
||||
roles: req.body.roles
|
||||
},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { roles };
|
||||
return { roles: groupMembership.roles.map((el) => ({ ...el, projectMembershipId: groupMembership.id })) };
|
||||
}
|
||||
});
|
||||
|
||||
@@ -172,16 +188,25 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const groupMembership = await server.services.groupProject.removeGroupFromProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
groupId: req.params.groupId,
|
||||
projectId: req.params.projectId
|
||||
const { membership: groupMembership } = await server.services.membershipGroup.deleteMembership({
|
||||
permission: req.permission,
|
||||
selector: {
|
||||
groupId: req.params.groupId
|
||||
},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { groupMembership };
|
||||
return {
|
||||
groupMembership: {
|
||||
...groupMembership,
|
||||
projectId: req.params.projectId,
|
||||
groupId: groupMembership.actorGroupId as string
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
@@ -233,15 +258,17 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const groupMemberships = await server.services.groupProject.listGroupsInProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
const { memberships: groupMemberships } = await server.services.membershipGroup.listMemberships({
|
||||
permission: req.permission,
|
||||
data: {},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { groupMemberships };
|
||||
return { groupMemberships: groupMemberships.map((el) => ({ ...el, groupId: el.actorGroupId as string })) };
|
||||
}
|
||||
});
|
||||
|
||||
@@ -292,15 +319,25 @@ export const registerGroupProjectRouter = async (server: FastifyZodProvider) =>
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const groupMembership = await server.services.groupProject.getGroupInProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
...req.params
|
||||
const { membership: groupMembership } = await server.services.membershipGroup.getMembershipByGroupId({
|
||||
permission: req.permission,
|
||||
selector: {
|
||||
groupId: req.params.groupId
|
||||
},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { groupMembership };
|
||||
return {
|
||||
groupMembership: {
|
||||
...groupMembership,
|
||||
projectId: req.params.projectId,
|
||||
groupId: groupMembership.actorGroupId as string
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import { z } from "zod";
|
||||
|
||||
import {
|
||||
AccessScope,
|
||||
GroupProjectMembershipsSchema,
|
||||
GroupsSchema,
|
||||
ProjectMembershipRole,
|
||||
ProjectUserMembershipRolesSchema,
|
||||
TemporaryPermissionMode,
|
||||
UsersSchema
|
||||
} from "@app/db/schemas";
|
||||
import { EFilterReturnedUsers } from "@app/ee/services/group/group-types";
|
||||
@@ -13,7 +15,6 @@ import { ms } from "@app/lib/ms";
|
||||
import { readLimit, writeLimit } from "@app/server/config/rateLimiter";
|
||||
import { verifyAuth } from "@app/server/plugins/auth/verify-auth";
|
||||
import { AuthMode } from "@app/services/auth/auth-type";
|
||||
import { ProjectUserMembershipTemporaryMode } from "@app/services/project-membership/project-membership-types";
|
||||
|
||||
export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodProvider) => {
|
||||
server.route({
|
||||
@@ -54,7 +55,7 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro
|
||||
z.object({
|
||||
role: z.string(),
|
||||
isTemporary: z.literal(true),
|
||||
temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode),
|
||||
temporaryMode: z.nativeEnum(TemporaryPermissionMode),
|
||||
temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"),
|
||||
temporaryAccessStartTime: z.string().datetime()
|
||||
})
|
||||
@@ -73,17 +74,26 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const groupMembership = await server.services.groupProject.addGroupToProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
roles: req.body.roles || [{ role: req.body.role }],
|
||||
projectId: req.params.projectId,
|
||||
groupIdOrName: req.params.groupIdOrName
|
||||
const { membership: groupMembership } = await server.services.membershipGroup.createMembership({
|
||||
permission: req.permission,
|
||||
data: {
|
||||
groupId: req.params.groupIdOrName,
|
||||
roles: req.body.roles || [{ role: req.body.role, isTemporary: false }]
|
||||
},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { groupMembership };
|
||||
return {
|
||||
groupMembership: {
|
||||
...groupMembership,
|
||||
projectId: req.params.projectId,
|
||||
groupId: groupMembership.actorGroupId as string
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
@@ -115,7 +125,7 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro
|
||||
z.object({
|
||||
role: z.string(),
|
||||
isTemporary: z.literal(true),
|
||||
temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode),
|
||||
temporaryMode: z.nativeEnum(TemporaryPermissionMode),
|
||||
temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"),
|
||||
temporaryAccessStartTime: z.string().datetime()
|
||||
})
|
||||
@@ -131,17 +141,22 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const roles = await server.services.groupProject.updateGroupInProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
projectId: req.params.projectId,
|
||||
groupId: req.params.groupId,
|
||||
roles: req.body.roles
|
||||
const { membership: groupMembership } = await server.services.membershipGroup.updateMembership({
|
||||
permission: req.permission,
|
||||
selector: {
|
||||
groupId: req.params.groupId
|
||||
},
|
||||
data: {
|
||||
roles: req.body.roles
|
||||
},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { roles };
|
||||
return { roles: groupMembership.roles.map((el) => ({ ...el, projectMembershipId: groupMembership.id })) };
|
||||
}
|
||||
});
|
||||
|
||||
@@ -172,16 +187,25 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const groupMembership = await server.services.groupProject.removeGroupFromProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
groupId: req.params.groupId,
|
||||
projectId: req.params.projectId
|
||||
const { membership: groupMembership } = await server.services.membershipGroup.deleteMembership({
|
||||
permission: req.permission,
|
||||
selector: {
|
||||
groupId: req.params.groupId
|
||||
},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { groupMembership };
|
||||
return {
|
||||
groupMembership: {
|
||||
...groupMembership,
|
||||
projectId: req.params.projectId,
|
||||
groupId: groupMembership.actorGroupId as string
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
@@ -233,15 +257,17 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const groupMemberships = await server.services.groupProject.listGroupsInProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
const { memberships: groupMemberships } = await server.services.membershipGroup.listMemberships({
|
||||
permission: req.permission,
|
||||
data: {},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { groupMemberships };
|
||||
return { groupMemberships: groupMemberships.map((el) => ({ ...el, groupId: el.actorGroupId as string })) };
|
||||
}
|
||||
});
|
||||
|
||||
@@ -292,15 +318,25 @@ export const registerDeprecatedGroupProjectRouter = async (server: FastifyZodPro
|
||||
}
|
||||
},
|
||||
handler: async (req) => {
|
||||
const groupMembership = await server.services.groupProject.getGroupInProject({
|
||||
actor: req.permission.type,
|
||||
actorId: req.permission.id,
|
||||
actorAuthMethod: req.permission.authMethod,
|
||||
actorOrgId: req.permission.orgId,
|
||||
...req.params
|
||||
const { membership: groupMembership } = await server.services.membershipGroup.getMembershipByGroupId({
|
||||
permission: req.permission,
|
||||
selector: {
|
||||
groupId: req.params.groupId
|
||||
},
|
||||
scopeData: {
|
||||
scope: AccessScope.Project,
|
||||
orgId: req.permission.orgId,
|
||||
projectId: req.params.projectId
|
||||
}
|
||||
});
|
||||
|
||||
return { groupMembership };
|
||||
return {
|
||||
groupMembership: {
|
||||
...groupMembership,
|
||||
projectId: req.params.projectId,
|
||||
groupId: groupMembership.actorGroupId as string
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user