mirror of
https://github.com/portainer/portainer.git
synced 2025-07-23 07:19:41 +02:00
refactor(namespace): migrate namespace access view to react [r8s-141] (#87)
This commit is contained in:
parent
8ed7cd80cb
commit
e9fc6d5598
62 changed files with 1018 additions and 610 deletions
|
@ -0,0 +1,41 @@
|
|||
import { PortainerNamespaceAccessesConfigMap } from '@/react/kubernetes/configs/constants';
|
||||
import { User } from '@/portainer/users/types';
|
||||
import { Team } from '@/react/portainer/users/teams/types';
|
||||
import { Configuration } from '@/react/kubernetes/configs/types';
|
||||
|
||||
import { NamespaceAccess, NamespaceAccessesMap } from './types';
|
||||
|
||||
export function parseNamespaceAccesses(
|
||||
data: Configuration | null,
|
||||
namespaceName: string,
|
||||
users: User[],
|
||||
teams: Team[]
|
||||
) {
|
||||
if (!data) {
|
||||
return [];
|
||||
}
|
||||
const namespacesAccesses: NamespaceAccessesMap = JSON.parse(
|
||||
data?.Data?.[PortainerNamespaceAccessesConfigMap.accessKey] ?? '{}'
|
||||
);
|
||||
const userAccessesIds = Object.keys(
|
||||
namespacesAccesses[namespaceName]?.UserAccessPolicies ?? {}
|
||||
);
|
||||
const userAccesses: NamespaceAccess[] = users
|
||||
.filter((user) => userAccessesIds.includes(`${user.Id}`))
|
||||
.map((user) => ({
|
||||
id: user.Id,
|
||||
name: user.Username,
|
||||
type: 'user',
|
||||
}));
|
||||
const teamAccessesIds = Object.keys(
|
||||
namespacesAccesses[namespaceName]?.TeamAccessPolicies ?? {}
|
||||
);
|
||||
const teamAccesses: NamespaceAccess[] = teams
|
||||
.filter((team) => teamAccessesIds.includes(`${team.Id}`))
|
||||
.map((team) => ({
|
||||
id: team.Id,
|
||||
name: team.Name,
|
||||
type: 'team',
|
||||
}));
|
||||
return [...userAccesses, ...teamAccesses];
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue