change username to user

This commit is contained in:
Adrian Zürcher
2026-02-19 10:51:09 +01:00
parent ab88acd740
commit e686a27bf1
6 changed files with 23 additions and 10 deletions

View File

@@ -17,7 +17,7 @@ export default boot(async ({ app }) => {
useStore useStore
.setUser({ .setUser({
id: resp.data.id, id: resp.data.id,
username: resp.data.username, user: resp.data.username,
role: { role: resp.data.role, permissions: [] }, role: { role: resp.data.role, permissions: [] },
}) })
.catch((err) => console.error(err)); .catch((err) => console.error(err));

View File

@@ -69,6 +69,7 @@ const dialog = ref();
const form = ref(); const form = ref();
const newUser = ref(false); const newUser = ref(false);
const role = ref(''); const role = ref('');
const localUser = ref<User>({ const localUser = ref<User>({
user: '', user: '',
email: '', email: '',

View File

@@ -15,7 +15,7 @@ const router = useRouter();
const userStore = useUserStore(); const userStore = useUserStore();
onMounted(() => { onMounted(() => {
if (userStore.user?.username !== '' && userStore.user?.role.role !== '') { if (userStore.user?.user !== '' && userStore.user?.role.role !== '') {
forwardToPage().catch((err) => console.error(err)); forwardToPage().catch((err) => console.error(err));
} }
}); });

View File

@@ -3,7 +3,7 @@
<q-btn dense flat round icon="person" :color="currentUser ? 'green' : ''"> <q-btn dense flat round icon="person" :color="currentUser ? 'green' : ''">
<q-menu ref="refLoginMenu"> <q-menu ref="refLoginMenu">
<q-list style="min-width: 120px"> <q-list style="min-width: 120px">
<q-item v-if="user.user" class="text-primary">{{ currentUser?.username }}</q-item> <q-item v-if="user.user" class="text-primary">{{ currentUser?.user }}</q-item>
<q-item v-if="showLogin" clickable v-close-popup @click="openLogin"> <q-item v-if="showLogin" clickable v-close-popup @click="openLogin">
<q-item-section class="text-primary">{{ loginText }}</q-item-section> <q-item-section class="text-primary">{{ loginText }}</q-item-section>
</q-item> </q-item>
@@ -69,7 +69,7 @@ const darkMode = computed(() => {
return 'dark_mode'; return 'dark_mode';
}); });
const showLogin = computed( const showLogin = computed(
() => (route.path !== '/' && route.path !== '/login') || currentUser.value?.username === '', () => (route.path !== '/' && route.path !== '/login') || currentUser.value?.user === '',
); );
const autorized = computed(() => !!user.isAuthorizedAs(['admin'])); const autorized = computed(() => !!user.isAuthorizedAs(['admin']));

View File

@@ -35,7 +35,7 @@ export function useLogin() {
await userStore await userStore
.setUser({ .setUser({
id: resp.data.id, id: resp.data.id,
username: resp.data.user, user: resp.data.user,
role: { role: resp.data.role, permissions: [] }, role: { role: resp.data.role, permissions: [] },
}) })
.catch((err) => NotifyResponse(err, 'error')); .catch((err) => NotifyResponse(err, 'error'));
@@ -69,7 +69,7 @@ export function useLogin() {
userStore userStore
.setUser({ .setUser({
id: resp.data.id, id: resp.data.id,
username: resp.data.user, user: resp.data.user,
role: { role: resp.data.role, permissions: [] }, role: { role: resp.data.role, permissions: [] },
}) })
.catch((err) => NotifyResponse(err, 'error')); .catch((err) => NotifyResponse(err, 'error'));

View File

@@ -25,8 +25,17 @@ export const useUserStore = defineStore('user', {
}; };
}, },
isPermittedTo: (state: UserState) => { isPermittedTo: (state: UserState) => {
return (name: string, type: 'read' | 'write' | 'delete' | 'import' | 'export'): boolean => { return (
name: string,
type: 'read' | 'write' | 'delete' | 'import' | 'export',
compareRole?: Role,
): boolean => {
const permission = state.user?.permissions?.find((r: Permission) => r.name === name); const permission = state.user?.permissions?.find((r: Permission) => r.name === name);
if (compareRole && permission) {
const rolePermission = compareRole.permissions?.find((r: Permission) => r.name === name);
if (rolePermission && rolePermission?.permission > permission?.permission) return false;
}
switch (type) { switch (type) {
case 'read': case 'read':
return permission?.permission ? (permission.permission & (1 << 0)) === 1 : false; return permission?.permission ? (permission.permission & (1 << 0)) === 1 : false;
@@ -62,7 +71,7 @@ export const useUserStore = defineStore('user', {
if (!this.user) return; if (!this.user) return;
if ($q) { if ($q) {
$q?.notify({ $q?.notify({
message: "user '" + this.user?.username + "' logged out", message: "user '" + this.user?.user + "' logged out",
color: 'orange', color: 'orange',
position: 'top', position: 'top',
icon: 'warning', icon: 'warning',
@@ -80,7 +89,7 @@ export const useUserStore = defineStore('user', {
], ],
}); });
} else { } else {
console.error("user '" + this.user?.username + "' logged out"); console.error("user '" + this.user?.user + "' logged out");
} }
this.user = null; this.user = null;
@@ -108,9 +117,12 @@ export const useUserStore = defineStore('user', {
], ],
}); });
} else { } else {
console.error("user '" + this.user?.username + "' logged out"); console.error("user '" + this.user?.user + "' logged out");
} }
}); });
}, },
isAdmin() {
return this.user?.role.role.includes('admin');
},
}, },
}); });