text: export default class DockerFeaturesConfigurationController {
    /* @ngInject */
    constructor($async, EndpointService, Notifications, StateManager) {
      this.$async = $async;
      this.EndpointService = EndpointService;
      this.Notifications = Notifications;
      this.StateManager = StateManager;
  
      this.formValues = {
        enableHostManagementFeatures: false,
        allowVolumeBrowserForRegularUsers: false,
        disableBindMountsForRegularUsers: false,
        disablePrivilegedModeForRegularUsers: false,
        disableHostNamespaceForRegularUsers: false,
        disableStackManagementForRegularUsers: false,
        disableDeviceMappingForRegularUsers: false,
        disableContainerCapabilitiesForRegularUsers: false,
        disableSysctlSettingForRegularUsers: false,
      };
  
      this.isAgent = false;
  
      this.state = {
        actionInProgress: false,
      };
  
      this.save = this.save.bind(this);
    }
  
    isContainerEditDisabled() {
      const {
        disableBindMountsForRegularUsers,
        disableHostNamespaceForRegularUsers,
        disablePrivilegedModeForRegularUsers,
        disableDeviceMappingForRegularUsers,
        disableContainerCapabilitiesForRegularUsers,
        disableSysctlSettingForRegularUsers,
      } = this.formValues;
      return (
        disableBindMountsForRegularUsers ||
        disableHostNamespaceForRegularUsers ||
        disablePrivilegedModeForRegularUsers ||
        disableDeviceMappingForRegularUsers ||
        disableContainerCapabilitiesForRegularUsers ||
        disableSysctlSettingForRegularUsers
      );
    }
  
    async save() {
      return this.$async(async () => {
        try {
          this.state.actionInProgress = true;
          const securitySettings = {
            enableHostManagementFeatures: this.formValues.enableHostManagementFeatures,
            allowBindMountsForRegularUsers: !this.formValues.disableBindMountsForRegularUsers,
            allowPrivilegedModeForRegularUsers: !this.formValues.disablePrivilegedModeForRegularUsers,
            allowVolumeBrowserForRegularUsers: this.formValues.allowVolumeBrowserForRegularUsers,
            allowHostNamespaceForRegularUsers: !this.formValues.disableHostNamespaceForRegularUsers,
            allowDeviceMappingForRegularUsers: !this.formValues.disableDeviceMappingForRegularUsers,
            allowStackManagementForRegularUsers: !this.formValues.disableStackManagementForRegularUsers,
            allowContainerCapabilitiesForRegularUsers: !this.formValues.disableContainerCapabilitiesForRegularUsers,
            allowSysctlSettingForRegularUsers: !this.formValues.disableSysctlSettingForRegularUsers,
          };
  
          await this.EndpointService.updateSecuritySettings(this.endpoint.Id, securitySettings);
  
          this.endpoint.SecuritySettings = securitySettings;
          this.Notifications.success('已成功保存设置');
        } catch (e) {
          this.Notifications.error('失败', e, '保存设置失败');
        }
        this.state.actionInProgress = false;
      });
    }
  
    checkAgent() {
      const applicationState = this.StateManager.getState();
      return applicationState.endpoint.mode.agentProxy;
    }
  
    $onInit() {
      const securitySettings = this.endpoint.SecuritySettings;
  
      const isAgent = this.checkAgent();
      this.isAgent = isAgent;
  
      this.formValues = {
        enableHostManagementFeatures: isAgent && securitySettings.enableHostManagementFeatures,
        allowVolumeBrowserForRegularUsers: isAgent && securitySettings.allowVolumeBrowserForRegularUsers,
        disableBindMountsForRegularUsers: !securitySettings.allowBindMountsForRegularUsers,
        disablePrivilegedModeForRegularUsers: !securitySettings.allowPrivilegedModeForRegularUsers,
        disableHostNamespaceForRegularUsers: !securitySettings.allowHostNamespaceForRegularUsers,
        disableDeviceMappingForRegularUsers: !securitySettings.allowDeviceMappingForRegularUsers,
        disableStackManagementForRegularUsers: !securitySettings.allowStackManagementForRegularUsers,
        disableContainerCapabilitiesForRegularUsers: !securitySettings.allowContainerCapabilitiesForRegularUsers,
        disableSysctlSettingForRegularUsers: !securitySettings.allowSysctlSettingForRegularUsers,
      };
    }
  }
  