Skip to content
Snippets Groups Projects
AuthWall.vue 813 B
Newer Older
  • Learn to ignore specific revisions
  • Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
      <div v-if="$store.state.auth.user.steeringUser" class="tw-w-full">
        <slot />
      </div>
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
      <div v-else class="tw-w-full tw-text-center">
        {{ $t('loading') }}
      </div>
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
    export default {
      created() {
        const user = this.$store.state.auth.user.steeringUser
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
        // We might not have a user at load-time.
        // In this case wait until the store gives us one.
        if (user === null) {
          this.$store.watch(
            (state) => state.auth.user.steeringUser,
            (user) => this.redirectToHome(user),
          )
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
          return
        }
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
        this.redirectToHome(user)
      },
    
    Konrad Mohrfeldt's avatar
    Konrad Mohrfeldt committed
      methods: {
        redirectToHome(user) {
          if (!user.is_superuser) {
            this.$toast.error(this.$t('auth.permissionError'))
            this.$router.push({ name: 'home' })
          }
        },
      },
    }