Merge pull request #2432 from Infisical/fix/addressed-group-view-issue-in-approval-creation

fix: address group view issue encountered during policy creation
This commit is contained in:
Sheen
2024-09-16 19:40:03 +08:00
committed by GitHub
2 changed files with 9 additions and 4 deletions
@@ -152,7 +152,7 @@ export const groupProjectDALFactory = (db: TDbClient) => {
`${TableName.ProjectRoles}.id` `${TableName.ProjectRoles}.id`
) )
.select( .select(
db.ref("id").withSchema(TableName.GroupProjectMembership), db.ref("id").withSchema(TableName.UserGroupMembership),
db.ref("isGhost").withSchema(TableName.Users), db.ref("isGhost").withSchema(TableName.Users),
db.ref("username").withSchema(TableName.Users), db.ref("username").withSchema(TableName.Users),
db.ref("email").withSchema(TableName.Users), db.ref("email").withSchema(TableName.Users),
@@ -90,15 +90,20 @@ export const projectMembershipServiceFactory = ({
// projectMembers[0].project // projectMembers[0].project
if (includeGroupMembers) { if (includeGroupMembers) {
const groupMembers = await groupProjectDAL.findAllProjectGroupMembers(projectId); const groupMembers = await groupProjectDAL.findAllProjectGroupMembers(projectId);
const allMembers = [ const allMembers = [
...projectMembers.map((m) => ({ ...m, isGroupMember: false })), ...projectMembers.map((m) => ({ ...m, isGroupMember: false })),
...groupMembers.map((m) => ({ ...m, isGroupMember: true })) ...groupMembers.map((m) => ({ ...m, isGroupMember: true }))
]; ];
// Ensure the userId is unique // Ensure the userId is unique
const membersIds = new Set(allMembers.map((entity) => entity.user.id)); const uniqueMembers: typeof allMembers = [];
const uniqueMembers = allMembers.filter((entity) => membersIds.has(entity.user.id)); const addedUserIds = new Set<string>();
allMembers.forEach((member) => {
if (!addedUserIds.has(member.user.id)) {
uniqueMembers.push(member);
addedUserIds.add(member.user.id);
}
});
return uniqueMembers; return uniqueMembers;
} }