fix(docker/networks): show correct resource control data [EE-3401] (#7060)

feat/EE-3079/edge-stack-logs
Chaim Lev-Ari 2022-06-17 19:21:41 +03:00 committed by GitHub
parent 18252ab854
commit 92eaa02156
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 20 additions and 15 deletions

View File

@ -1,7 +1,5 @@
import { import { AccessControlFormData } from '@/portainer/access-control/types';
AccessControlFormData, import { PortainerMetadata } from '@/react/docker/types';
ResourceControlResponse,
} from '@/portainer/access-control/types';
import { PortMapping } from './ContainerInstances/CreateContainerInstanceForm/PortsMappingField'; import { PortMapping } from './ContainerInstances/CreateContainerInstanceForm/PortsMappingField';
@ -21,10 +19,6 @@ export interface ContainerInstanceFormValues {
accessControl: AccessControlFormData; accessControl: AccessControlFormData;
} }
interface PortainerMetadata {
ResourceControl: ResourceControlResponse;
}
interface Container { interface Container {
name: string; name: string;
properties: { properties: {

View File

@ -1,7 +1,6 @@
import { render } from '@/react-tools/test-utils'; import { render } from '@/react-tools/test-utils';
import { UserContext } from '@/portainer/hooks/useUser'; import { UserContext } from '@/portainer/hooks/useUser';
import { UserViewModel } from '@/portainer/models/user'; import { UserViewModel } from '@/portainer/models/user';
import { ResourceControlOwnership } from '@/portainer/access-control/types';
import { DockerNetwork } from '../types'; import { DockerNetwork } from '../types';
@ -113,9 +112,9 @@ function getNetwork(networkName: string): DockerNetwork {
}, },
], ],
TeamAccesses: [], TeamAccesses: [],
Ownership: ResourceControlOwnership.PUBLIC,
Public: true, Public: true,
System: false, System: false,
AdministratorsOnly: true,
}, },
}, },
Scope: 'local', Scope: 'local',

View File

@ -8,6 +8,7 @@ import { confirmDeletionAsync } from '@/portainer/services/modal.service/confirm
import { AccessControlPanel } from '@/portainer/access-control/AccessControlPanel/AccessControlPanel'; import { AccessControlPanel } from '@/portainer/access-control/AccessControlPanel/AccessControlPanel';
import { ResourceControlType } from '@/portainer/access-control/types'; import { ResourceControlType } from '@/portainer/access-control/types';
import { DockerContainer } from '@/docker/containers/types'; import { DockerContainer } from '@/docker/containers/types';
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
import { PageHeader } from '@@/PageHeader'; import { PageHeader } from '@@/PageHeader';
@ -51,6 +52,12 @@ export function NetworkDetailsView() {
return null; return null;
} }
const network = networkQuery.data;
const resourceControl = network.Portainer?.ResourceControl
? new ResourceControlViewModel(network.Portainer.ResourceControl)
: undefined;
return ( return (
<> <>
<PageHeader <PageHeader
@ -78,7 +85,7 @@ export function NetworkDetailsView() {
networkId, networkId,
]) ])
} }
resourceControl={networkQuery.data.Portainer?.ResourceControl} resourceControl={resourceControl}
resourceType={ResourceControlType.Network} resourceType={ResourceControlType.Network}
disableOwnershipChange={isSystemNetwork(networkQuery.data.Name)} disableOwnershipChange={isSystemNetwork(networkQuery.data.Name)}
resourceId={networkId} resourceId={networkId}

View File

@ -1,4 +1,4 @@
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel'; import { PortainerMetadata } from '@/react/docker/types';
import { ContainerId } from '../containers/types'; import { ContainerId } from '../containers/types';
@ -44,7 +44,7 @@ export interface DockerNetwork {
Driver: string; Driver: string;
Options: IpamOptions; Options: IpamOptions;
}; };
Portainer: { ResourceControl?: ResourceControlViewModel }; Portainer?: PortainerMetadata;
Options: NetworkOptions; Options: NetworkOptions;
Containers: NetworkResponseContainers; Containers: NetworkResponseContainers;
} }

View File

@ -33,11 +33,11 @@ export class ResourceControlViewModel {
this.TeamAccesses = data.TeamAccesses; this.TeamAccesses = data.TeamAccesses;
this.Public = data.Public; this.Public = data.Public;
this.System = data.System; this.System = data.System;
this.Ownership = determineOwnership(this); this.Ownership = determineOwnership(data);
} }
} }
function determineOwnership(resourceControl: ResourceControlViewModel) { function determineOwnership(resourceControl: ResourceControlResponse) {
if (resourceControl.Public) { if (resourceControl.Public) {
return ResourceControlOwnership.PUBLIC; return ResourceControlOwnership.PUBLIC;
} }

View File

@ -0,0 +1,5 @@
import { ResourceControlResponse } from '@/portainer/access-control/types';
export interface PortainerMetadata {
ResourceControl: ResourceControlResponse;
}