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" class="theme-danger" :on-click="onClick">
  8. <v-icon small>fas fa-exclamation-triangle</v-icon>
  9. <span>{{ $t('super_admin_switch_account') }} </span>
  10. </UiSystemBar>
  11. </template>
  12. <script setup lang="ts">
  13. import {useAccessProfileStore} from "~/stores/accessProfile";
  14. import UrlUtils from "~/services/utils/urlUtils";
  15. import type {ComputedRef} from "@vue/reactivity";
  16. import {navigateTo} from "#app";
  17. import {useAdminUrl} from "~/composables/utils/useAdminUrl";
  18. const { makeAdminUrl } = useAdminUrl()
  19. const accessProfile = useAccessProfileStore()
  20. const show: ComputedRef<boolean> = computed(() =>
  21. accessProfile.originalAccess !== null && accessProfile.originalAccess.isSuperAdminAccess
  22. )
  23. const url: ComputedRef<string> = computed(() => {
  24. const orgId = accessProfile.originalAccess ? accessProfile.originalAccess.organization.id : null
  25. const originalAccessId = accessProfile.originalAccess ? accessProfile.originalAccess.id : null
  26. if (show && orgId && originalAccessId) {
  27. return makeAdminUrl(UrlUtils.join('#', 'switch_user', orgId, originalAccessId, 'exit'))
  28. }
  29. return ''
  30. })
  31. const onClick = () => {
  32. navigateTo(url.value,{ external: true })
  33. }
  34. </script>
  35. <style scoped lang="scss">
  36. .v-system-bar {
  37. font-size: 14px;
  38. }
  39. .v-icon {
  40. height: 20px;
  41. margin: 0 6px;
  42. }
  43. </style>