@abpjs/identity-pro 2.9.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,205 @@
1
- import { PagedResultDto, ABP, PagedAndSortedResultRequestDto, RestService } from '@abpjs/core';
2
- import React from 'react';
1
+ import { RoutesService, SettingTabsService, PagedResultDto, ABP, PagedAndSortedResultRequestDto, RestService } from '@abpjs/core';
2
+ import React, { ComponentType } from 'react';
3
+
4
+ /**
5
+ * Identity Policy Names
6
+ * Policy names for permission checking in the Identity module.
7
+ * @since 3.0.0
8
+ * @updated 3.1.0 - Added SecurityLogs
9
+ */
10
+ /**
11
+ * Identity policy names enum.
12
+ * Used for checking permissions in the identity management module.
13
+ * @since 3.0.0
14
+ * @updated 3.1.0 - Added SecurityLogs
15
+ */
16
+ declare const eIdentityPolicyNames: {
17
+ readonly IdentityManagement: "AbpIdentity.Roles || AbpIdentity.Users || AbpIdentity.ClaimTypes || AbpIdentity.OrganizationUnits";
18
+ readonly Roles: "AbpIdentity.Roles";
19
+ readonly Users: "AbpIdentity.Users";
20
+ readonly ClaimTypes: "AbpIdentity.ClaimTypes";
21
+ readonly OrganizationUnits: "AbpIdentity.OrganizationUnits";
22
+ /** Security logs policy (v3.1.0) */
23
+ readonly SecurityLogs: "AbpIdentity.SecurityLogs";
24
+ };
25
+ /**
26
+ * Type for identity policy name values
27
+ */
28
+ type IdentityPolicyNameKey = (typeof eIdentityPolicyNames)[keyof typeof eIdentityPolicyNames];
29
+
30
+ /**
31
+ * Identity Route Names
32
+ * Route names for the Identity module navigation.
33
+ * @since 3.0.0
34
+ * @updated 3.1.0 - Added SecurityLogs
35
+ */
36
+ /**
37
+ * Identity route names enum.
38
+ * Used for localization and navigation configuration.
39
+ *
40
+ * Note: In v3.0.0, the Administration key was removed.
41
+ * Routes are now organized under IdentityManagement.
42
+ *
43
+ * @since 3.0.0
44
+ * @updated 3.1.0 - Added SecurityLogs
45
+ */
46
+ declare const eIdentityRouteNames: {
47
+ readonly IdentityManagement: "AbpIdentity::Menu:IdentityManagement";
48
+ readonly Roles: "AbpIdentity::Roles";
49
+ readonly Users: "AbpIdentity::Users";
50
+ readonly ClaimTypes: "AbpIdentity::ClaimTypes";
51
+ readonly OrganizationUnits: "AbpIdentity::OrganizationUnits";
52
+ /** Security logs route name (v3.1.0) */
53
+ readonly SecurityLogs: "AbpIdentity::SecurityLogs";
54
+ };
55
+ /**
56
+ * Type for identity route name values
57
+ */
58
+ type IdentityRouteNameKey = (typeof eIdentityRouteNames)[keyof typeof eIdentityRouteNames];
59
+
60
+ /**
61
+ * Identity Setting Tab Names
62
+ * Setting tab names for the Identity module settings.
63
+ * @since 3.0.0
64
+ */
65
+ /**
66
+ * Identity setting tab names enum.
67
+ * Used for settings panel tab configuration.
68
+ * @since 3.0.0
69
+ */
70
+ declare const eIdentitySettingTabNames: {
71
+ readonly IdentityManagement: "AbpIdentity::Menu:IdentityManagement";
72
+ };
73
+ /**
74
+ * Type for identity setting tab name values
75
+ */
76
+ type IdentitySettingTabNameKey = (typeof eIdentitySettingTabNames)[keyof typeof eIdentitySettingTabNames];
77
+
78
+ /**
79
+ * Identity Settings Models
80
+ * Models for identity settings configuration.
81
+ * @since 3.0.0
82
+ */
83
+ /**
84
+ * Identity settings structure containing all identity-related settings.
85
+ */
86
+ interface Settings {
87
+ password: Password;
88
+ lockout: Lockout;
89
+ signIn: SignIn;
90
+ user: User;
91
+ }
92
+ /**
93
+ * Lockout settings for user account lockout behavior.
94
+ */
95
+ interface Lockout {
96
+ allowedForNewUsers: boolean;
97
+ lockoutDuration: number;
98
+ maxFailedAccessAttempts: number;
99
+ }
100
+ /**
101
+ * Password settings for password validation rules.
102
+ */
103
+ interface Password {
104
+ requiredLength: number;
105
+ requiredUniqueChars: number;
106
+ requireNonAlphanumeric: boolean;
107
+ requireLowercase: boolean;
108
+ requireUppercase: boolean;
109
+ requireDigit: boolean;
110
+ }
111
+ /**
112
+ * Sign-in settings for login behavior.
113
+ */
114
+ interface SignIn {
115
+ requireConfirmedEmail: boolean;
116
+ enablePhoneNumberConfirmation: boolean;
117
+ requireConfirmedPhoneNumber: boolean;
118
+ }
119
+ /**
120
+ * User settings for user profile behavior.
121
+ */
122
+ interface User {
123
+ isUserNameUpdateEnabled: boolean;
124
+ isEmailUpdateEnabled: boolean;
125
+ }
126
+
127
+ type identitySettings_Lockout = Lockout;
128
+ type identitySettings_Password = Password;
129
+ type identitySettings_Settings = Settings;
130
+ type identitySettings_SignIn = SignIn;
131
+ type identitySettings_User = User;
132
+ declare namespace identitySettings {
133
+ export type { identitySettings_Lockout as Lockout, identitySettings_Password as Password, identitySettings_Settings as Settings, identitySettings_SignIn as SignIn, identitySettings_User as User };
134
+ }
135
+
136
+ /**
137
+ * Identity Route Provider
138
+ * Provides route configuration for the Identity module.
139
+ * @since 3.0.0
140
+ */
141
+
142
+ /**
143
+ * Configures identity routes using the provided RoutesService.
144
+ * @param routes - The RoutesService instance to configure routes with
145
+ * @returns A function that adds identity routes when called
146
+ */
147
+ declare function configureRoutes(routes: RoutesService): () => void;
148
+ /**
149
+ * Initializes identity routes using the global RoutesService.
150
+ * Convenience function that uses the global RoutesService singleton.
151
+ * @returns A function that adds identity routes when called
152
+ */
153
+ declare function initializeIdentityRoutes(): () => void;
154
+ /**
155
+ * Identity route providers object.
156
+ * Can be used for DI-style configuration.
157
+ */
158
+ declare const IDENTITY_ROUTE_PROVIDERS: {
159
+ configureRoutes: typeof configureRoutes;
160
+ };
161
+
162
+ /**
163
+ * Identity Setting Tab Provider
164
+ * Provides setting tab configuration for the Identity module.
165
+ * @since 3.0.0
166
+ */
167
+
168
+ /**
169
+ * Identity setting tab configuration metadata.
170
+ * This is the configuration used to create the setting tab.
171
+ */
172
+ interface IdentitySettingTabConfig {
173
+ name: string;
174
+ requiredPolicy: string;
175
+ order: number;
176
+ }
177
+ /**
178
+ * Default identity setting tab configuration metadata.
179
+ * Contains the metadata for the Identity settings tab.
180
+ */
181
+ declare const IDENTITY_SETTING_TAB_CONFIG: IdentitySettingTabConfig;
182
+ /**
183
+ * Configures identity setting tabs using the provided SettingTabsService.
184
+ * @param settingTabs - The SettingTabsService instance to configure tabs with
185
+ * @param component - Optional component to render for the tab (defaults to placeholder)
186
+ * @returns A function that adds identity setting tabs when called
187
+ */
188
+ declare function configureSettingTabs(settingTabs: SettingTabsService, component?: ComponentType<unknown>): () => void;
189
+ /**
190
+ * Initializes identity setting tabs using the global SettingTabsService.
191
+ * Convenience function that uses the global SettingTabsService singleton.
192
+ * @param component - Optional component to render for the tab
193
+ * @returns A function that adds identity setting tabs when called
194
+ */
195
+ declare function initializeIdentitySettingTabs(component?: ComponentType<unknown>): () => void;
196
+ /**
197
+ * Identity setting tab providers object.
198
+ * Can be used for DI-style configuration.
199
+ */
200
+ declare const IDENTITY_SETTING_TAB_PROVIDERS: {
201
+ configureSettingTabs: typeof configureSettingTabs;
202
+ };
3
203
 
