refactor login page, change routes to token-based, add service classes

This commit is contained in:
2025-06-17 16:19:22 +02:00
parent 6d3e6ad047
commit 34f8fd5490
36 changed files with 405 additions and 305 deletions

View File

@@ -0,0 +1,68 @@
import { fail, redirect } from '@sveltejs/kit';
import { client } from '$lib/minio';
import { checkIfExactDirectoryExists } from './s3ClientService';
/**
*
* @param request
* @returns
*/
export const getVorgangByCaseNumber = async ( request: Request) => {
const data = await request.formData();
const caseNumber = data.get('caseNumber');
const user_token = data.get('token');
if (!caseNumber) {
return fail(400, {
success: false,
caseNumber,
error: { message: 'Die Vorgangsnummer darf nicht leer sein.' }
});
}
if (typeof caseNumber === 'string' && !(await checkIfExactDirectoryExists(caseNumber))) {
return fail(400, {
success: false,
caseNumber,
error: { message: 'Die Vorgangsnummer existiert in dieser Anwendung nicht.' }
});
}
const token = await getTokenOrNull(caseNumber);
if (token && token != user_token) {
return fail(400, {
success: false,
caseNumber,
error: { message: 'Der Token ist falsch.' }
});
}
redirect(303, `/list/${caseNumber}`);
}
const getTokenOrNull = async (vorgang) => {
const code_name = '__perm__';
const obj_path = `${vorgang}/${code_name}`;
let resp = null;
let code_saved = '';
try {
resp = await client.getObject('tatort', obj_path);
code_saved = await new Response(resp).text();
} catch (error) {
if (error.name == 'S3Error') {
resp = null;
}
}
if (resp != null) {
return code_saved;
} else {
return null;
}
}