File tree Expand file tree Collapse file tree 6 files changed +51
-0
lines changed
src/routes/(protected)/users Expand file tree Collapse file tree 6 files changed +51
-0
lines changed Original file line number Diff line number Diff line change @@ -31,12 +31,17 @@ export const load: PageServerLoad = async ({ locals }) => {
3131 const sessionOAuth = SessionOAuthHelper . getSessionOAuth ( session ) ;
3232 const accessToken = sessionOAuth ?. accessToken ;
3333
34+ const userEntitlements = ( session . data . user as any ) ?. entitlements ?. list || [ ] ;
35+ const requiredRoles = [ { role : "CanGetAnyUser" } ] ;
36+
3437 if ( ! accessToken ) {
3538 logger . warn ( "No access token available for users API calls" ) ;
3639 return {
3740 users : null ,
3841 hasApiAccess : false ,
3942 error : "No API access token available" ,
43+ userEntitlements,
44+ requiredRoles,
4045 } ;
4146 }
4247
@@ -61,13 +66,17 @@ export const load: PageServerLoad = async ({ locals }) => {
6166 return {
6267 users : sortedUsers ,
6368 hasApiAccess : true ,
69+ userEntitlements,
70+ requiredRoles,
6471 } ;
6572 } else {
6673 logger . warn ( "NO USERS DATA IN RESPONSE" ) ;
6774 return {
6875 users : [ ] ,
6976 hasApiAccess : true ,
7077 error : "No users data found in API response" ,
78+ userEntitlements,
79+ requiredRoles,
7180 } ;
7281 }
7382 } catch ( err ) {
@@ -84,6 +93,8 @@ export const load: PageServerLoad = async ({ locals }) => {
8493 users : [ ] ,
8594 hasApiAccess : true ,
8695 error : err instanceof Error ? err . message : "Failed to load users" ,
96+ userEntitlements,
97+ requiredRoles,
8798 } ;
8899 }
89100} ;
Original file line number Diff line number Diff line change 11<script lang =" ts" >
22 import { Mail } from " @lucide/svelte" ;
3+ import PageRoleCheck from " $lib/components/PageRoleCheck.svelte" ;
34 import type { PageData } from " ./$types" ;
45
56 let { data } = $props <{ data: PageData }>();
67
8+ const userEntitlements = data .userEntitlements || [];
9+ const requiredRoles = data .requiredRoles || [];
10+
711 let users = $derived (data .users || []);
812 let hasApiAccess = $derived (data .hasApiAccess );
913 let error = $derived (data .error );
125129 <title >Users - API Manager II</title >
126130</svelte:head >
127131
132+ <PageRoleCheck {userEntitlements } {requiredRoles }>
128133<div class =" container mx-auto px-4 py-8" >
129134 <!-- Error Alert -->
130135 {#if error && ! hasApiAccess }
313318 </div >
314319 </div >
315320</div >
321+ </PageRoleCheck >
316322
317323<style >
318324 .container {
Original file line number Diff line number Diff line change @@ -29,6 +29,9 @@ export const load: PageServerLoad = async ({ locals, params }) => {
2929 throw error ( 400 , "Provider and username are required" ) ;
3030 }
3131
32+ const userEntitlements = ( session . data . user as any ) ?. entitlements ?. list || [ ] ;
33+ const requiredRoles = [ { role : "CanGetAnyUser" } ] ;
34+
3235 // Get the OAuth session data
3336 const sessionOAuth = SessionOAuthHelper . getSessionOAuth ( session ) ;
3437 const accessToken = sessionOAuth ?. accessToken ;
@@ -39,6 +42,8 @@ export const load: PageServerLoad = async ({ locals, params }) => {
3942 user : null ,
4043 hasApiAccess : false ,
4144 error : "No API access token available" ,
45+ userEntitlements,
46+ requiredRoles,
4247 } ;
4348 }
4449
@@ -58,6 +63,8 @@ export const load: PageServerLoad = async ({ locals, params }) => {
5863 provider,
5964 username,
6065 hasApiAccess : true ,
66+ userEntitlements,
67+ requiredRoles,
6168 } ;
6269 } else {
6370 logger . warn ( "NO USER DATA IN RESPONSE" ) ;
@@ -67,6 +74,8 @@ export const load: PageServerLoad = async ({ locals, params }) => {
6774 username,
6875 hasApiAccess : true ,
6976 error : "User not found" ,
77+ userEntitlements,
78+ requiredRoles,
7079 } ;
7180 }
7281 } catch ( err ) {
@@ -82,6 +91,8 @@ export const load: PageServerLoad = async ({ locals, params }) => {
8291 username,
8392 hasApiAccess : false ,
8493 error : err instanceof Error ? err . message : "Failed to load user details" ,
94+ userEntitlements,
95+ requiredRoles,
8596 } ;
8697 }
8798} ;
Original file line number Diff line number Diff line change 11<script lang =" ts" >
22 import type { PageData } from " ./$types" ;
3+ import PageRoleCheck from " $lib/components/PageRoleCheck.svelte" ;
34
45 let { data } = $props <{ data: PageData }>();
56
7+ const userEntitlements = data .userEntitlements || [];
8+ const requiredRoles = data .requiredRoles || [];
9+
610 let user = $derived (data .user );
711 let hasApiAccess = $derived (data .hasApiAccess );
812 let error = $derived (data .error );
2832 <title >User Details - {data .username } - API Manager II</title >
2933</svelte:head >
3034
35+ <PageRoleCheck {userEntitlements } {requiredRoles }>
3136<div class =" container mx-auto px-4 py-8" >
3237 <!-- Breadcrumb Navigation -->
3338 <nav class =" breadcrumb mb-6" >
233238 </div >
234239 {/if }
235240</div >
241+ </PageRoleCheck >
236242
237243<style >
238244 .container {
Original file line number Diff line number Diff line change @@ -32,6 +32,9 @@ export const load: PageServerLoad = async ({ locals, params }) => {
3232 throw error ( 400 , "User ID is required" ) ;
3333 }
3434
35+ const userEntitlements = ( session . data . user as any ) ?. entitlements ?. list || [ ] ;
36+ const requiredRoles = [ { role : "CanGetAnyUser" } ] ;
37+
3538 // Get the OAuth session data
3639 const sessionOAuth = SessionOAuthHelper . getSessionOAuth ( session ) ;
3740 const accessToken = sessionOAuth ?. accessToken ;
@@ -42,6 +45,8 @@ export const load: PageServerLoad = async ({ locals, params }) => {
4245 user : null ,
4346 hasApiAccess : false ,
4447 error : "No API access token available" ,
48+ userEntitlements,
49+ requiredRoles,
4550 } ;
4651 }
4752
@@ -75,6 +80,8 @@ export const load: PageServerLoad = async ({ locals, params }) => {
7580 user : response ,
7681 user_id,
7782 hasApiAccess : true ,
83+ userEntitlements,
84+ requiredRoles,
7885 } ;
7986 } else {
8087 logger . warn ( "NO USER DATA IN RESPONSE" ) ;
@@ -83,6 +90,8 @@ export const load: PageServerLoad = async ({ locals, params }) => {
8390 user_id,
8491 hasApiAccess : true ,
8592 error : "User not found" ,
93+ userEntitlements,
94+ requiredRoles,
8695 } ;
8796 }
8897 } catch ( err ) {
@@ -97,6 +106,8 @@ export const load: PageServerLoad = async ({ locals, params }) => {
97106 user_id,
98107 hasApiAccess : false ,
99108 error : err instanceof Error ? err . message : "Failed to load user details" ,
109+ userEntitlements,
110+ requiredRoles,
100111 } ;
101112 }
102113} ;
Original file line number Diff line number Diff line change 11<script lang =" ts" >
22 import type { PageData } from " ./$types" ;
33 import { Trash2 } from " @lucide/svelte" ;
4+ import PageRoleCheck from " $lib/components/PageRoleCheck.svelte" ;
45
56 let { data } = $props <{ data: PageData }>();
67
8+ const userEntitlements = data .userEntitlements || [];
9+ const requiredRoles = data .requiredRoles || [];
10+
711 let user = $derived (data .user );
812 let hasApiAccess = $derived (data .hasApiAccess );
913 let error = $derived (data .error );
3135 >
3236</svelte:head >
3337
38+ <PageRoleCheck {userEntitlements } {requiredRoles }>
3439<div class =" container mx-auto px-4 py-8" >
3540 <!-- Breadcrumb Navigation -->
3641 <nav class =" breadcrumb mb-6" >
233238 </div >
234239 {/if }
235240</div >
241+ </PageRoleCheck >
236242
237243<style >
238244 .container {
You can’t perform that action at this time.
0 commit comments