4
204
  /**
5
205
  * Organization Unit With Details DTO
@@ -53,9 +253,12 @@ declare function createOrganizationUnitWithDetailsDto(initialValues?: Partial<Or
53
253
  * - Claim type management
54
254
  * - User/Role claims management
55
255
  * - Organization unit management (v2.9.0)
256
+ * - Security logs (v3.1.0)
257
+ * - User lock functionality (v3.1.0)
56
258
  *
57
259
  * @since 0.7.2
58
260
  * @updated 2.9.0 - Added organization units support
261
+ * @updated 3.1.0 - Added UserLockDurationType enum
59
262
  */
60
263
  declare namespace Identity {
61
264
  /**
@@ -201,7 +404,102 @@ declare namespace Identity {
201
404
  Boolean = 2,
202
405
  DateTime = 3
203
406
  }
407
+ /**
408
+ * User lock duration type enumeration (values in seconds)
409
+ * Used for locking user accounts for a specified duration.
410
+ * @since 3.1.0
411
+ */
412
+ enum UserLockDurationType {
413
+ Second = 1,
414
+ Minute = 60,
415
+ Hour = 3600,
416
+ Day = 86400,
417
+ Month = 2592000,
418
+ Year = 31536000
419
+ }
420
+ }
421
+
422
+ /**
423
+ * Identity Security Log Models
424
+ * Types for security log management in the Identity module.
425
+ * @since 3.1.0
426
+ */
427
+
428
+ /**
429
+ * Security log data transfer object.
430
+ * Represents a security event logged in the system.
431
+ * @since 3.1.0
432
+ */
433
+ interface IdentitySecurityLogDto {
434
+ /** Unique identifier for the log entry */
435
+ id: string;
436
+ /** Tenant ID if applicable */
437
+ tenantId?: string | null;
438
+ /** Application name */
439
+ applicationName?: string | null;
440
+ /** Identity of the user (e.g., username) */
441
+ identity?: string | null;
442
+ /** The action performed (e.g., LoginSucceeded, LoginFailed) */
443
+ action?: string | null;
444
+ /** User ID if logged in */
445
+ userId?: string | null;
446
+ /** Username if available */
447
+ userName?: string | null;
448
+ /** Client IP address */
449
+ clientIpAddress?: string | null;
450
+ /** Client ID for OAuth clients */
451
+ clientId?: string | null;
452
+ /** Correlation ID for request tracing */
453
+ correlationId?: string | null;
454
+ /** Browser information (user agent) */
455
+ browserInfo?: string | null;
456
+ /** When the event occurred */
457
+ creationTime: string;
458
+ /** Extra properties dictionary */
459
+ extraProperties?: Record<string, unknown>;
460
+ }
461
+ /**
462
+ * Input parameters for querying security logs.
463
+ * @since 3.1.0
464
+ */
465
+ interface IdentitySecurityLogGetListInput {
466
+ /** Filter term */
467
+ filter?: string;
468
+ /** Start date for date range filter */
469
+ startTime?: string;
470
+ /** End date for date range filter */
471
+ endTime?: string;
472
+ /** Application name filter */
473
+ applicationName?: string;
474
+ /** Identity filter */
475
+ identity?: string;
476
+ /** Action filter */
477
+ action?: string;
478
+ /** User ID filter */
479
+ userId?: string;
480
+ /** Username filter */
481
+ userName?: string;
482
+ /** Client ID filter */
483
+ clientId?: string;
484
+ /** Correlation ID filter */
485
+ correlationId?: string;
486
+ /** Sorting expression */
487
+ sorting?: string;
488
+ /** Number of items to skip */
489
+ skipCount?: number;
490
+ /** Maximum number of items to return */
491
+ maxResultCount?: number;
204
492
  }
493
+ /**
494
+ * Paginated response for security logs.
495
+ * @since 3.1.0
496
+ */
497
+ type IdentitySecurityLogResponse = PagedResultDto<IdentitySecurityLogDto>;
498
+ /**
499
+ * Factory function to create a default IdentitySecurityLogGetListInput.
500
+ * @since 3.1.0
501
+ */
502
+ declare function createIdentitySecurityLogGetListInput(overrides?: Partial<IdentitySecurityLogGetListInput>): IdentitySecurityLogGetListInput;
205
503
 
