From 0e935142622d72362f75df45422c494688bed16c Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Tue, 6 Jan 2026 15:46:13 -0500 Subject: [PATCH] Implement User Details page at /core/users/[user_id] - Added dynamic route for user details with manager-level access - Implemented permission management UI (Super, Manager, Admin, Verified) - Added account status toggles and timestamp visibility - Integrated with V3 User CRUD logic and editable field whitelist --- src/routes/core/users/[user_id]/+page.svelte | 219 +++++++++++++++++++ src/routes/core/users/[user_id]/+page.ts | 28 +++ 2 files changed, 247 insertions(+) create mode 100644 src/routes/core/users/[user_id]/+page.svelte create mode 100644 src/routes/core/users/[user_id]/+page.ts diff --git a/src/routes/core/users/[user_id]/+page.svelte b/src/routes/core/users/[user_id]/+page.svelte new file mode 100644 index 00000000..f83a11db --- /dev/null +++ b/src/routes/core/users/[user_id]/+page.svelte @@ -0,0 +1,219 @@ + + +
+
+
+ + + +
+
+ +
+
+

{user.username}

+

ID: {user.user_id_random}

+
+
+
+
+ + +
+
+ +
+ +
+
+

+ Basic Profile +

+
+ + + +
+
+ +
+

+ System Permissions +

+
+ + + + +
+
+
+ + +
+
+

+ Account Status +

+
+ + + +
+
+ +
+

+ Linking Info +

+
+
+ Linked Person: + + {#if user.person_id_random} + + {user.person_id_random} + + {:else} + Unlinked + {/if} + +
+
+ Account ID: + {user.account_id_random || '--'} +
+
+
+ +
+

+ Timestamps +

+
+

Created: {new Date(user.created_on).toLocaleString()}

+ {#if user.updated_on} +

Updated: {new Date(user.updated_on).toLocaleString()}

+ {/if} +
+
+
+
+
diff --git a/src/routes/core/users/[user_id]/+page.ts b/src/routes/core/users/[user_id]/+page.ts new file mode 100644 index 00000000..820859cd --- /dev/null +++ b/src/routes/core/users/[user_id]/+page.ts @@ -0,0 +1,28 @@ +import type { PageLoad } from './$types'; +import { error } from '@sveltejs/kit'; +import { load_ae_obj_id__user } from '$lib/ae_core/ae_core__user'; +import { get } from 'svelte/store'; +import { ae_api } from '$lib/stores/ae_stores'; + +export const load: PageLoad = async ({ params, parent }) => { + const parentData = await parent(); + const { user_id } = params; + + if (!user_id) { + error(404, 'User ID not specified'); + } + + const user = await load_ae_obj_id__user({ + api_cfg: get(ae_api), + user_id, + log_lvl: 1 + }); + + if (!user) { + error(404, 'User not found'); + } + + return { + user + }; +};