catalog-model: make User spec.memberOf theoretically - but not practically - optional

Signed-off-by: Fredrik Adelöw <freben@gmail.com>
This commit is contained in:
Fredrik Adelöw
2022-03-15 15:06:35 +01:00
parent 2d63d04743
commit 132189e466
9 changed files with 35 additions and 7 deletions
@@ -58,7 +58,10 @@ export function assignGroupsToUsers(
for (const [groupName, userNames] of groupMemberUsers.entries()) {
for (const userName of userNames) {
const user = usersByName.get(userName);
if (user && !user.spec.memberOf.includes(groupName)) {
if (user && !user.spec.memberOf?.includes(groupName)) {
if (!user.spec.memberOf) {
user.spec.memberOf = [];
}
user.spec.memberOf.push(groupName);
}
}
@@ -74,7 +77,7 @@ export function buildMemberOf(groups: GroupEntity[], users: UserEntity[]) {
const transitiveMemberOf = new Set<string>();
const todo = [
...user.spec.memberOf,
...(user.spec.memberOf ?? []),
...groups
.filter(g => g.spec.members?.includes(user.metadata.name))
.map(g => g.metadata.name),
@@ -61,7 +61,7 @@ export function buildMemberOf(groups: GroupEntity[], users: UserEntity[]) {
const transitiveMemberOf = new Set<string>();
const todo = [
...user.spec.memberOf,
...(user.spec.memberOf ?? []),
...groups
.filter(g => g.spec.members?.includes(user.metadata.name))
.map(g => g.metadata.name),
@@ -61,7 +61,7 @@ export function buildMemberOf(groups: GroupEntity[], users: UserEntity[]) {
const transitiveMemberOf = new Set<string>();
const todo = [
...user.spec.memberOf,
...(user.spec.memberOf ?? []),
...groups
.filter(g => g.spec.members?.includes(user.metadata.name))
.map(g => g.metadata.name),
@@ -507,6 +507,9 @@ export function resolveRelations(
retrieveItems(groupMemberOf, id).forEach(p => {
const parentGroup = groupMap.get(p);
if (parentGroup) {
if (!user.spec.memberOf) {
user.spec.memberOf = [];
}
user.spec.memberOf.push(stringifyEntityRef(parentGroup));
}
});
@@ -118,7 +118,7 @@ const getQueryParams = (
};
if (owner.kind === 'User') {
const user = owner as UserEntity;
filters.owners = [...filters.owners, ...user.spec.memberOf];
filters.owners = [...filters.owners, ...(user.spec.memberOf ?? [])];
}
const queryParams = qs.stringify(
{