hunk.code_window:         this.LocalStorage.cleanLogoutReason();
         }
         if (this.Authentication.isAuthenticated()) {
           await this.postLoginSteps();
         }
         this.state.loginInProgress = false;
  
hunk.labels: keep keep add keep keep keep keep keep
hunk.after_edit:       // always clear the kubernetes cache on login
         dispatchCacheRefreshEvent();
  
hunk.file_path: app/portainer/views/auth/authController.js
hunk.type: add
file: import uuidv4 from 'uuid/v4';
  /**
   * KubernetesPersistentVolumeClaim Model
   */
  const _KubernetesPersistentVolumeClaim = Object.freeze({
    Id: '',
    Name: '',
    PreviousName: '',
    Namespace: '',
    Storage: 0,
    storageClass: {}, // KubernetesStorageClass
    CreationDate: '',
    ApplicationOwner: '',
    AccessModes: [],
    ApplicationName: '',
    MountPath: '', // used for Application creation from ApplicationFormValues | not used from API conversion
    Yaml: '',
  });
  
  export class KubernetesPersistentVolumeClaim {
    constructor() {
      Object.assign(this, JSON.parse(JSON.stringify(_KubernetesPersistentVolumeClaim)));
      this.Name = uuidv4();
    }
  }
  
  /**
   * KubernetesVolume Model (Composite)
   */
  const _KubernetesVolume = Object.freeze({
    ResourcePool: {}, // KubernetesResourcePool
    PersistentVolumeClaim: {}, // KubernetesPersistentVolumeClaim
    Applications: [], // KubernetesApplication
  });
  
  export class KubernetesVolume {
    constructor() {
      Object.assign(this, JSON.parse(JSON.stringify(_KubernetesVolume)));
    }
  }
  