renaming pw to vorgangPIN, case to vorgang, password to vorgangToken

This commit is contained in:
2025-07-25 14:21:23 +02:00
parent 52e9eba7ed
commit 08d83c9ed4
26 changed files with 2052 additions and 219 deletions

View File

@@ -1,6 +1,5 @@
import jwt from 'jsonwebtoken';
import jsSHA from 'jssha';
import process from 'process';
import { db } from '$lib/server/dbService';
import config from '$lib/config';
@@ -8,7 +7,6 @@ import config from '$lib/config';
const SECRET = config.jwt.secret;
const EXPIRES_IN = config.jwt.expiresIn;
const AUTH = config.auth;
export function createToken(userData) {
return jwt.sign(userData, SECRET, { expiresIn: EXPIRES_IN });
@@ -18,15 +16,15 @@ export function decryptToken(token: string) {
return jwt.verify(token, SECRET);
}
export function authenticate(user, pass) {
export function authenticate(user, password) {
let JWTToken;
// hash user password
let hashedPW = new jsSHA('SHA-512', 'TEXT').update(pass).getHash('HEX');
const hashedPW = new jsSHA('SHA-512', 'TEXT').update(password).getHash('HEX');
let getUserSQLStmt = 'SELECT name, pw FROM users WHERE name = ?';
const getUserSQLStmt = 'SELECT name, pw FROM users WHERE name = ?';
const row = db.prepare(getUserSQLStmt).get(user);
let storedPW = row.pw;
const storedPW = row.pw;
if (hashedPW && hashedPW === storedPW) {
JWTToken = createToken({ id: user, admin: true });

View File

@@ -1,10 +0,0 @@
export default async function get_code(case_no) {
let url = `/api/list/${case_no}/casepw`;
const response = await fetch(url);
if (response.status == 200) {
return response.text();
} else {
return -1;
}
}

View File

@@ -1,7 +1,7 @@
import { client } from '$lib/minio';
export default async function caseNumberOccupied (caseNumber: string): Promise<boolean> {
const prefix = `${caseNumber}`;
export default async function vorgangNumberOccupied (vorgangNumber: string): Promise<boolean> {
const prefix = `${vorgangNumber}`;
const promise: Promise<boolean> = new Promise((resolve) => {
const stream = client.listObjectsV2('tatort', prefix, false, '');
stream.on('data', () => {

View File

@@ -6,11 +6,11 @@ import { db } from './dbService';
/**
* Get Vorgang and corresponend list of tatorte
* @param caseToken
* @param vorgangToken
* @returns
*/
export const getCrimesListByToken = async (caseToken: string) => {
const prefix = `${caseToken}/`;
export const getCrimesListByToken = async (vorgangToken: string) => {
const prefix = `${vorgangToken}/`;
const stream = client.listObjectsV2(BUCKET, prefix, false, '');
@@ -28,46 +28,46 @@ export const getCrimesListByToken = async (caseToken: string) => {
/**
* Get Vorgang
* @param caseToken
* @returns caseObj with keys `token`, `name`, `pw` || undefined
* @param vorgangToken
* @returns vorgangObj with keys `token`, `name`, `pin` || undefined
*/
export const getVorgangByToken = function (caseToken: string) {
let getVorgangSQLStmt = `SELECT token, name, pw FROM cases WHERE token = ?`;
export const getVorgangByToken = (vorgangToken: string): {token: string, name:string, pin: string} | undefined => {
const getVorgangSQLStmt = `SELECT token, name, pin FROM cases WHERE token = ?`;
const statement = db.prepare(getVorgangSQLStmt);
const result = statement.get(caseToken);
const result = statement.get(vorgangToken) as {token: string, name:string, pin: string} | undefined;
return result;
};
/**
* Get Vorgang
* @param caseName
* @returns caseObj with keys `token`, `name`, `pw` || undefined
* @param vorgangName
* @returns vorgangObj with keys `token`, `name`, `pin` || undefined
*/
export const getVorgangByName = function (caseName: string) {
let getVorgangByNameSQLStmt = `SELECT token, name, pw FROM cases WHERE name = ?`;
export const getVorgangByName = (vorgangName: string): {token: string, name: string, pin: string} | undefined => {
const getVorgangByNameSQLStmt = `SELECT token, name, pin FROM cases WHERE name = ?`;
const statement = db.prepare(getVorgangByNameSQLStmt);
const result = statement.get(caseName);
const result = statement.get(vorgangName) as {token: string, name: string, pin: string} | undefined;
return result;
};
/**
* Delete Vorgang
* @param caseToken
* @param vorgangToken
* @returns int: number of changes
*/
export const deleteVorgangByToken = function (caseToken: string) {
let deleteSQLStmt = 'DELETE FROM cases WHERE token = ?';
export const deleteVorgangByToken = function (vorgangToken: string) {
const deleteSQLStmt = 'DELETE FROM cases WHERE token = ?';
const statement = db.prepare(deleteSQLStmt);
const info = statement.run(caseToken);
const info = statement.run(vorgangToken);
return info.changes;
};
/**
* Fetches list of vorgänge from s3 bucket
* @returns list of available cases
* @returns list of available vorgaenge
*/
export const getListOfVorgänge = async () => {
const stream = client.listObjectsV2(BUCKET, '', false, '');
@@ -86,15 +86,15 @@ export const getListOfVorgänge = async () => {
/**
* Fetches list of vorgänge from database
* @returns list with of available cases
* @returns list with of available vorgaenge
*/
export const getVorgaenge = function () {
let getVorgaengeSQLStmt = `SELECT token, name, pw from cases`;
export const getVorgaenge = (): {vorgangToken: string, vorgangName: string, vorgangPIN: string}[] => {
const getVorgaengeSQLStmt = `SELECT token, name, pin from cases`;
const statement = db.prepare(getVorgaengeSQLStmt);
const result = statement.all();
const vorgaenge_list = [];
for (const r of result) {
const vorg = { token: r.token, name: r.name, pw: r.pw };
const result = statement.all() as { token: string; name: string; vorgangPIN: string }[];
const vorgaenge_list: {vorgangToken: string, vorgangName: string, vorgangPIN: string}[] = [];
for (const resultItem of result) {
const vorg = { vorgangToken: resultItem.token, vorgangName: resultItem.name, vorgangPIN: resultItem.vorgangPIN };
vorgaenge_list.push(vorg);
}
@@ -106,19 +106,19 @@ export const getVorgaenge = function () {
* @param request
* @returns fail or true
*/
export const checkIfVorgangExists = async (caseId: string | null) => {
if (!caseId) {
export const checkIfVorgangExists = async (vorgangId: string | null) => {
if (!vorgangId) {
return fail(400, {
success: false,
caseId,
vorgangId,
error: { message: 'Die Vorgangsnummer darf nicht leer sein.' }
});
}
if (typeof caseId === 'string' && !(await checkIfExactDirectoryExists(caseId))) {
if (typeof vorgangId === 'string' && !(await checkIfExactDirectoryExists(vorgangId))) {
return fail(400, {
success: false,
caseId,
vorgangId,
error: { message: 'Die Vorgangsnummer existiert in dieser Anwendung nicht.' }
});
}
@@ -126,42 +126,42 @@ export const checkIfVorgangExists = async (caseId: string | null) => {
return true;
};
export const vorgangExists = function (caseToken: string | null) {
if (!caseToken) {
export const vorgangExists = function (vorgangToken: string | null) {
if (!vorgangToken) {
return fail(400, {
success: false,
caseId: caseToken,
vorgangId: vorgangToken,
error: { message: 'Die Vorgangsnummer darf nicht leer sein.' }
});
}
let vorgaenge = getVorgaenge();
const vorgaenge_tokens = vorgaenge.map((vorg) => vorg.token);
const vorgaenge = getVorgaenge();
const vorgaengeTokens = vorgaenge.map((vorgang) => vorgang.vorgangToken);
const found = vorgaenge_tokens.indexOf(caseToken) != -1;
const found = vorgaengeTokens.indexOf(vorgangToken) != -1;
return found;
};
export const vorgangNameExists = function (caseName: string) {
let vorgaenge = getVorgaenge();
const vorgaengeNames = vorgaenge.map((vorg) => vorg.name);
export const vorgangNameExists = function (vorgangName: string) {
const vorgaenge = getVorgaenge();
const vorgaengeNames = vorgaenge.map((vorgang) => vorgang.vorgangName);
const found = vorgaengeNames.indexOf(caseName) != -1;
const found = vorgaengeNames.indexOf(vorgangName) != -1;
return found;
};
export const hasValidToken = async (caseId: string, caseToken: string) => {
const objPath = `${caseId}/${TOKENFILENAME}`;
export const hasValidToken = async (vorgangId: string, vorgangToken: string) => {
const objPath = `${vorgangId}/${TOKENFILENAME}`;
try {
if (!caseToken) {
if (!vorgangToken) {
return false;
}
const token = await getContentOfTextObject(BUCKET, objPath);
if (!token || token !== caseToken) {
if (!token || token !== vorgangToken) {
return false;
}
@@ -174,14 +174,14 @@ export const hasValidToken = async (caseId: string, caseToken: string) => {
}
};
export const passwordValid = function (caseToken, casePassword) {
if (!casePassword) {
export const vorgangPINValidation = function (vorgangToken: string, vorgangPIN: string) {
if (!vorgangPIN) {
return false;
}
const vorg = getVorgangByToken(caseToken);
const vorgang = getVorgangByToken(vorgangToken);
if (!vorg || vorg.pw !== casePassword) {
if (!vorgang || vorgang.pin !== vorgangPIN) {
return false;
}