mirror of https://github.com/portainer/portainer
fix(docker/networks): show correct resource control data [EE-3401] (#7060)
parent
18252ab854
commit
92eaa02156
|
@ -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: {
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
import { ResourceControlResponse } from '@/portainer/access-control/types';
|
||||||
|
|
||||||
|
export interface PortainerMetadata {
|
||||||
|
ResourceControl: ResourceControlResponse;
|
||||||
|
}
|
Loading…
Reference in New Issue