mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-10-06 12:27:31 +00:00
Merge pull request #4814 from Infisical/patch/membership-project
feat: resolved project membership auto adding to organization
This commit is contained in:
@@ -2,6 +2,7 @@ import { z } from "zod";
|
|||||||
|
|
||||||
import {
|
import {
|
||||||
AccessScope,
|
AccessScope,
|
||||||
|
OrgMembershipRole,
|
||||||
ProjectMembershipRole,
|
ProjectMembershipRole,
|
||||||
ProjectMembershipsSchema,
|
ProjectMembershipsSchema,
|
||||||
ProjectUserMembershipRolesSchema,
|
ProjectUserMembershipRolesSchema,
|
||||||
@@ -266,6 +267,19 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider
|
|||||||
onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]),
|
onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]),
|
||||||
handler: async (req) => {
|
handler: async (req) => {
|
||||||
const usernamesAndEmails = [...req.body.emails, ...req.body.usernames];
|
const usernamesAndEmails = [...req.body.emails, ...req.body.usernames];
|
||||||
|
|
||||||
|
await server.services.membershipUser.createMembership({
|
||||||
|
permission: req.permission,
|
||||||
|
scopeData: {
|
||||||
|
scope: AccessScope.Organization,
|
||||||
|
orgId: req.permission.orgId
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
roles: [{ isTemporary: false, role: OrgMembershipRole.NoAccess }],
|
||||||
|
usernames: usernamesAndEmails
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const { memberships } = await server.services.membershipUser.createMembership({
|
const { memberships } = await server.services.membershipUser.createMembership({
|
||||||
permission: req.permission,
|
permission: req.permission,
|
||||||
scopeData: {
|
scopeData: {
|
||||||
|
|||||||
-10
@@ -25,14 +25,12 @@ import {
|
|||||||
useProject
|
useProject
|
||||||
} from "@app/context";
|
} from "@app/context";
|
||||||
import {
|
import {
|
||||||
useAddUsersToOrg,
|
|
||||||
useAddUserToWsNonE2EE,
|
useAddUserToWsNonE2EE,
|
||||||
useGetOrgUsers,
|
useGetOrgUsers,
|
||||||
useGetProjectRoles,
|
useGetProjectRoles,
|
||||||
useGetWorkspaceUsers
|
useGetWorkspaceUsers
|
||||||
} from "@app/hooks/api";
|
} from "@app/hooks/api";
|
||||||
import { ProjectVersion } from "@app/hooks/api/projects/types";
|
import { ProjectVersion } from "@app/hooks/api/projects/types";
|
||||||
import { ProjectMembershipRole } from "@app/hooks/api/roles/types";
|
|
||||||
import { UsePopUpState } from "@app/hooks/usePopUp";
|
import { UsePopUpState } from "@app/hooks/usePopUp";
|
||||||
|
|
||||||
const addMemberFormSchema = z.object({
|
const addMemberFormSchema = z.object({
|
||||||
@@ -86,7 +84,6 @@ export const AddMemberModal = ({ popUp, handlePopUpToggle }: Props) => {
|
|||||||
defaultValues: { orgMemberships: [], projectRoleSlugs: [] }
|
defaultValues: { orgMemberships: [], projectRoleSlugs: [] }
|
||||||
});
|
});
|
||||||
|
|
||||||
const { mutateAsync: addMemberToOrg } = useAddUsersToOrg();
|
|
||||||
const { mutateAsync: addUserToProject } = useAddUserToWsNonE2EE();
|
const { mutateAsync: addUserToProject } = useAddUserToWsNonE2EE();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@@ -140,13 +137,6 @@ export const AddMemberModal = ({ popUp, handlePopUpToggle }: Props) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newInvitees.length) {
|
|
||||||
await addMemberToOrg({
|
|
||||||
inviteeEmails: newInvitees,
|
|
||||||
organizationId: orgId,
|
|
||||||
organizationRoleSlug: ProjectMembershipRole.Member // only applies to new invites
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (newInvitees.length || inviteeEmails.length) {
|
if (newInvitees.length || inviteeEmails.length) {
|
||||||
await addUserToProject({
|
await addUserToProject({
|
||||||
usernames: [...inviteeEmails, ...newInvitees],
|
usernames: [...inviteeEmails, ...newInvitees],
|
||||||
|
|||||||
Reference in New Issue
Block a user