Browse Source

add email to user, basic account page

pull/1397/head
Bernd Storath 7 months ago
parent
commit
3490bae4e6
  1. 54
      src/app/pages/me.vue
  2. 1
      src/app/stores/auth.ts
  3. 1
      src/server/api/session.get.ts
  4. 1
      src/services/database/lowdb.ts
  5. 1
      src/services/database/repositories/user.ts

54
src/app/pages/me.vue

@ -1,8 +1,54 @@
<template> <template>
<main> <main>
<p>Change Username:</p> <div class="container mx-auto max-w-3xl px-3 md:px-0">
<p>Change Name:</p> <div
<p>Change E-Mail:</p> class="shadow-md rounded-lg bg-white dark:bg-neutral-700 overflow-hidden"
<p>Change Password:</p> >
<div
class="flex flex-row flex-auto items-center p-3 px-5 border-b-2 border-gray-100 dark:border-neutral-600"
>
<div class="flex-grow">
<p class="text-2xl font-medium dark:text-neutral-200">Account</p>
</div>
</div>
<div class="space-y-2">
<div class="flex flex-wrap items-center gap-[15px] px-5">
<Label class="font-semibold dark:text-neutral-200" for="username">
Username
</Label>
<input id="username" v-model.trim="username" type="text" />
</div>
<div class="flex flex-wrap items-center gap-[15px] px-5">
<Label class="font-semibold dark:text-neutral-200" for="name">
Name
</Label>
<input id="name" v-model.trim="name" type="text" />
</div>
<div class="flex flex-wrap items-center gap-[15px] px-5">
<Label class="font-semibold dark:text-neutral-200" for="name">
E-Mail
</Label>
<input id="name" v-model.trim="email" type="text" />
</div>
<BaseButton class="self-end" @click="openPasswordModal">
Change Password
</BaseButton>
<BaseButton class="self-end" @click="submit">Save</BaseButton>
</div>
</div>
</div>
</main> </main>
</template> </template>
<script setup lang="ts">
const authStore = useAuthStore();
authStore.update();
const username = ref(authStore.userData?.username);
const name = ref(authStore.userData?.name);
const email = ref(authStore.userData?.email);
function submit() {}
function openPasswordModal() {}
</script>

1
src/app/stores/auth.ts

@ -3,6 +3,7 @@ export const useAuthStore = defineStore('Auth', () => {
name: string; name: string;
username: string; username: string;
role: string; role: string;
email: string | null;
}>(); }>();
/** /**

1
src/server/api/session.get.ts

@ -19,5 +19,6 @@ export default defineEventHandler(async (event) => {
role: user.role, role: user.role,
username: user.username, username: user.username,
name: user.name, name: user.name,
email: user.email,
}; };
}); });

1
src/services/database/lowdb.ts

@ -92,6 +92,7 @@ export class LowDBUser extends UserRepository {
id: crypto.randomUUID(), id: crypto.randomUUID(),
password: hash, password: hash,
username, username,
email: null,
name: 'Administrator', name: 'Administrator',
role: isUserEmpty ? 'ADMIN' : 'CLIENT', role: isUserEmpty ? 'ADMIN' : 'CLIENT',
enabled: true, enabled: true,

1
src/services/database/repositories/user.ts

@ -17,6 +17,7 @@ export type User = {
username: string; username: string;
password: string; password: string;
name: string; name: string;
email: string | null;
/** ISO String */ /** ISO String */
createdAt: string; createdAt: string;
/** ISO String */ /** ISO String */

Loading…
Cancel
Save