Demo mode: automatically connect as demo user
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
import NavBarSearch from './NavBarSearch.vue'
|
||||
import BarcodeModal from './BarcodeModal.vue'
|
||||
import { useAuthStore } from './auth.store.js'
|
||||
import { getAppInfo } from './api.js'
|
||||
import { getAppInfo, postLogin } from './api.js'
|
||||
import { onMounted } from 'vue'
|
||||
|
||||
const authStore = useAuthStore();
|
||||
@@ -21,8 +21,23 @@
|
||||
const appInfo = ref(null);
|
||||
const appInfoErr = ref(null);
|
||||
|
||||
async function logInIfDemoMode(demoMode) {
|
||||
if (!demoMode) {
|
||||
return;
|
||||
}
|
||||
|
||||
const demouser = ref({
|
||||
username: "demo",
|
||||
password: ""
|
||||
});
|
||||
const res = await postLogin(demouser)
|
||||
const json = await res.json();
|
||||
await useAuthStore().login({username: demouser.value.username, token: json["token"]})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getAppInfo(appInfo, appInfoErr);
|
||||
getAppInfo(appInfo, appInfoErr)
|
||||
.then(() => logInIfDemoMode(appInfo.value.demoMode));
|
||||
})
|
||||
</script>
|
||||
|
||||
@@ -62,7 +77,7 @@
|
||||
<RouterLink v-if="authStore.user" to="/add" class="navbar-item" activeClass="is-active">
|
||||
{{ $t('navbar.addbook')}}
|
||||
</RouterLink>
|
||||
<div v-if="authStore.user" class="navbar-item is-hidden-desktop">
|
||||
<div v-if="authStore.user && appInfo && !appInfo.demoMode" class="navbar-item is-hidden-desktop">
|
||||
<a @click="logout">
|
||||
{{ $t('navbar.logout')}}
|
||||
<span class="icon" :title="$t('navbar.logout')">
|
||||
@@ -76,9 +91,9 @@
|
||||
<div >
|
||||
{{ authStore.user.username }}
|
||||
</div>
|
||||
<a @click="logout" class="button is-light">
|
||||
{{ $t('navbar.logout')}}
|
||||
</a>
|
||||
<a v-if="appInfo && !appInfo.demoMode" @click="logout" class="button is-light">
|
||||
{{ $t('navbar.logout')}}
|
||||
</a>
|
||||
</div>
|
||||
<div v-else class="navbar-item">
|
||||
<div class="buttons">
|
||||
|
||||
@@ -34,8 +34,8 @@ function useFetch(data, error, url) {
|
||||
}
|
||||
}
|
||||
|
||||
export function getAppInfo(appInfo, appInfoErr) {
|
||||
fetch('/ws/appinfo', {
|
||||
export async function getAppInfo(appInfo, appInfoErr) {
|
||||
return fetch('/ws/appinfo', {
|
||||
method: 'GET'
|
||||
}).then((res) => res.json())
|
||||
.then((json) => appInfo.value = json)
|
||||
|
||||
Reference in New Issue
Block a user