feat: resolved project membership auto adding to orgnization

This commit is contained in:
=
2025-11-05 23:54:34 +05:30
parent 839b0ede83
commit 977694d367
2 changed files with 14 additions and 10 deletions

View File

@@ -2,6 +2,7 @@ import { z } from "zod";
import {
AccessScope,
OrgMembershipRole,
ProjectMembershipRole,
ProjectMembershipsSchema,
ProjectUserMembershipRolesSchema,
@@ -266,6 +267,19 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider
onRequest: verifyAuth([AuthMode.JWT, AuthMode.API_KEY, AuthMode.IDENTITY_ACCESS_TOKEN]),
handler: async (req) => {
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({
permission: req.permission,
scopeData: {

View File

@@ -25,14 +25,12 @@ import {
useProject
} from "@app/context";
import {
useAddUsersToOrg,
useAddUserToWsNonE2EE,
useGetOrgUsers,
useGetProjectRoles,
useGetWorkspaceUsers
} from "@app/hooks/api";
import { ProjectVersion } from "@app/hooks/api/projects/types";
import { ProjectMembershipRole } from "@app/hooks/api/roles/types";
import { UsePopUpState } from "@app/hooks/usePopUp";
const addMemberFormSchema = z.object({
@@ -86,7 +84,6 @@ export const AddMemberModal = ({ popUp, handlePopUpToggle }: Props) => {
defaultValues: { orgMemberships: [], projectRoleSlugs: [] }
});
const { mutateAsync: addMemberToOrg } = useAddUsersToOrg();
const { mutateAsync: addUserToProject } = useAddUserToWsNonE2EE();
useEffect(() => {
@@ -140,13 +137,6 @@ export const AddMemberModal = ({ popUp, handlePopUpToggle }: Props) => {
return;
}
if (newInvitees.length) {
await addMemberToOrg({
inviteeEmails: newInvitees,
organizationId: orgId,
organizationRoleSlug: ProjectMembershipRole.Member // only applies to new invites
});
}
if (newInvitees.length || inviteeEmails.length) {
await addUserToProject({
usernames: [...inviteeEmails, ...newInvitees],