From 2fb335cb5a4a77b54d9c41cdcdab00ee45d390a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Fra=C3=9F?= Date: Tue, 30 Apr 2024 19:04:07 +0200 Subject: [PATCH] [mod] conf:neuer Zweig settings.name_index --- source/conf.ts | 12 ++++++++++++ source/repositories/name_index.ts | 23 +++++++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/source/conf.ts b/source/conf.ts index b1d2b58..fb70a8a 100644 --- a/source/conf.ts +++ b/source/conf.ts @@ -32,6 +32,7 @@ namespace _espe.conf }; server : { port : int; + path_base : string; }; database : ( { @@ -101,6 +102,10 @@ namespace _espe.conf must_contain_number : boolean; must_contain_special_character : boolean; }; + name_index : { + veil : boolean; + salt : (null | string); + }; }; // TODO: evtl. in Datenbank verlagern admins : Array< @@ -152,6 +157,7 @@ namespace _espe.conf "server": ( ((node_server) => ({ "port": (node_server["port"] ?? 7979), + "path_base": (node_server["path_base"] ?? ""), })) (conf_raw["server"] ?? {}) ), "database": ( @@ -255,6 +261,12 @@ namespace _espe.conf "must_contain_special_character": (node_settings_password_policy["must_contain_special_character"] ?? true), })) (node_settings["password_policy"] ?? {}) ), + "name_index": ( + ((node_settings_password_policy) => ({ + "veil": (node_settings_password_policy["veil"] ?? false), + "salt": (node_settings_password_policy["salt"] ?? null), + })) (node_settings["name_index"] ?? {}) + ), })) (conf_raw["settings"] ?? {}) ), "admins": (conf_raw["admins"] ?? []), diff --git a/source/repositories/name_index.ts b/source/repositories/name_index.ts index 9e2b226..2002274 100644 --- a/source/repositories/name_index.ts +++ b/source/repositories/name_index.ts @@ -43,15 +43,33 @@ namespace _espe.repository.name_index } + /** + */ + async function get_name_image( + name : string + ) : Promise + { + return ( + (! _espe.conf.get().settings.name_index.veil) + ? name + : await lib_plankton.sha256.get( + lib_plankton.json.encode(name), + _espe.conf.get().settings.name_index.salt + ) + ); + } + + /** */ export async function read( name : string ) : Promise { + const name_image : string = await get_name_image(name); let row : Record; try { - row = await get_chest().read([name]); + row = await get_chest().read([name_image]); return row["index"]; } catch (error) { @@ -67,7 +85,8 @@ namespace _espe.repository.name_index index : int ) : Promise { - await get_chest().write([name], {"index": index}); + const name_image : string = await get_name_image(name); + await get_chest().write([name_image], {"index": index}); } }