mirror of https://github.com/portainer/portainer
refactor(app): move access-control components [EE-3441] (#7559)
parent
77c3f9131b
commit
d9cc7eda51
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlOwnership as RCO } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
angular.module('portainer.docker').directive('networkRowContent', [
|
angular.module('portainer.docker').directive('networkRowContent', [
|
||||||
function networkRowContent() {
|
function networkRowContent() {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
function b64DecodeUnicode(str) {
|
function b64DecodeUnicode(str) {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import _ from 'lodash-es';
|
import _ from 'lodash-es';
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
export function createStatus(statusText) {
|
export function createStatus(statusText) {
|
||||||
var status = _.toLower(statusText);
|
var status = _.toLower(statusText);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
export function NetworkViewModel(data) {
|
export function NetworkViewModel(data) {
|
||||||
this.Id = data.Id;
|
this.Id = data.Id;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
export function SecretViewModel(data) {
|
export function SecretViewModel(data) {
|
||||||
this.Id = data.ID;
|
this.Id = data.ID;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
export function ServiceViewModel(data, runningTasks, allTasks) {
|
export function ServiceViewModel(data, runningTasks, allTasks) {
|
||||||
this.Model = data;
|
this.Model = data;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
export function VolumeViewModel(data) {
|
export function VolumeViewModel(data) {
|
||||||
this.Id = data.Name;
|
this.Id = data.Name;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlType } from '@/portainer/access-control/types';
|
import { ResourceControlType } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
angular.module('portainer.docker').controller('ConfigController', [
|
angular.module('portainer.docker').controller('ConfigController', [
|
||||||
'$scope',
|
'$scope',
|
||||||
|
|
|
@ -2,8 +2,8 @@ import moment from 'moment';
|
||||||
import _ from 'lodash-es';
|
import _ from 'lodash-es';
|
||||||
import { PorImageRegistryModel } from 'Docker/models/porImageRegistry';
|
import { PorImageRegistryModel } from 'Docker/models/porImageRegistry';
|
||||||
import { confirmContainerDeletion } from '@/portainer/services/modal.service/prompt';
|
import { confirmContainerDeletion } from '@/portainer/services/modal.service/prompt';
|
||||||
import { FeatureId } from 'Portainer/feature-flags/enums';
|
import { FeatureId } from '@/portainer/feature-flags/enums';
|
||||||
import { ResourceControlType } from '@/portainer/access-control/types';
|
import { ResourceControlType } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
angular.module('portainer.docker').controller('ContainerController', [
|
angular.module('portainer.docker').controller('ContainerController', [
|
||||||
'$q',
|
'$q',
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlType } from '@/portainer/access-control/types';
|
import { ResourceControlType } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
angular.module('portainer.docker').controller('SecretController', [
|
angular.module('portainer.docker').controller('SecretController', [
|
||||||
'$scope',
|
'$scope',
|
||||||
|
|
|
@ -21,7 +21,7 @@ import _ from 'lodash-es';
|
||||||
|
|
||||||
import { PorImageRegistryModel } from 'Docker/models/porImageRegistry';
|
import { PorImageRegistryModel } from 'Docker/models/porImageRegistry';
|
||||||
import * as envVarsUtils from '@/portainer/helpers/env-vars';
|
import * as envVarsUtils from '@/portainer/helpers/env-vars';
|
||||||
import { ResourceControlType } from '@/portainer/access-control/types';
|
import { ResourceControlType } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
angular.module('portainer.docker').controller('ServiceController', [
|
angular.module('portainer.docker').controller('ServiceController', [
|
||||||
'$q',
|
'$q',
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlType } from '@/portainer/access-control/types';
|
import { ResourceControlType } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
angular.module('portainer.docker').controller('VolumeController', [
|
angular.module('portainer.docker').controller('VolumeController', [
|
||||||
'$scope',
|
'$scope',
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
import { AccessControlFormData } from '@/portainer/components/accessControlForm/porAccessControlFormModel';
|
import { AccessControlFormData } from '@/portainer/components/accessControlForm/porAccessControlFormModel';
|
||||||
import { isBE } from '@/portainer/feature-flags/feature-flags.service';
|
import { isBE } from '@/portainer/feature-flags/feature-flags.service';
|
||||||
import { getTemplateVariables, intersectVariables } from '@/react/portainer/custom-templates/components/utils';
|
import { getTemplateVariables, intersectVariables } from '@/react/portainer/custom-templates/components/utils';
|
||||||
|
|
|
@ -7,7 +7,6 @@ import featureFlagModule from './feature-flags';
|
||||||
import userActivityModule from './user-activity';
|
import userActivityModule from './user-activity';
|
||||||
import servicesModule from './services';
|
import servicesModule from './services';
|
||||||
import homeModule from './home';
|
import homeModule from './home';
|
||||||
import { accessControlModule } from './access-control';
|
|
||||||
import { reactModule } from './react';
|
import { reactModule } from './react';
|
||||||
import { sidebarModule } from './react/views/sidebar';
|
import { sidebarModule } from './react/views/sidebar';
|
||||||
import environmentsModule from './environments';
|
import environmentsModule from './environments';
|
||||||
|
@ -39,7 +38,6 @@ angular
|
||||||
userActivityModule,
|
userActivityModule,
|
||||||
'portainer.shared.datatable',
|
'portainer.shared.datatable',
|
||||||
servicesModule,
|
servicesModule,
|
||||||
accessControlModule,
|
|
||||||
reactModule,
|
reactModule,
|
||||||
sidebarModule,
|
sidebarModule,
|
||||||
environmentsModule,
|
environmentsModule,
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
import angular from 'angular';
|
|
||||||
|
|
||||||
import { AccessControlPanelAngular } from './AccessControlPanel/AccessControlPanel';
|
|
||||||
|
|
||||||
export const accessControlModule = angular
|
|
||||||
.module('portainer.access-control', [])
|
|
||||||
.component('accessControlPanel', AccessControlPanelAngular).name;
|
|
|
@ -1,5 +1,5 @@
|
||||||
import _ from 'lodash-es';
|
import _ from 'lodash-es';
|
||||||
import { ResourceControlOwnership as RCO } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
angular.module('portainer.app').controller('porAccessControlFormController', [
|
angular.module('portainer.app').controller('porAccessControlFormController', [
|
||||||
'$q',
|
'$q',
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlOwnership as RCO } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated use only for angularjs components. For react components use ./model.ts
|
* @deprecated use only for angularjs components. For react components use ./model.ts
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import _ from 'lodash-es';
|
import _ from 'lodash-es';
|
||||||
import './datatable.css';
|
import './datatable.css';
|
||||||
import { ResourceControlOwnership as RCO } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
function isBetween(value, a, b) {
|
function isBetween(value, a, b) {
|
||||||
return (value >= a && value <= b) || (value >= b && value <= a);
|
return (value >= a && value <= b) || (value >= b && value <= a);
|
||||||
|
|
|
@ -3,7 +3,7 @@ import _ from 'lodash-es';
|
||||||
import filesize from 'filesize';
|
import filesize from 'filesize';
|
||||||
|
|
||||||
import { Eye, EyeOff, Users } from 'react-feather';
|
import { Eye, EyeOff, Users } from 'react-feather';
|
||||||
import { ResourceControlOwnership as RCO } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
export function truncateLeftRight(text, max, left, right) {
|
export function truncateLeftRight(text, max, left, right) {
|
||||||
max = isNaN(max) ? 50 : max;
|
max = isNaN(max) ? 50 : max;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import _ from 'lodash-es';
|
import _ from 'lodash-es';
|
||||||
import angular from 'angular';
|
import angular from 'angular';
|
||||||
import { ResourceControlOwnership as RCO } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';
|
||||||
import { ResourceControlOwnershipParameters } from '../models/resourceControl/resourceControlOwnershipParameters';
|
import { ResourceControlOwnershipParameters } from '../models/resourceControl/resourceControlOwnershipParameters';
|
||||||
|
|
||||||
class ResourceControlHelper {
|
class ResourceControlHelper {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
export function StackViewModel(data) {
|
export function StackViewModel(data) {
|
||||||
this.Id = data.Id;
|
this.Id = data.Id;
|
||||||
|
|
|
@ -4,6 +4,7 @@ import { react2angular } from 'react2angular';
|
||||||
import { r2a } from '@/react-tools/react2angular';
|
import { r2a } from '@/react-tools/react2angular';
|
||||||
import { Icon } from '@/react/components/Icon';
|
import { Icon } from '@/react/components/Icon';
|
||||||
import { ReactQueryDevtoolsWrapper } from '@/react/components/ReactQueryDevtoolsWrapper';
|
import { ReactQueryDevtoolsWrapper } from '@/react/components/ReactQueryDevtoolsWrapper';
|
||||||
|
import { AccessControlPanel } from '@/react/portainer/access-control';
|
||||||
|
|
||||||
import { PageHeader } from '@@/PageHeader';
|
import { PageHeader } from '@@/PageHeader';
|
||||||
import { TagSelector } from '@@/TagSelector';
|
import { TagSelector } from '@@/TagSelector';
|
||||||
|
@ -88,4 +89,14 @@ export const componentsModule = angular
|
||||||
.component(
|
.component(
|
||||||
'boxSelectorBadgeIcon',
|
'boxSelectorBadgeIcon',
|
||||||
react2angular(BadgeIcon, ['featherIcon', 'icon'])
|
react2angular(BadgeIcon, ['featherIcon', 'icon'])
|
||||||
|
)
|
||||||
|
.component(
|
||||||
|
'accessControlPanel',
|
||||||
|
r2a(AccessControlPanel, [
|
||||||
|
'disableOwnershipChange',
|
||||||
|
'onUpdateSuccess',
|
||||||
|
'resourceControl',
|
||||||
|
'resourceId',
|
||||||
|
'resourceType',
|
||||||
|
])
|
||||||
).name;
|
).name;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlOwnership as RCO } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership as RCO } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
angular.module('portainer.app').factory('FormValidator', [
|
angular.module('portainer.app').factory('FormValidator', [
|
||||||
function FormValidatorFactory() {
|
function FormValidatorFactory() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
import { AccessControlFormData } from 'Portainer/components/accessControlForm/porAccessControlFormModel';
|
import { AccessControlFormData } from 'Portainer/components/accessControlForm/porAccessControlFormModel';
|
||||||
import { getTemplateVariables, intersectVariables } from '@/react/portainer/custom-templates/components/utils';
|
import { getTemplateVariables, intersectVariables } from '@/react/portainer/custom-templates/components/utils';
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlType } from '@/portainer/access-control/types';
|
import { ResourceControlType } from '@/react/portainer/access-control/types';
|
||||||
import { AccessControlFormData } from 'Portainer/components/accessControlForm/porAccessControlFormModel';
|
import { AccessControlFormData } from 'Portainer/components/accessControlForm/porAccessControlFormModel';
|
||||||
import { FeatureId } from 'Portainer/feature-flags/enums';
|
import { FeatureId } from 'Portainer/feature-flags/enums';
|
||||||
import { getEnvironments } from '@/portainer/environments/environment.service';
|
import { getEnvironments } from '@/portainer/environments/environment.service';
|
||||||
|
|
|
@ -4,7 +4,7 @@ import { useRouter } from '@uirouter/react';
|
||||||
import { ContainerInstanceFormValues } from '@/react/azure/types';
|
import { ContainerInstanceFormValues } from '@/react/azure/types';
|
||||||
import * as notifications from '@/portainer/services/notifications';
|
import * as notifications from '@/portainer/services/notifications';
|
||||||
import { useUser } from '@/portainer/hooks/useUser';
|
import { useUser } from '@/portainer/hooks/useUser';
|
||||||
import { AccessControlForm } from '@/portainer/access-control/AccessControlForm';
|
import { AccessControlForm } from '@/react/portainer/access-control/AccessControlForm';
|
||||||
import { useEnvironmentId } from '@/portainer/hooks/useEnvironmentId';
|
import { useEnvironmentId } from '@/portainer/hooks/useEnvironmentId';
|
||||||
|
|
||||||
import { FormControl } from '@@/form-components/FormControl';
|
import { FormControl } from '@@/form-components/FormControl';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { object, string, number, boolean } from 'yup';
|
import { object, string, number, boolean } from 'yup';
|
||||||
|
|
||||||
import { validationSchema as accessControlSchema } from '@/portainer/access-control/AccessControlForm/AccessControlForm.validation';
|
import { validationSchema as accessControlSchema } from '@/react/portainer/access-control/AccessControlForm/AccessControlForm.validation';
|
||||||
|
|
||||||
import { validationSchema as portsSchema } from './PortsMappingField.validation';
|
import { validationSchema as portsSchema } from './PortsMappingField.validation';
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ import {
|
||||||
ContainerInstanceFormValues,
|
ContainerInstanceFormValues,
|
||||||
ResourceGroup,
|
ResourceGroup,
|
||||||
} from '@/react/azure/types';
|
} from '@/react/azure/types';
|
||||||
import { applyResourceControl } from '@/portainer/access-control/access-control.service';
|
import { applyResourceControl } from '@/react/portainer/access-control/access-control.service';
|
||||||
|
|
||||||
import { getSubscriptionResourceGroups } from './utils';
|
import { getSubscriptionResourceGroups } from './utils';
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ import {
|
||||||
ResourceGroup,
|
ResourceGroup,
|
||||||
Subscription,
|
Subscription,
|
||||||
} from '@/react/azure/types';
|
} from '@/react/azure/types';
|
||||||
import { parseAccessControlFormData } from '@/portainer/access-control/utils';
|
import { parseAccessControlFormData } from '@/react/portainer/access-control/utils';
|
||||||
import { useUser } from '@/portainer/hooks/useUser';
|
import { useUser } from '@/portainer/hooks/useUser';
|
||||||
import { useProvider } from '@/react/azure/queries/useProvider';
|
import { useProvider } from '@/react/azure/queries/useProvider';
|
||||||
import { useResourceGroups } from '@/react/azure/queries/useResourceGroups';
|
import { useResourceGroups } from '@/react/azure/queries/useResourceGroups';
|
||||||
|
|
|
@ -2,9 +2,9 @@ import { useCurrentStateAndParams } from '@uirouter/react';
|
||||||
import { useQueryClient } from 'react-query';
|
import { useQueryClient } from 'react-query';
|
||||||
|
|
||||||
import { useEnvironmentId } from '@/portainer/hooks/useEnvironmentId';
|
import { useEnvironmentId } from '@/portainer/hooks/useEnvironmentId';
|
||||||
import { AccessControlPanel } from '@/portainer/access-control/AccessControlPanel/AccessControlPanel';
|
import { AccessControlPanel } from '@/react/portainer/access-control/AccessControlPanel/AccessControlPanel';
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
import { ResourceControlType } from '@/portainer/access-control/types';
|
import { ResourceControlType } from '@/react/portainer/access-control/types';
|
||||||
import {
|
import {
|
||||||
ContainerGroup,
|
ContainerGroup,
|
||||||
ResourceGroup,
|
ResourceGroup,
|
||||||
|
|
|
@ -2,9 +2,9 @@ import { Column } from 'react-table';
|
||||||
import clsx from 'clsx';
|
import clsx from 'clsx';
|
||||||
|
|
||||||
import { ownershipIcon } from '@/portainer/filters/filters';
|
import { ownershipIcon } from '@/portainer/filters/filters';
|
||||||
import { ResourceControlOwnership } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership } from '@/react/portainer/access-control/types';
|
||||||
import { ContainerGroup } from '@/react/azure/types';
|
import { ContainerGroup } from '@/react/azure/types';
|
||||||
import { determineOwnership } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { determineOwnership } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
export const ownership: Column<ContainerGroup> = {
|
export const ownership: Column<ContainerGroup> = {
|
||||||
Header: 'Ownership',
|
Header: 'Ownership',
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { AccessControlFormData } from '@/portainer/access-control/types';
|
import { AccessControlFormData } from '@/react/portainer/access-control/types';
|
||||||
import { PortainerMetadata } from '@/react/docker/types';
|
import { PortainerMetadata } from '@/react/docker/types';
|
||||||
|
|
||||||
import { PortMapping } from './container-instances/CreateView/PortsMappingField';
|
import { PortMapping } from './container-instances/CreateView/PortsMappingField';
|
||||||
|
|
|
@ -3,7 +3,7 @@ import clsx from 'clsx';
|
||||||
|
|
||||||
import { ownershipIcon } from '@/portainer/filters/filters';
|
import { ownershipIcon } from '@/portainer/filters/filters';
|
||||||
import type { DockerContainer } from '@/react/docker/containers/types';
|
import type { DockerContainer } from '@/react/docker/containers/types';
|
||||||
import { ResourceControlOwnership } from '@/portainer/access-control/types';
|
import { ResourceControlOwnership } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
export const ownership: Column<DockerContainer> = {
|
export const ownership: Column<DockerContainer> = {
|
||||||
Header: 'Ownership',
|
Header: 'Ownership',
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
import { DockerContainerResponse } from './types/response';
|
import { DockerContainerResponse } from './types/response';
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ import _ from 'lodash';
|
||||||
import { useInfo } from 'Docker/services/system.service';
|
import { useInfo } from 'Docker/services/system.service';
|
||||||
import { EnvironmentId } from 'Portainer/environments/types';
|
import { EnvironmentId } from 'Portainer/environments/types';
|
||||||
|
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
|
|
||||||
import { DockerContainer, ContainerStatus } from './types';
|
import { DockerContainer, ContainerStatus } from './types';
|
||||||
import { DockerContainerResponse } from './types/response';
|
import { DockerContainerResponse } from './types/response';
|
||||||
|
|
|
@ -5,10 +5,10 @@ import _ from 'lodash';
|
||||||
|
|
||||||
import { useEnvironmentId } from '@/portainer/hooks/useEnvironmentId';
|
import { useEnvironmentId } from '@/portainer/hooks/useEnvironmentId';
|
||||||
import { confirmDeletionAsync } from '@/portainer/services/modal.service/confirm';
|
import { confirmDeletionAsync } from '@/portainer/services/modal.service/confirm';
|
||||||
import { AccessControlPanel } from '@/portainer/access-control/AccessControlPanel/AccessControlPanel';
|
import { AccessControlPanel } from '@/react/portainer/access-control/AccessControlPanel/AccessControlPanel';
|
||||||
import { ResourceControlType } from '@/portainer/access-control/types';
|
import { ResourceControlType } from '@/react/portainer/access-control/types';
|
||||||
import { DockerContainer } from '@/react/docker/containers/types';
|
import { DockerContainer } from '@/react/docker/containers/types';
|
||||||
import { ResourceControlViewModel } from '@/portainer/access-control/models/ResourceControlViewModel';
|
import { ResourceControlViewModel } from '@/react/portainer/access-control/models/ResourceControlViewModel';
|
||||||
import { useContainers } from '@/react/docker/containers/queries/containers';
|
import { useContainers } from '@/react/docker/containers/queries/containers';
|
||||||
|
|
||||||
import { PageHeader } from '@@/PageHeader';
|
import { PageHeader } from '@@/PageHeader';
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { ResourceControlResponse } from '@/portainer/access-control/types';
|
import { ResourceControlResponse } from '@/react/portainer/access-control/types';
|
||||||
|
|
||||||
interface AgentMetadata {
|
interface AgentMetadata {
|
||||||
NodeName: string;
|
NodeName: string;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
import { FormikErrors } from 'formik';
|
import { FormikErrors } from 'formik';
|
||||||
|
|
||||||
import { useUser } from '@/portainer/hooks/useUser';
|
import { useUser } from '@/portainer/hooks/useUser';
|
||||||
import { EditDetails } from '@/portainer/access-control/EditDetails/EditDetails';
|
|
||||||
|
|
||||||
import { FormSectionTitle } from '@@/form-components/FormSectionTitle';
|
import { FormSectionTitle } from '@@/form-components/FormSectionTitle';
|
||||||
import { SwitchField } from '@@/form-components/SwitchField';
|
import { SwitchField } from '@@/form-components/SwitchField';
|
||||||
|
|
||||||
|
import { EditDetails } from '../EditDetails';
|
||||||
import { ResourceControlOwnership, AccessControlFormData } from '../types';
|
import { ResourceControlOwnership, AccessControlFormData } from '../types';
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
|
@ -2,7 +2,6 @@ import { useReducer } from 'react';
|
||||||
|
|
||||||
import { useUser } from '@/portainer/hooks/useUser';
|
import { useUser } from '@/portainer/hooks/useUser';
|
||||||
import { Icon } from '@/react/components/Icon';
|
import { Icon } from '@/react/components/Icon';
|
||||||
import { r2a } from '@/react-tools/react2angular';
|
|
||||||
import { TeamMembership, TeamRole } from '@/react/portainer/users/teams/types';
|
import { TeamMembership, TeamRole } from '@/react/portainer/users/teams/types';
|
||||||
import { useUserMembership } from '@/portainer/users/queries';
|
import { useUserMembership } from '@/portainer/users/queries';
|
||||||
|
|
||||||
|
@ -142,11 +141,3 @@ function isLeaderOfAnyRestrictedTeams(
|
||||||
resourceControl.TeamAccesses.some((ta) => ta.TeamId === membership.TeamID)
|
resourceControl.TeamAccesses.some((ta) => ta.TeamId === membership.TeamID)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const AccessControlPanelAngular = r2a(AccessControlPanel, [
|
|
||||||
'resourceControl',
|
|
||||||
'resourceType',
|
|
||||||
'disableOwnershipChange',
|
|
||||||
'resourceId',
|
|
||||||
'onUpdateSuccess',
|
|
||||||
]);
|
|
|
@ -0,0 +1 @@
|
||||||
|
export { AccessControlPanel } from './AccessControlPanel';
|
|
@ -1,4 +1,4 @@
|
||||||
import axios, { parseAxiosError } from '../services/axios';
|
import axios, { parseAxiosError } from '@/portainer/services/axios';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AccessControlFormData,
|
AccessControlFormData,
|
|
@ -0,0 +1,2 @@
|
||||||
|
export { AccessControlPanel } from './AccessControlPanel';
|
||||||
|
export { AccessControlForm } from './AccessControlForm';
|
|
@ -1,6 +1,5 @@
|
||||||
import { TeamId } from '@/react/portainer/users/teams/types';
|
import { TeamId } from '@/react/portainer/users/teams/types';
|
||||||
|
import { UserId } from '@/portainer/users/types';
|
||||||
import { UserId } from '../users/types';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
AccessControlFormData,
|
AccessControlFormData,
|
Loading…
Reference in New Issue