SuperAdmin.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <!--
  2. Super Admin bar
  3. Barre d'alerte qui s'affiche lorsque l'utilisateur est un super admin en mode switch
  4. -->
  5. <template>
  6. <!-- TODO : fonctionnement à valider -->
  7. <UiSystemBar v-if="show" text-color="danger">
  8. <v-icon small>fas fa-exclamation-triangle</v-icon>
  9. <span>{{ $t('super_admin_switch_account') }}</span>
  10. <a v-if="url" :href="url" class="text-neutral-strong text-decoration-none">
  11. <strong>{{ $t('click_here') }}</strong>
  12. </a>
  13. </UiSystemBar>
  14. </template>
  15. <script setup lang="ts">
  16. import {useAccessProfileStore} from "~/stores/accessProfile";
  17. import UrlUtils from "~/services/utils/urlUtils";
  18. import {ComputedRef} from "@vue/reactivity";
  19. const runtimeConfig = useRuntimeConfig()
  20. const baseLegacyUrl: string = runtimeConfig.baseUrlAdminLegacy
  21. const accessProfile = useAccessProfileStore()
  22. const show: ComputedRef<boolean> = computed(() =>
  23. accessProfile.originalAccess !== null && accessProfile.originalAccess.isSuperAdminAccess
  24. )
  25. const url: ComputedRef<string> = computed(() => {
  26. const orgId = accessProfile.originalAccess ? accessProfile.originalAccess.organization.id : null
  27. const originalAccessId = accessProfile.originalAccess ? accessProfile.originalAccess.id : null
  28. if (show && orgId && originalAccessId) {
  29. return UrlUtils.join(baseLegacyUrl, 'switch_user', orgId, originalAccessId, 'exit')
  30. }
  31. return ''
  32. })
  33. </script>
  34. <style scoped lang="scss">
  35. .v-system-bar {
  36. font-size: 14px;
  37. }
  38. .v-icon {
  39. height: 20px;
  40. margin: 0 6px;
  41. }
  42. </style>