|
1 | | -import {PolymorphicGroup, OktaUser, Tag, OktaGroupTagMap} from './api/apiSchemas'; |
| 1 | +import {PolymorphicGroup, OktaUser, Tag, OktaGroupTagMap, OktaUserGroupMember} from './api/apiSchemas'; |
2 | 2 |
|
3 | 3 | export const perPage: Array<number | {label: string; value: number}> = [5, 10, 20, 50, {label: 'All', value: -1}]; |
4 | 4 |
|
@@ -107,3 +107,28 @@ export function ownerCantAddSelf(tags: Tag[] | undefined, owner: boolean) { |
107 | 107 | export function ownerCantAddSelfGroups(groups: PolymorphicGroup[], owner: boolean) { |
108 | 108 | return ownerCantAddSelf(getActiveTagsFromGroups(groups), owner); |
109 | 109 | } |
| 110 | + |
| 111 | +export function sortGroupMembers( |
| 112 | + [aUserId, aUsers]: [string, Array<OktaUserGroupMember>], |
| 113 | + [bUserId, bUsers]: [string, Array<OktaUserGroupMember>], |
| 114 | +): number { |
| 115 | + let aEmail = aUsers[0].active_user?.email ?? ''; |
| 116 | + let bEmail = bUsers[0].active_user?.email ?? ''; |
| 117 | + return aEmail.localeCompare(bEmail); |
| 118 | +} |
| 119 | + |
| 120 | +export function sortGroupMemberRecords(users: Record<string, OktaUser>): OktaUser[] { |
| 121 | + const usersArray = Object.values(users); // Convert the object to an array |
| 122 | + usersArray.sort((a, b) => { |
| 123 | + const nameA = `${a.first_name} ${a.last_name}`; |
| 124 | + const nameB = `${b.first_name} ${b.last_name}`; |
| 125 | + return nameA.localeCompare(nameB); |
| 126 | + }); |
| 127 | + return usersArray; |
| 128 | +} |
| 129 | + |
| 130 | +export function groupMemberships( |
| 131 | + memberships: Array<OktaUserGroupMember> | undefined, |
| 132 | +): Record<string, Array<OktaUserGroupMember>> { |
| 133 | + return groupBy(memberships ?? [], (membership) => membership.active_user?.id ?? ''); |
| 134 | +} |
0 commit comments