Merge branch 'main' into dev
This commit is contained in:
@@ -5,6 +5,12 @@ export const createCaller = createCallerFactory({
|
|||||||
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
"klimafaktoren": await import("../src/pages/api/klimafaktoren.ts"),
|
||||||
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
"postleitzahlen": await import("../src/pages/api/postleitzahlen.ts"),
|
||||||
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
"unterlage": await import("../src/pages/api/unterlage.ts"),
|
||||||
|
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
||||||
|
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
||||||
|
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
||||||
|
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
||||||
|
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
||||||
|
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
||||||
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
"admin/ausstellen": await import("../src/pages/api/admin/ausstellen.ts"),
|
||||||
"admin/bedarfsausweis-ausstellen": await import("../src/pages/api/admin/bedarfsausweis-ausstellen.ts"),
|
"admin/bedarfsausweis-ausstellen": await import("../src/pages/api/admin/bedarfsausweis-ausstellen.ts"),
|
||||||
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
"admin/bestellbestaetigung": await import("../src/pages/api/admin/bestellbestaetigung.ts"),
|
||||||
@@ -12,26 +18,21 @@ export const createCaller = createCallerFactory({
|
|||||||
"admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-ausstellen.ts"),
|
"admin/nicht-ausstellen": await import("../src/pages/api/admin/nicht-ausstellen.ts"),
|
||||||
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
"admin/registriernummer": await import("../src/pages/api/admin/registriernummer.ts"),
|
||||||
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
"admin/stornieren": await import("../src/pages/api/admin/stornieren.ts"),
|
||||||
"aufnahme": await import("../src/pages/api/aufnahme/index.ts"),
|
|
||||||
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
|
||||||
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
|
||||||
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
|
||||||
"ausweise": await import("../src/pages/api/ausweise/index.ts"),
|
|
||||||
"bedarfsausweis-wohnen/[id]": await import("../src/pages/api/bedarfsausweis-wohnen/[id].ts"),
|
|
||||||
"bedarfsausweis-wohnen": await import("../src/pages/api/bedarfsausweis-wohnen/index.ts"),
|
|
||||||
"bedarfsausweis-gewerbe/[id]": await import("../src/pages/api/bedarfsausweis-gewerbe/[id].ts"),
|
|
||||||
"bedarfsausweis-gewerbe": await import("../src/pages/api/bedarfsausweis-gewerbe/index.ts"),
|
|
||||||
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
"bilder/[id]": await import("../src/pages/api/bilder/[id].ts"),
|
||||||
"geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"),
|
"geg-nachweis-wohnen/[id]": await import("../src/pages/api/geg-nachweis-wohnen/[id].ts"),
|
||||||
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"),
|
"geg-nachweis-wohnen": await import("../src/pages/api/geg-nachweis-wohnen/index.ts"),
|
||||||
"geg-nachweis-gewerbe/[id]": await import("../src/pages/api/geg-nachweis-gewerbe/[id].ts"),
|
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
||||||
"geg-nachweis-gewerbe": await import("../src/pages/api/geg-nachweis-gewerbe/index.ts"),
|
"auth/access-token": await import("../src/pages/api/auth/access-token.ts"),
|
||||||
|
"auth/passwort-vergessen": await import("../src/pages/api/auth/passwort-vergessen.ts"),
|
||||||
|
"auth/refresh-token": await import("../src/pages/api/auth/refresh-token.ts"),
|
||||||
"rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"),
|
"rechnung/[id]": await import("../src/pages/api/rechnung/[id].ts"),
|
||||||
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
|
"rechnung/anfordern": await import("../src/pages/api/rechnung/anfordern.ts"),
|
||||||
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
"rechnung": await import("../src/pages/api/rechnung/index.ts"),
|
||||||
"objekt": await import("../src/pages/api/objekt/index.ts"),
|
|
||||||
"user": await import("../src/pages/api/user/index.ts"),
|
"user": await import("../src/pages/api/user/index.ts"),
|
||||||
"user/self": await import("../src/pages/api/user/self.ts"),
|
"user/self": await import("../src/pages/api/user/self.ts"),
|
||||||
|
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||||
|
"verbrauchsausweis-wohnen/[id]": await import("../src/pages/api/verbrauchsausweis-wohnen/[id].ts"),
|
||||||
|
"verbrauchsausweis-wohnen": await import("../src/pages/api/verbrauchsausweis-wohnen/index.ts"),
|
||||||
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
"verbrauchsausweis-gewerbe/[id]": await import("../src/pages/api/verbrauchsausweis-gewerbe/[id].ts"),
|
||||||
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
"verbrauchsausweis-gewerbe": await import("../src/pages/api/verbrauchsausweis-gewerbe/index.ts"),
|
||||||
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
"ticket": await import("../src/pages/api/ticket/index.ts"),
|
||||||
|
|||||||
@@ -1,49 +0,0 @@
|
|||||||
import { dialogs } from "../../../svelte-dialogs.config";
|
|
||||||
import { loginClient } from "#lib/login";
|
|
||||||
import { addNotification } from "#components/Notifications/shared";
|
|
||||||
|
|
||||||
export async function spawnLoginPrompt() {
|
|
||||||
const result = await dialogs.prompt(
|
|
||||||
[
|
|
||||||
{
|
|
||||||
label: "Email",
|
|
||||||
type: "email",
|
|
||||||
required: true,
|
|
||||||
placeholder: "Email",
|
|
||||||
name: "email"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "Passwort",
|
|
||||||
type: "password",
|
|
||||||
name: "passwort",
|
|
||||||
required: true,
|
|
||||||
placeholder: "********",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
{
|
|
||||||
title: "Login",
|
|
||||||
submitButtonText: "Einloggen",
|
|
||||||
cancelButtonText: "Abbrechen",
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!result) return false;
|
|
||||||
|
|
||||||
const [email, passwort] = result;
|
|
||||||
|
|
||||||
const loginResult = await loginClient(email, passwort);
|
|
||||||
|
|
||||||
if (loginResult === null) {
|
|
||||||
addNotification({
|
|
||||||
type: "error",
|
|
||||||
message: "Einloggen fehlgeschlagen",
|
|
||||||
dismissable: true,
|
|
||||||
subtext: "Bitte überprüfen Sie ihre Eingaben und versuchen es erneut.",
|
|
||||||
timeout: 5000,
|
|
||||||
})
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
import { dialogs } from "../../../svelte-dialogs.config.js";
|
|
||||||
import { addNotification } from "#components/Notifications/shared.js";
|
|
||||||
import { api } from "astro-typesafe-api/client";
|
|
||||||
|
|
||||||
export async function spawnSignupPrompt() {
|
|
||||||
const result = await dialogs.prompt(
|
|
||||||
[
|
|
||||||
{
|
|
||||||
label: "Vorname",
|
|
||||||
type: "text",
|
|
||||||
required: true,
|
|
||||||
placeholder: "Vorname",
|
|
||||||
name: "vorname"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "Name",
|
|
||||||
type: "text",
|
|
||||||
required: true,
|
|
||||||
placeholder: "Name",
|
|
||||||
name: "name"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "Email",
|
|
||||||
type: "email",
|
|
||||||
required: true,
|
|
||||||
placeholder: "Email",
|
|
||||||
name: "email"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
label: "Passwort",
|
|
||||||
type: "password",
|
|
||||||
name: "passwort",
|
|
||||||
required: true,
|
|
||||||
placeholder: "********",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
{
|
|
||||||
title: "Registrieren",
|
|
||||||
submitButtonText: "Registrieren",
|
|
||||||
cancelButtonText: "Abbrechen",
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!result) return false;
|
|
||||||
|
|
||||||
const [vorname, name, email, passwort] = result;
|
|
||||||
|
|
||||||
try {
|
|
||||||
const response = await api.user.PUT.fetch({
|
|
||||||
email,
|
|
||||||
passwort,
|
|
||||||
vorname,
|
|
||||||
name,
|
|
||||||
});
|
|
||||||
|
|
||||||
return true;
|
|
||||||
} catch(e) {
|
|
||||||
addNotification({
|
|
||||||
type: "error",
|
|
||||||
message: "Registrieren fehlgeschlagen",
|
|
||||||
dismissable: true,
|
|
||||||
subtext: "Ein Fehler ist aufgetreten, vielleicht wird die angegebene Email bereits verwendet.",
|
|
||||||
timeout: 5000,
|
|
||||||
})
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -12,7 +12,7 @@ export async function sendRegisterMail(
|
|||||||
const verificationJwt = encodeToken({
|
const verificationJwt = encodeToken({
|
||||||
typ: TokenType.Verify,
|
typ: TokenType.Verify,
|
||||||
exp: Date.now() + (15 * 60 * 1000),
|
exp: Date.now() + (15 * 60 * 1000),
|
||||||
uid: user.uid
|
id: user.id
|
||||||
})
|
})
|
||||||
|
|
||||||
await transport.sendMail({
|
await transport.sendMail({
|
||||||
|
|||||||
@@ -72,6 +72,7 @@
|
|||||||
name="email"
|
name="email"
|
||||||
class="px-2.5 py-1.5 rounded-lg border bg-gray-50"
|
class="px-2.5 py-1.5 rounded-lg border bg-gray-50"
|
||||||
bind:value={email}
|
bind:value={email}
|
||||||
|
on:keyup={() => (email = email.toLowerCase())}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,7 +3,6 @@
|
|||||||
import { CrossCircled } from "radix-svelte-icons";
|
import { CrossCircled } from "radix-svelte-icons";
|
||||||
import { fade } from "svelte/transition";
|
import { fade } from "svelte/transition";
|
||||||
import { api } from "astro-typesafe-api/client";
|
import { api } from "astro-typesafe-api/client";
|
||||||
import NotificationProvider from "#components/NotificationProvider/NotificationProvider.svelte";
|
|
||||||
import NotificationWrapper from "#components/Notifications/NotificationWrapper.svelte";
|
import NotificationWrapper from "#components/Notifications/NotificationWrapper.svelte";
|
||||||
|
|
||||||
let passwort: string;
|
let passwort: string;
|
||||||
@@ -13,10 +12,6 @@
|
|||||||
|
|
||||||
export let redirect: string | null = null;
|
export let redirect: string | null = null;
|
||||||
|
|
||||||
function handleInput(event) {
|
|
||||||
email = event.target.value.toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
async function login(e: SubmitEvent) {
|
async function login(e: SubmitEvent) {
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
if (passwort.length < 8) {
|
if (passwort.length < 8) {
|
||||||
@@ -30,7 +25,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { uid } = await api.user.PUT.fetch({
|
const { id } = await api.user.PUT.fetch({
|
||||||
email,
|
email,
|
||||||
passwort,
|
passwort,
|
||||||
vorname,
|
vorname,
|
||||||
@@ -87,7 +82,7 @@
|
|||||||
name="email"
|
name="email"
|
||||||
class="input input-bordered text-base text-base-content font-medium"
|
class="input input-bordered text-base text-base-content font-medium"
|
||||||
bind:value={email}
|
bind:value={email}
|
||||||
on:input={handleInput}
|
on:keyup={() => (email = email.toLowerCase())}
|
||||||
required
|
required
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user