fix: redirect to login (#1082)

This commit is contained in:
Jonas Plum
2024-07-20 08:51:14 +02:00
committed by GitHub
parent e9583a29fa
commit 81bfbb2072
3 changed files with 63 additions and 58 deletions

View File

@@ -29,7 +29,7 @@ test:
.PHONY: test-coverage .PHONY: test-coverage
test-coverage: test-coverage:
@echo "Testing with coverage..." @echo "Testing with coverage..."
go test -coverpkg=./... -coverprofile=coverage.out ./... go test -coverpkg=./... -coverprofile=coverage.out -count 1 ./...
go tool cover -func=coverage.out go tool cover -func=coverage.out
go tool cover -html=coverage.out go tool cover -html=coverage.out

View File

@@ -5,6 +5,7 @@ import (
"encoding/json" "encoding/json"
"net/http" "net/http"
"testing" "testing"
"time"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require" "github.com/stretchr/testify/require"
@@ -19,6 +20,8 @@ func TestWebhook_Run(t *testing.T) {
go http.ListenAndServe("127.0.0.1:12347", server) //nolint:gosec,errcheck go http.ListenAndServe("127.0.0.1:12347", server) //nolint:gosec,errcheck
time.Sleep(1 * time.Second)
type fields struct { type fields struct {
Headers map[string]string Headers map[string]string
URL string URL string

View File

@@ -1,5 +1,4 @@
<script setup lang="ts"> <script setup lang="ts">
import TanView from '@/components/TanView.vue'
import { Button, buttonVariants } from '@/components/ui/button' import { Button, buttonVariants } from '@/components/ui/button'
import { import {
DropdownMenu, DropdownMenu,
@@ -13,7 +12,8 @@ import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip
import { CircleUser } from 'lucide-vue-next' import { CircleUser } from 'lucide-vue-next'
import { useQuery } from '@tanstack/vue-query' import type { AuthModel } from 'pocketbase'
import { onMounted, ref } from 'vue'
import { pb } from '@/lib/pocketbase' import { pb } from '@/lib/pocketbase'
import { cn } from '@/lib/utils' import { cn } from '@/lib/utils'
@@ -24,26 +24,31 @@ defineProps<{
const variant = 'secondary' const variant = 'secondary'
const { interface User {
isPending, name: string
isError, }
data: user,
error const user = ref<AuthModel | User>(pb.authStore.model)
} = useQuery({
queryKey: ['user'],
queryFn: () => pb.authStore.model
})
const logout = () => { const logout = () => {
pb.authStore.clear() pb.authStore.clear()
window.location.href = '/ui/login' window.location.href = '/ui/login'
} }
onMounted(() => {
pb.collection('users')
.authRefresh()
.catch(() => {
pb.authStore.clear()
window.location.href = '/ui/login'
})
})
</script> </script>
<template> <template>
<TanView :is-error="isError" :is-pending="isPending" :error="error" :value="user">
<div class="group flex flex-col gap-4 py-2 data-[collapsed=true]:py-2"> <div class="group flex flex-col gap-4 py-2 data-[collapsed=true]:py-2">
<nav <nav
v-if="user"
class="grid gap-1 px-2 group-[[data-collapsed=true]]:justify-center group-[[data-collapsed=true]]:px-2" class="grid gap-1 px-2 group-[[data-collapsed=true]]:justify-center group-[[data-collapsed=true]]:px-2"
> >
<DropdownMenu> <DropdownMenu>
@@ -66,9 +71,7 @@ const logout = () => {
</Tooltip> </Tooltip>
<Button <Button
v-else v-else
:class=" :class="cn(buttonVariants({ variant: variant, size: 'sm' }), 'w-full justify-start')"
cn(buttonVariants({ variant: variant, size: 'sm' }), 'w-full justify-start')
"
> >
<CircleUser class="mr-2 size-4" /> <CircleUser class="mr-2 size-4" />
{{ user.name }} {{ user.name }}
@@ -88,5 +91,4 @@ const logout = () => {
</DropdownMenu> </DropdownMenu>
</nav> </nav>
</div> </div>
</TanView>
</template> </template>