206
504
  /**
207
505
  * Get Organization Unit Input
@@ -350,7 +648,7 @@ declare function createOrganizationUnitUserInput(initialValues?: Partial<Organiz
350
648
 
351
649
  /**
352
650
  * Identity Pro Component Identifiers
353
- * Translated from @volo/abp.ng.identity v2.9.0
651
+ * Translated from @volo/abp.ng.identity v3.1.0
354
652
  */
355
653
  /**
356
654
  * Enum-like const object for identity component identifiers.
@@ -358,6 +656,7 @@ declare function createOrganizationUnitUserInput(initialValues?: Partial<Organiz
358
656
  * @since 2.4.0
359
657
  * @updated 2.7.0 - Changed from enum to const object
360
658
  * @updated 2.9.0 - Added OrganizationUnits, OrganizationMembers, OrganizationRoles
659
+ * @updated 3.1.0 - Added SecurityLogs
361
660
  */
362
661
  declare const eIdentityComponents: {
363
662
  readonly Claims: "Identity.ClaimsComponent";
@@ -366,6 +665,8 @@ declare const eIdentityComponents: {
366
665
  readonly OrganizationUnits: "Identity.OrganizationUnitsComponent";
367
666
  readonly OrganizationMembers: "Identity.OrganizationMembersComponent";
368
667
  readonly OrganizationRoles: "Identity.OrganizationRolesComponent";
668
+ /** Security logs component (v3.1.0) */
669
+ readonly SecurityLogs: "Identity.SecurityLogs";
369
670
  };
370
671
  /**
371
672
  * Type for identity component key values
@@ -373,27 +674,49 @@ declare const eIdentityComponents: {
373
674
  type IdentityComponentKey = (typeof eIdentityComponents)[keyof typeof eIdentityComponents];
374
675
 
375
676
  /**
376
- * Identity Pro Route Names
377
- * Translated from @volo/abp.ng.identity v2.9.0
677
+ * Identity Extensions Guard
678
+ * Guard for loading identity extensions before route activation.
679
+ * @since 3.0.0
378
680
  */
379
681
  /**
380
- * Enum-like const object for identity route names.
381
- * Used for localization and navigation configuration.
382
- * @since 2.7.0
383
- * @updated 2.9.0 - Added OrganizationUnits
682
+ * Hook to guard identity routes and load extensions.
683
+ * In Angular, this was a CanActivate guard that loaded entity actions,
684
+ * toolbar actions, entity props, and form props for identity components.
685
+ *
686
+ * In React, this is implemented as a hook that can be used in route loaders
687
+ * or component initialization.
688
+ *
689
+ * @returns Promise that resolves to true when extensions are loaded
384
690
  */
385
- declare const eIdentityRouteNames: {
386
- readonly Administration: "AbpUiNavigation::Menu:Administration";
387
- readonly IdentityManagement: "AbpIdentity::Menu:IdentityManagement";
388
- readonly Roles: "AbpIdentity::Roles";
389
- readonly Users: "AbpIdentity::Users";
390
- readonly ClaimTypes: "AbpIdentity::ClaimTypes";
391
- readonly OrganizationUnits: "AbpIdentity::OrganizationUnits";
691
+ declare function identityExtensionsGuard(): Promise<boolean>;
692
+ /**
693
+ * React hook version of the extensions guard.
694
+ * Can be used in route loaders or useEffect.
695
+ *
696
+ * @example
697
+ * ```tsx
698
+ * import { useIdentityExtensionsGuard } from '@abpjs/identity-pro';
699
+ *
700
+ * function IdentityLayout() {
701
+ * const { isLoaded, loading } = useIdentityExtensionsGuard();
702
+ *
703
+ * if (loading) return <Loading />;
704
+ *
705
+ * return <Outlet />;
706
+ * }
707
+ * ```
708
+ */
709
+ declare function useIdentityExtensionsGuard(): {
710
+ isLoaded: boolean;
711
+ loading: boolean;
392
712
  };
393
713
  /**
394
- * Type for identity route name values
714
+ * Identity Extensions Guard class (for compatibility with Angular pattern).
715
+ * @deprecated Use identityExtensionsGuard function or useIdentityExtensionsGuard hook instead.
395
716
  */
396
- type IdentityRouteNameKey = (typeof eIdentityRouteNames)[keyof typeof eIdentityRouteNames];
717
+ declare class IdentityExtensionsGuard {
718
+ canActivate(): Promise<boolean>;
719
+ }
397
720
 
398
721
  /**
399
722
  * Service for managing identity-related API operations.
@@ -402,9 +725,11 @@ type IdentityRouteNameKey = (typeof eIdentityRouteNames)[keyof typeof eIdentityR
402
725
  * Pro features include:
403
726
  * - Claim type management
404
727
  * - User/Role claims management
728
+ * - User lock functionality (v3.1.0)
405
729
  *
406
730
  * Translated from @volo/abp.ng.identity IdentityService
407
731
  * @since 2.0.0
732
+ * @updated 3.1.0 - Added getUserAvailableOrganizationUnits, lockUser methods
408
733
  */
409
734
  declare class IdentityService {
410
735
  /**
@@ -511,11 +836,37 @@ declare class IdentityService {
511
836
  */
512
837
  updateUser(id: string, body: Identity.UserSaveRequest): Promise<Identity.UserItem>;
513
838
  /**
514
- * Get all claim type names for dropdowns
515
- * Pro feature since 0.7.2
516
- * @returns Promise with claim type names
839
+ * Get assignable roles for users
840
+ * @since 3.0.0
841
+ * @returns Promise with roles that can be assigned to users
842
+ */
843
+ getUserAssingableRoles(): Promise<Identity.RoleResponse>;
844
+ /**
845
+ * Get available organization units for user assignment
846
+ * @since 3.1.0
847
+ * @returns Promise with available organization units
848
+ */
849
+ getUserAvailableOrganizationUnits(): Promise<PagedResultDto<OrganizationUnitWithDetailsDto>>;
850
+ /**
851
+ * Lock a user for a specified duration
852
+ * @since 3.1.0
853
+ * @param id - The user ID to lock
854
+ * @param lockoutDurationInSeconds - Duration to lock the user (in seconds)
855
+ * @returns Promise resolving when complete
856
+ */
857
+ lockUser(id: string, lockoutDurationInSeconds: number): Promise<void>;
858
+ /**
859
+ * Get claim types available for roles
860
+ * @since 3.0.0
861
+ * @returns Promise with claim type names for roles
862
+ */
863
+ getRolesClaimTypes(): Promise<Identity.ClaimTypeName[]>;
864
+ /**
865
+ * Get claim types available for users
866
+ * @since 3.0.0
867
+ * @returns Promise with claim type names for users
517
868
  */
518
- getClaimTypeNames(): Promise<Identity.ClaimTypeName[]>;
869
+ getUsersClaimTypes(): Promise<Identity.ClaimTypeName[]>;
519
870
  /**
520
871
  * Get claim types with pagination
521
872
  * Pro feature since 0.7.2
@@ -576,12 +927,13 @@ declare class IdentityService {
576
927
 
577
928
  /**
578
929
  * Identity State Service
579
- * Translated from @volo/abp.ng.identity v2.0.0
930
+ * Translated from @volo/abp.ng.identity v3.0.0
580
931
  *
581
932
  * This service provides facade methods for dispatching identity actions.
582
933
  * In Angular, this uses NGXS store dispatch. In React, we wrap the API calls.
583
934
  *
584
935
  * @since 2.0.0
936
+ * @updated 3.0.0 - Removed getClaimTypeNames and dispatchGetClaimTypeNames
585
937
  */
586
938
 
587
939
  /**
@@ -591,6 +943,7 @@ declare class IdentityService {
591
943
  * Pro features include all dispatch methods for roles, users, and claim types.
592
944
  *
593
945
  * @since 2.0.0
946
+ * @updated 3.0.0 - Removed claim type names state (use getRolesClaimTypes/getUsersClaimTypes instead)
594
947
  */
595
948
  declare class IdentityStateService {
596
949
  private identityService;
@@ -600,7 +953,6 @@ declare class IdentityStateService {
600
953
  private _usersTotalCount;
601
954
  private _claimTypes;
602
955
  private _claimTypesTotalCount;
603
- private _claimTypeNames;
604
956
  constructor(restService: RestService);
605
957
  /**
606
958
  * Get the current roles
@@ -626,10 +978,6 @@ declare class IdentityStateService {
626
978
  * Get the total count of claim types
627
979
  */
628
980
  getClaimTypesTotalCount(): number;
629
- /**
630
- * Get the claim type names
631
- */
632
- getClaimTypeNames(): Identity.ClaimTypeName[];
633
981
  /**
634
982
  * Dispatch get roles action
635
983
  * @param params Query parameters for fetching roles
@@ -701,12 +1049,6 @@ declare class IdentityStateService {
701
1049
  * @since 2.0.0
702
1050
  */
703
1051
  dispatchUpdateClaimType(body: Identity.ClaimType): Promise<Identity.ClaimType>;
704
- /**
705
- * Dispatch get claim type names action
706
- * @returns Promise resolving to the claim type names
707
- * @since 2.0.0
708
- */
709
- dispatchGetClaimTypeNames(): Promise<Identity.ClaimTypeName[]>;
710
1052
  /**
711
1053
  * Dispatch get users action
712
1054
  * @param params Query parameters for fetching users
@@ -752,6 +1094,57 @@ declare class IdentityStateService {
752
1094
  dispatchGetUserRoles(id: string): Promise<Identity.RoleItem[]>;
753
1095
  }
754
1096
 
1097
+ /**
1098
+ * Service for managing identity security log API operations.
1099
+ * Provides methods to query security logs for users in the identity module.
1100
+ *
1101
+ * Security logs track user authentication events such as:
1102
+ * - Login succeeded/failed
1103
+ * - Logout
1104
+ * - Password changes
1105
+ * - Two-factor authentication events
1106
+ *
1107
+ * Translated from @volo/abp.ng.identity IdentitySecurityLogService
1108
+ * @since 3.1.0
1109
+ */
1110
+ declare class IdentitySecurityLogService {
1111
+ /**
1112
+ * The API name used for REST requests.
1113
+ */
1114
+ apiName: string;
1115
+ private rest;
1116
+ constructor(rest: RestService);
1117
+ /**
1118
+ * Get security logs with filtering and pagination.
1119
+ * Requires AbpIdentity.SecurityLogs permission.
1120
+ * @param params - Query parameters for filtering and pagination
1121
+ * @returns Promise with paginated security logs
1122
+ */
1123
+ getListByInput(params?: Partial<IdentitySecurityLogGetListInput>): Promise<PagedResultDto<IdentitySecurityLogDto>>;
1124
+ /**
1125
+ * Get a single security log by ID.
1126
+ * Requires AbpIdentity.SecurityLogs permission.
1127
+ * @param id - The security log ID
1128
+ * @returns Promise with the security log details
1129
+ */
1130
+ getById(id: string): Promise<IdentitySecurityLogDto>;
1131
+ /**
1132
+ * Get security logs for the current user.
1133
+ * This method allows users to view their own security logs without
1134
+ * requiring the full AbpIdentity.SecurityLogs permission.
1135
+ * @param params - Query parameters for filtering and pagination
1136
+ * @returns Promise with paginated security logs for current user
1137
+ */
1138
+ getMyListByInput(params?: Partial<IdentitySecurityLogGetListInput>): Promise<PagedResultDto<IdentitySecurityLogDto>>;
1139
+ /**
1140
+ * Get a single security log by ID for the current user.
1141
+ * This method allows users to view details of their own security logs.
1142
+ * @param id - The security log ID
1143
+ * @returns Promise with the security log details
1144
+ */
1145
+ getMyById(id: string): Promise<IdentitySecurityLogDto>;
1146
+ }
1147
+
755
1148
  /**
756
1149
  * Service for managing organization unit operations.
757
1150
  * Handles CRUD operations for organization units hierarchy.
@@ -1104,13 +1497,14 @@ interface ClaimOperationResult {
1104
1497
  /**
1105
1498
  * Return type for useClaims hook
1106
1499
  * @since 0.7.2
1500
+ * @updated 3.0.0 - Added fetchRolesClaimTypes and fetchUsersClaimTypes
1107
1501
  */
1108
1502
  interface UseClaimsReturn {
1109
1503
  /** List of claim types */
1110
1504
  claimTypes: Identity.ClaimType[];
1111
1505
  /** Total count of claim types */
1112
1506
  totalCount: number;
1113
- /** Claim type names for dropdowns */
1507
+ /** Claim type names for dropdowns (roles) */
1114
1508
  claimTypeNames: Identity.ClaimTypeName[];
1115
1509
  /** Currently selected claim type for editing */
1116
1510
  selectedClaimType: Identity.ClaimType | null;
@@ -1124,8 +1518,16 @@ interface UseClaimsReturn {
1124
1518
  sortOrder: SortOrder;
1125
1519
  /** Fetch all claim types with optional pagination/filtering */
1126
1520
  fetchClaimTypes: (params?: ABP.PageQueryParams) => Promise<ClaimOperationResult>;
1127
- /** Fetch claim type names for dropdowns */
1128
- fetchClaimTypeNames: () => Promise<ClaimOperationResult>;
1521
+ /**
1522
+ * Fetch claim type names for roles
1523
+ * @since 3.0.0
1524
+ */
1525
+ fetchRolesClaimTypes: () => Promise<ClaimOperationResult>;
1526
+ /**
1527
+ * Fetch claim type names for users
1528
+ * @since 3.0.0
1529
+ */
1530
+ fetchUsersClaimTypes: () => Promise<ClaimOperationResult>;
1129
1531
  /** Get a claim type by ID and set it as selected */
1130
1532
  getClaimTypeById: (id: string) => Promise<ClaimOperationResult>;
1131
1533
  /** Create a new claim type */
@@ -1378,6 +1780,304 @@ declare const IDENTITY_POLICIES: {
1378
1780
  readonly ROLES_DELETE: "AbpIdentity.Roles.Delete";
1379
1781
  };
1380
1782
 
1783
+ /**
1784
+ * Identity Extension Tokens
1785
+ * Provides extension points for customizing identity components.
1786
+ * @since 3.0.0
1787
+ * @updated 3.1.0 - Added SecurityLogs extensions
1788
+ */
1789
+
1790
+ /**
1791
+ * Entity action definition for grid row actions.
1792
+ * @template T - The entity type for the action
1793
+ */
1794
+ interface EntityAction<T> {
1795
+ text: string;
1796
+ action?: (record: {
1797
+ record: T;
1798
+ }) => void;
1799
+ visible?: (data: {
1800
+ record: T;
1801
+ }) => boolean;
1802
+ permission?: string;
1803
+ icon?: string;
1804
+ }
1805
+ /**
1806
+ * Toolbar action definition for grid toolbar buttons.
1807
+ * @template T - The entity array type for the action
1808
+ */
1809
+ interface ToolbarAction<T> {
1810
+ text: string;
1811
+ action?: (data: {
1812
+ data: T;
1813
+ }) => void;
1814
+ visible?: (data: {
1815
+ data: T;
1816
+ }) => boolean;
1817
+ permission?: string;
1818
+ icon?: string;
1819
+ }
1820
+ /**
1821
+ * Entity prop definition for grid columns.
1822
+ * @template T - The entity type for the prop
1823
+ */
1824
+ interface EntityProp<T> {
1825
+ type: string;
1826
+ name: keyof T | string;
1827
+ displayName: string;
1828
+ sortable?: boolean;
1829
+ visible?: (data: {
1830
+ record: T;
1831
+ }) => boolean;
1832
+ valueResolver?: (data: {
1833
+ record: T;
1834
+ }) => string | number | boolean;
1835
+ }
1836
+ /**
1837
+ * Form prop definition for form fields.
1838
+ * @template T - The entity type for the form
1839
+ */
1840
+ interface FormProp<T> {
1841
+ type: string;
1842
+ name: keyof T | string;
1843
+ displayName: string;
1844
+ validators?: unknown[];
1845
+ visible?: (data: {
1846
+ entity?: T;
1847
+ }) => boolean;
1848
+ defaultValue?: unknown;
1849
+ options?: unknown[];
1850
+ }
1851
+ type EntityActionContributorCallback<T> = (actions: EntityAction<T>[]) => EntityAction<T>[];
1852
+ type ToolbarActionContributorCallback<T> = (actions: ToolbarAction<T>[]) => ToolbarAction<T>[];
1853
+ type EntityPropContributorCallback<T> = (props: EntityProp<T>[]) => EntityProp<T>[];
1854
+ type CreateFormPropContributorCallback<T> = (props: FormProp<T>[]) => FormProp<T>[];
1855
+ type EditFormPropContributorCallback<T> = (props: FormProp<T>[]) => FormProp<T>[];
1856
+ /**
1857
+ * Default entity actions for Claims component.
1858
+ */
1859
+ declare const DEFAULT_CLAIMS_ENTITY_ACTIONS: EntityAction<Identity.ClaimType>[];
1860
+ /**
1861
+ * Default entity actions for Roles component.
1862
+ */
1863
+ declare const DEFAULT_ROLES_ENTITY_ACTIONS: EntityAction<Identity.RoleItem>[];
1864
+ /**
1865
+ * Default entity actions for Users component.
1866
+ */
1867
+ declare const DEFAULT_USERS_ENTITY_ACTIONS: EntityAction<Identity.UserItem>[];
1868
+ /**
1869
+ * Default entity actions for Organization Members component.
1870
+ */
1871
+ declare const DEFAULT_ORGANIZATION_MEMBERS_ENTITY_ACTIONS: EntityAction<Identity.UserItem>[];
1872
+ /**
1873
+ * Default entity actions for Organization Roles component.
1874
+ */
1875
+ declare const DEFAULT_ORGANIZATION_ROLES_ENTITY_ACTIONS: EntityAction<Identity.RoleItem>[];
1876
+ /**
1877
+ * Default entity actions for Security Logs component.
1878
+ * Security logs are read-only, so no actions by default.
1879
+ * @since 3.1.0
1880
+ */
1881
+ declare const DEFAULT_SECURITY_LOGS_ENTITY_ACTIONS: EntityAction<IdentitySecurityLogDto>[];
1882
+ /**
1883
+ * Combined default identity entity actions.
1884
+ */
1885
+ declare const DEFAULT_IDENTITY_ENTITY_ACTIONS: {
1886
+ readonly 'Identity.ClaimsComponent': EntityAction<Identity.ClaimType>[];
1887
+ readonly 'Identity.RolesComponent': EntityAction<Identity.RoleItem>[];
1888
+ readonly 'Identity.UsersComponent': EntityAction<Identity.UserItem>[];
1889
+ readonly 'Identity.OrganizationMembersComponent': EntityAction<Identity.UserItem>[];
1890
+ readonly 'Identity.OrganizationRolesComponent': EntityAction<Identity.RoleItem>[];
1891
+ /** Security logs entity actions (v3.1.0) */
1892
+ readonly 'Identity.SecurityLogs': EntityAction<IdentitySecurityLogDto>[];
1893
+ };
1894
+ /**
1895
+ * Default toolbar actions for Claims component.
1896
+ */
1897
+ declare const DEFAULT_CLAIMS_TOOLBAR_ACTIONS: ToolbarAction<Identity.ClaimType[]>[];
1898
+ /**
1899
+ * Default toolbar actions for Roles component.
1900
+ */
1901
+ declare const DEFAULT_ROLES_TOOLBAR_ACTIONS: ToolbarAction<Identity.RoleItem[]>[];
1902
+ /**
1903
+ * Default toolbar actions for Users component.
1904
+ */
1905
+ declare const DEFAULT_USERS_TOOLBAR_ACTIONS: ToolbarAction<Identity.UserItem[]>[];
1906
+ /**
1907
+ * Default toolbar actions for Organization Units component.
1908
+ */
1909
+ declare const DEFAULT_ORGANIZATION_UNITS_TOOLBAR_ACTIONS: ToolbarAction<OrganizationUnitWithDetailsDto[]>[];
1910
+ /**
1911
+ * Default toolbar actions for Security Logs component.
1912
+ * Security logs are read-only, no create action by default.
1913
+ * @since 3.1.0
1914
+ */
1915
+ declare const DEFAULT_SECURITY_LOGS_TOOLBAR_ACTIONS: ToolbarAction<IdentitySecurityLogDto[]>[];
1916
+ /**
1917
+ * Combined default identity toolbar actions.
1918
+ */
1919
+ declare const DEFAULT_IDENTITY_TOOLBAR_ACTIONS: {
1920
+ readonly 'Identity.ClaimsComponent': ToolbarAction<Identity.ClaimType[]>[];
1921
+ readonly 'Identity.RolesComponent': ToolbarAction<Identity.RoleItem[]>[];
1922
+ readonly 'Identity.UsersComponent': ToolbarAction<Identity.UserItem[]>[];
1923
+ readonly 'Identity.OrganizationUnitsComponent': ToolbarAction<OrganizationUnitWithDetailsDto[]>[];
1924
+ /** Security logs toolbar actions (v3.1.0) */
1925
+ readonly 'Identity.SecurityLogs': ToolbarAction<IdentitySecurityLogDto[]>[];
1926
+ };
1927
+ /**
1928
+ * Default entity props for Claims component.
1929
+ */
1930
+ declare const DEFAULT_CLAIMS_ENTITY_PROPS: EntityProp<Identity.ClaimType>[];
1931
+ /**
1932
+ * Default entity props for Roles component.
1933
+ */
1934
+ declare const DEFAULT_ROLES_ENTITY_PROPS: EntityProp<Identity.RoleItem>[];
1935
+ /**
1936
+ * Default entity props for Users component.
1937
+ */
1938
+ declare const DEFAULT_USERS_ENTITY_PROPS: EntityProp<Identity.UserItem>[];
1939
+ /**
1940
+ * Default entity props for Organization Members component.
1941
+ */
1942
+ declare const DEFAULT_ORGANIZATION_MEMBERS_ENTITY_PROPS: EntityProp<Identity.UserItem>[];
1943
+ /**
1944
+ * Default entity props for Organization Roles component.
1945
+ */
1946
+ declare const DEFAULT_ORGANIZATION_ROLES_ENTITY_PROPS: EntityProp<Identity.RoleItem>[];
1947
+ /**
1948
+ * Default entity props for Security Logs component.
1949
+ * @since 3.1.0
1950
+ */
1951
+ declare const DEFAULT_SECURITY_LOGS_ENTITY_PROPS: EntityProp<IdentitySecurityLogDto>[];
1952
+ /**
1953
+ * Combined default identity entity props.
1954
+ */
1955
+ declare const DEFAULT_IDENTITY_ENTITY_PROPS: {
1956
+ readonly 'Identity.ClaimsComponent': EntityProp<Identity.ClaimType>[];
1957
+ readonly 'Identity.RolesComponent': EntityProp<Identity.RoleItem>[];
1958
+ readonly 'Identity.UsersComponent': EntityProp<Identity.UserItem>[];
1959
+ readonly 'Identity.OrganizationMembersComponent': EntityProp<Identity.UserItem>[];
1960
+ readonly 'Identity.OrganizationRolesComponent': EntityProp<Identity.RoleItem>[];
1961
+ /** Security logs entity props (v3.1.0) */
1962
+ readonly 'Identity.SecurityLogs': EntityProp<IdentitySecurityLogDto>[];
1963
+ };
1964
+ /**
1965
+ * Default create form props for Claims component.
1966
+ */
1967
+ declare const DEFAULT_CLAIMS_CREATE_FORM_PROPS: FormProp<Identity.ClaimType>[];
1968
+ /**
1969
+ * Default edit form props for Claims component.
1970
+ */
1971
+ declare const DEFAULT_CLAIMS_EDIT_FORM_PROPS: FormProp<Identity.ClaimType>[];
1972
+ /**
1973
+ * Default create form props for Roles component.
1974
+ */
1975
+ declare const DEFAULT_ROLES_CREATE_FORM_PROPS: FormProp<Identity.RoleItem>[];
1976
+ /**
1977
+ * Default edit form props for Roles component.
1978
+ */
1979
+ declare const DEFAULT_ROLES_EDIT_FORM_PROPS: FormProp<Identity.RoleItem>[];
1980
+ /**
1981
+ * Default create form props for Users component.
1982
+ */
1983
+ declare const DEFAULT_USERS_CREATE_FORM_PROPS: FormProp<Identity.UserItem>[];
1984
+ /**
1985
+ * Default edit form props for Users component.
1986
+ */
1987
+ declare const DEFAULT_USERS_EDIT_FORM_PROPS: FormProp<Identity.UserItem>[];
1988
+ /**
1989
+ * Combined default identity create form props.
1990
+ */
1991
+ declare const DEFAULT_IDENTITY_CREATE_FORM_PROPS: {
1992
+ readonly 'Identity.ClaimsComponent': FormProp<Identity.ClaimType>[];
1993
+ readonly 'Identity.RolesComponent': FormProp<Identity.RoleItem>[];
1994
+ readonly 'Identity.UsersComponent': FormProp<Identity.UserItem>[];
1995
+ };
1996
+ /**
1997
+ * Combined default identity edit form props.
1998
+ */
1999
+ declare const DEFAULT_IDENTITY_EDIT_FORM_PROPS: {
2000
+ readonly 'Identity.ClaimsComponent': FormProp<Identity.ClaimType>[];
2001
+ readonly 'Identity.RolesComponent': FormProp<Identity.RoleItem>[];
2002
+ readonly 'Identity.UsersComponent': FormProp<Identity.UserItem>[];
2003
+ };
2004
+ /**
2005
+ * Entity action contributors type.
2006
+ * @updated 3.1.0 - Added SecurityLogs
2007
+ */
2008
+ type IdentityEntityActionContributors = Partial<{
2009
+ [eIdentityComponents.Claims]: EntityActionContributorCallback<Identity.ClaimType>[];
2010
+ [eIdentityComponents.Roles]: EntityActionContributorCallback<Identity.RoleItem>[];
2011
+ [eIdentityComponents.Users]: EntityActionContributorCallback<Identity.UserItem>[];
2012
+ [eIdentityComponents.OrganizationMembers]: EntityActionContributorCallback<Identity.UserItem>[];
2013
+ [eIdentityComponents.OrganizationRoles]: EntityActionContributorCallback<Identity.RoleItem>[];
2014
+ [eIdentityComponents.SecurityLogs]: EntityActionContributorCallback<IdentitySecurityLogDto>[];
2015
+ }>;
2016
+ /**
2017
+ * Toolbar action contributors type.
2018
+ * @updated 3.1.0 - Added SecurityLogs
2019
+ */
2020
+ type IdentityToolbarActionContributors = Partial<{
2021
+ [eIdentityComponents.Claims]: ToolbarActionContributorCallback<Identity.ClaimType[]>[];
2022
+ [eIdentityComponents.Roles]: ToolbarActionContributorCallback<Identity.RoleItem[]>[];
2023
+ [eIdentityComponents.Users]: ToolbarActionContributorCallback<Identity.UserItem[]>[];
2024
+ [eIdentityComponents.OrganizationUnits]: ToolbarActionContributorCallback<OrganizationUnitWithDetailsDto[]>[];
2025
+ [eIdentityComponents.SecurityLogs]: ToolbarActionContributorCallback<IdentitySecurityLogDto[]>[];
2026
+ }>;
2027
+ /**
2028
+ * Entity prop contributors type.
2029
+ * @updated 3.1.0 - Added SecurityLogs
2030
+ */
2031
+ type IdentityEntityPropContributors = Partial<{
2032
+ [eIdentityComponents.Claims]: EntityPropContributorCallback<Identity.ClaimType>[];
2033
+ [eIdentityComponents.Roles]: EntityPropContributorCallback<Identity.RoleItem>[];
2034
+ [eIdentityComponents.Users]: EntityPropContributorCallback<Identity.UserItem>[];
2035
+ [eIdentityComponents.OrganizationMembers]: EntityPropContributorCallback<Identity.UserItem>[];
2036
+ [eIdentityComponents.OrganizationRoles]: EntityPropContributorCallback<Identity.RoleItem>[];
2037
+ [eIdentityComponents.SecurityLogs]: EntityPropContributorCallback<IdentitySecurityLogDto>[];
2038
+ }>;
2039
+ /**
2040
+ * Create form prop contributors type.
2041
+ */
2042
+ type IdentityCreateFormPropContributors = Partial<{
2043
+ [eIdentityComponents.Claims]: CreateFormPropContributorCallback<Identity.ClaimType>[];
2044
+ [eIdentityComponents.Roles]: CreateFormPropContributorCallback<Identity.RoleItem>[];
2045
+ [eIdentityComponents.Users]: CreateFormPropContributorCallback<Identity.UserItem>[];
2046
+ }>;
2047
+ /**
2048
+ * Edit form prop contributors type.
2049
+ */
2050
+ type IdentityEditFormPropContributors = Partial<{
2051
+ [eIdentityComponents.Claims]: EditFormPropContributorCallback<Identity.ClaimType>[];
2052
+ [eIdentityComponents.Roles]: EditFormPropContributorCallback<Identity.RoleItem>[];
2053
+ [eIdentityComponents.Users]: EditFormPropContributorCallback<Identity.UserItem>[];
2054
+ }>;
2055
+ /**
2056
+ * Token for identity entity action contributors.
2057
+ * Use as a React Context key.
2058
+ */
2059
+ declare const IDENTITY_ENTITY_ACTION_CONTRIBUTORS: unique symbol;
2060
+ /**
2061
+ * Token for identity toolbar action contributors.
2062
+ * Use as a React Context key.
2063
+ */
2064
+ declare const IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS: unique symbol;
2065
+ /**
2066
+ * Token for identity entity prop contributors.
2067
+ * Use as a React Context key.
2068
+ */
2069
+ declare const IDENTITY_ENTITY_PROP_CONTRIBUTORS: unique symbol;
2070
+ /**
2071
+ * Token for identity create form prop contributors.
2072
+ * Use as a React Context key.
2073
+ */
2074
+ declare const IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS: unique symbol;
2075
+ /**
2076
+ * Token for identity edit form prop contributors.
2077
+ * Use as a React Context key.
2078
+ */
2079
+ declare const IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS: unique symbol;
2080
+
1381
2081
  /**
1382
2082
  * Tree Adapter Utility
1383
2083
  * Translated from @volo/abp.ng.identity v2.9.0
@@ -1538,4 +2238,4 @@ declare class TreeAdapter<T extends BaseNode = BaseNode> {
1538
2238
  expandPathToNode(id: string): void;
1539
2239
  }
1540
2240
 
1541
- export { type BaseNode, ClaimModal, type ClaimModalProps, type ClaimOperationResult, ClaimsComponent, type ClaimsComponentProps, type GetOrganizationUnitInput, IDENTITY_POLICIES, IDENTITY_ROUTES, IDENTITY_ROUTE_PATHS, Identity, type IdentityComponentKey, type IdentityRouteNameKey, IdentityService, IdentityStateService, type OrganizationUnitCreateDto, type OrganizationUnitCreateOrUpdateDtoBase, type OrganizationUnitMoveInput, type OrganizationUnitRoleInput, OrganizationUnitService, type OrganizationUnitUpdateDto, type OrganizationUnitUserInput, type OrganizationUnitWithDetailsDto, type RoleOperationResult, RolesComponent, type RolesComponentProps, type SortOrder, TreeAdapter, type TreeNode, type UseClaimsReturn, type UseIdentityReturn, type UseRolesReturn, type UseUsersReturn, type UserOperationResult, UsersComponent, type UsersComponentProps, createGetOrganizationUnitInput, createOrganizationUnitCreateDto, createOrganizationUnitCreateOrUpdateDtoBase, createOrganizationUnitMoveInput, createOrganizationUnitRoleInput, createOrganizationUnitUpdateDto, createOrganizationUnitUserInput, createOrganizationUnitWithDetailsDto, createTreeNode, eIdentityComponents, eIdentityRouteNames, useClaims, useIdentity, useRoles, useUsers };
2241
+ export { type BaseNode, ClaimModal, type ClaimModalProps, type ClaimOperationResult, ClaimsComponent, type ClaimsComponentProps, type CreateFormPropContributorCallback, DEFAULT_CLAIMS_CREATE_FORM_PROPS, DEFAULT_CLAIMS_EDIT_FORM_PROPS, DEFAULT_CLAIMS_ENTITY_ACTIONS, DEFAULT_CLAIMS_ENTITY_PROPS, DEFAULT_CLAIMS_TOOLBAR_ACTIONS, DEFAULT_IDENTITY_CREATE_FORM_PROPS, DEFAULT_IDENTITY_EDIT_FORM_PROPS, DEFAULT_IDENTITY_ENTITY_ACTIONS, DEFAULT_IDENTITY_ENTITY_PROPS, DEFAULT_IDENTITY_TOOLBAR_ACTIONS, DEFAULT_ORGANIZATION_MEMBERS_ENTITY_ACTIONS, DEFAULT_ORGANIZATION_MEMBERS_ENTITY_PROPS, DEFAULT_ORGANIZATION_ROLES_ENTITY_ACTIONS, DEFAULT_ORGANIZATION_ROLES_ENTITY_PROPS, DEFAULT_ORGANIZATION_UNITS_TOOLBAR_ACTIONS, DEFAULT_ROLES_CREATE_FORM_PROPS, DEFAULT_ROLES_EDIT_FORM_PROPS, DEFAULT_ROLES_ENTITY_ACTIONS, DEFAULT_ROLES_ENTITY_PROPS, DEFAULT_ROLES_TOOLBAR_ACTIONS, DEFAULT_SECURITY_LOGS_ENTITY_ACTIONS, DEFAULT_SECURITY_LOGS_ENTITY_PROPS, DEFAULT_SECURITY_LOGS_TOOLBAR_ACTIONS, DEFAULT_USERS_CREATE_FORM_PROPS, DEFAULT_USERS_EDIT_FORM_PROPS, DEFAULT_USERS_ENTITY_ACTIONS, DEFAULT_USERS_ENTITY_PROPS, DEFAULT_USERS_TOOLBAR_ACTIONS, type EditFormPropContributorCallback, type EntityAction, type EntityActionContributorCallback, type EntityProp, type EntityPropContributorCallback, type FormProp, type GetOrganizationUnitInput, IDENTITY_CREATE_FORM_PROP_CONTRIBUTORS, IDENTITY_EDIT_FORM_PROP_CONTRIBUTORS, IDENTITY_ENTITY_ACTION_CONTRIBUTORS, IDENTITY_ENTITY_PROP_CONTRIBUTORS, IDENTITY_POLICIES, IDENTITY_ROUTES, IDENTITY_ROUTE_PATHS, IDENTITY_ROUTE_PROVIDERS, IDENTITY_SETTING_TAB_CONFIG, IDENTITY_SETTING_TAB_PROVIDERS, IDENTITY_TOOLBAR_ACTION_CONTRIBUTORS, Identity, type IdentityComponentKey, type IdentityCreateFormPropContributors, type IdentityEditFormPropContributors, type IdentityEntityActionContributors, type IdentityEntityPropContributors, IdentityExtensionsGuard, type IdentityPolicyNameKey, type IdentityRouteNameKey, type IdentitySecurityLogDto, type IdentitySecurityLogGetListInput, type IdentitySecurityLogResponse, IdentitySecurityLogService, IdentityService, type IdentitySettingTabConfig, type IdentitySettingTabNameKey, identitySettings as IdentitySettings, IdentityStateService, type IdentityToolbarActionContributors, type OrganizationUnitCreateDto, type OrganizationUnitCreateOrUpdateDtoBase, type OrganizationUnitMoveInput, type OrganizationUnitRoleInput, OrganizationUnitService, type OrganizationUnitUpdateDto, type OrganizationUnitUserInput, type OrganizationUnitWithDetailsDto, type RoleOperationResult, RolesComponent, type RolesComponentProps, type SortOrder, type ToolbarAction, type ToolbarActionContributorCallback, TreeAdapter, type TreeNode, type UseClaimsReturn, type UseIdentityReturn, type UseRolesReturn, type UseUsersReturn, type UserOperationResult, UsersComponent, type UsersComponentProps, configureRoutes, configureSettingTabs, createGetOrganizationUnitInput, createIdentitySecurityLogGetListInput, createOrganizationUnitCreateDto, createOrganizationUnitCreateOrUpdateDtoBase, createOrganizationUnitMoveInput, createOrganizationUnitRoleInput, createOrganizationUnitUpdateDto, createOrganizationUnitUserInput, createOrganizationUnitWithDetailsDto, createTreeNode, eIdentityComponents, eIdentityPolicyNames, eIdentityRouteNames, eIdentitySettingTabNames, identityExtensionsGuard, initializeIdentityRoutes, initializeIdentitySettingTabs, useClaims, useIdentity, useIdentityExtensionsGuard, useRoles, useUsers };