From 4b9f409ea5886462e804604cc779889eebc8bdd7 Mon Sep 17 00:00:00 2001 From: Daniel Hougaard Date: Tue, 25 Mar 2025 07:12:56 +0400 Subject: [PATCH] fix: scim improvements and ui fixes --- backend/src/ee/services/scim/scim-service.ts | 9 ++++++- .../OrgMembersSection/OrgMembersTable.tsx | 4 +-- .../MembersTab/components/AddMemberModal.tsx | 25 +++++++++++++++++-- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/backend/src/ee/services/scim/scim-service.ts b/backend/src/ee/services/scim/scim-service.ts index c9f2837df..01c1a86ea 100644 --- a/backend/src/ee/services/scim/scim-service.ts +++ b/backend/src/ee/services/scim/scim-service.ts @@ -583,6 +583,8 @@ export const scimServiceFactory = ({ const serverCfg = await getServerCfg(); await userDAL.transaction(async (tx) => { + const { role, roleId } = await getDefaultOrgMembershipRole(org.defaultMembershipRole); + await userAliasDAL.update( { orgId, @@ -594,10 +596,15 @@ export const scimServiceFactory = ({ }, tx ); + await orgMembershipDAL.updateById( membership.id, { - isActive: active + isActive: active, + ...(active && { + role, + roleId + }) }, tx ); diff --git a/frontend/src/pages/organization/AccessManagementPage/components/OrgMembersTab/components/OrgMembersSection/OrgMembersTable.tsx b/frontend/src/pages/organization/AccessManagementPage/components/OrgMembersTab/components/OrgMembersSection/OrgMembersTable.tsx index ba59b8368..a79da885b 100644 --- a/frontend/src/pages/organization/AccessManagementPage/components/OrgMembersTab/components/OrgMembersSection/OrgMembersTable.tsx +++ b/frontend/src/pages/organization/AccessManagementPage/components/OrgMembersTab/components/OrgMembersSection/OrgMembersTable.tsx @@ -258,7 +258,7 @@ export const OrgMembersTable = ({ handlePopUpOpen, setCompleteInviteLinks }: Pro
- Email + Username { e.stopPropagation(); - if (currentOrg?.scimEnabled) { + if (currentOrg?.scimEnabled && isActive) { createNotification({ text: "You cannot manage users from Infisical when org-level auth is enforced for your organization", type: "error" diff --git a/frontend/src/pages/project/AccessControlPage/components/MembersTab/components/AddMemberModal.tsx b/frontend/src/pages/project/AccessControlPage/components/MembersTab/components/AddMemberModal.tsx index 9afedcbc5..ff76e64f0 100644 --- a/frontend/src/pages/project/AccessControlPage/components/MembersTab/components/AddMemberModal.tsx +++ b/frontend/src/pages/project/AccessControlPage/components/MembersTab/components/AddMemberModal.tsx @@ -94,8 +94,29 @@ export const AddMemberModal = ({ popUp, handlePopUpToggle }: Props) => { }); } else { const inviteeEmails = selectedMembers - .map((member) => member?.user.username as string) - .filter(Boolean); + .map((member) => { + if (!member) return null; + + if (member.user.email) { + return member.user.email; + } + + if (member.user.username) { + return member.user.username; + } + + return null; + }) + .filter(Boolean) as string[]; + + if (inviteeEmails.length !== selectedMembers.length) { + createNotification({ + text: "Failed to add users to project. One or more users were invalid.", + type: "error" + }); + return; + } + if (inviteeEmails.length || newInvitees.length) { await addMembersToProject({ inviteeEmails: [...inviteeEmails, ...newInvitees],