@ahksolution/permissions-sdk 1.3.0 → 1.3.1

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/README.md CHANGED
@@ -261,18 +261,20 @@ export class OrderService {
261
261
 
262
262
  ### PermissionsGrpcClient
263
263
 
264
- | Method | Description |
265
- | --------------------------------------------------------- | ------------------------------------------------------ |
266
- | `validateToken(token)` | Validates JWT and returns `ValidateTokenResult` |
267
- | `hasPermission(userId, permissionCode)` | Returns `boolean` - does user have this permission? |
268
- | `hasAllPermissions(userId, permissionCodes)` | Returns `boolean` - does user have ALL permissions? |
269
- | `hasAnyPermission(userId, permissionCodes)` | Returns `boolean` - does user have ANY permission? |
270
- | `checkPermission(userId, permissionCode, options?)` | Returns full `EvaluationResult` with details |
271
- | `checkBulkPermissions(userId, permissionCodes, options?)` | Returns results for multiple permissions |
272
- | `getEffectivePermissions(userId)` | Returns all permissions and roles for a user |
273
- | `getUserInfo(userId)` | Returns complete user profile with roles & permissions |
274
- | `getUserRoles(userId)` | Returns user's roles only |
275
- | `getUserPermissions(userId)` | Returns user's permission codes only |
264
+ | Method | Description |
265
+ | --------------------------------------------------------- | ----------------------------------------------------------- |
266
+ | `validateToken(token)` | Validates JWT and returns `ValidateTokenResult` |
267
+ | `hasPermission(userId, permissionCode)` | Returns `boolean` - does user have this permission? |
268
+ | `hasAllPermissions(userId, permissionCodes)` | Returns `boolean` - does user have ALL permissions? |
269
+ | `hasAnyPermission(userId, permissionCodes)` | Returns `boolean` - does user have ANY permission? |
270
+ | `checkPermission(userId, permissionCode, options?)` | Returns full `EvaluationResult` with details |
271
+ | `checkBulkPermissions(userId, permissionCodes, options?)` | Returns results for multiple permissions |
272
+ | `getEffectivePermissions(userId)` | Returns all permissions and roles for a user |
273
+ | `getUserInfo(userId)` | Returns complete user profile with roles & permissions |
274
+ | `getUserRoles(userId)` | Returns user's roles only |
275
+ | `getUserPermissions(userId)` | Returns user's permission codes only |
276
+ | `getBulkUserInfo(userIds, options?)` | Returns user data for multiple users with optional flags |
277
+ | `createUser(options)` | Creates a new user with validations and optional magic link |
276
278
 
277
279
  ### Decorators
278
280
 
@@ -410,9 +412,123 @@ export class UserProfileService {
410
412
  }
411
413
  ```
412
414
 
415
+ ### Bulk User Data (v1.4.0+)
416
+
417
+ Fetch data for multiple users in a single gRPC call with optional flags to control what data is returned.
418
+
419
+ ```typescript
420
+ import { Injectable, NotFoundException } from '@nestjs/common';
421
+ import { PermissionsGrpcClient } from '@ahksolution/permissions-sdk';
422
+
423
+ @Injectable()
424
+ export class TeamService {
425
+ constructor(private readonly permissions: PermissionsGrpcClient) {}
426
+
427
+ // Get basic info for multiple users (no roles/permissions)
428
+ async getTeamMembers(userIds: string[]) {
429
+ const result = await this.permissions.getBulkUserInfo(userIds);
430
+
431
+ return Object.entries(result.users)
432
+ .filter(([_, item]) => item.found)
433
+ .map(([userId, item]) => ({
434
+ id: item.user!.id,
435
+ email: item.user!.email,
436
+ name: item.user!.profile?.fullName,
437
+ }));
438
+ }
439
+
440
+ // Get users with their roles included
441
+ async getTeamWithRoles(userIds: string[]) {
442
+ const result = await this.permissions.getBulkUserInfo(userIds, {
443
+ includeRoles: true,
444
+ });
445
+
446
+ return Object.entries(result.users)
447
+ .filter(([_, item]) => item.found)
448
+ .map(([userId, item]) => ({
449
+ id: item.user!.id,
450
+ email: item.user!.email,
451
+ roles: item.user!.roles.map((r) => r.name),
452
+ }));
453
+ }
454
+
455
+ // Get users with both roles and permissions
456
+ async getTeamWithFullAccess(userIds: string[]) {
457
+ const result = await this.permissions.getBulkUserInfo(userIds, {
458
+ includeRoles: true,
459
+ includePermissions: true,
460
+ });
461
+
462
+ return Object.entries(result.users).map(([userId, item]) => {
463
+ if (!item.found) {
464
+ return { userId, error: item.errorMessage };
465
+ }
466
+ return {
467
+ userId,
468
+ email: item.user!.email,
469
+ roles: item.user!.roles,
470
+ permissions: item.user!.permissions,
471
+ hasAllAccess: item.user!.hasAllAccess,
472
+ };
473
+ });
474
+ }
475
+
476
+ // Handle mixed results (some users found, some not)
477
+ async validateUserIds(userIds: string[]) {
478
+ const result = await this.permissions.getBulkUserInfo(userIds);
479
+
480
+ const found: string[] = [];
481
+ const notFound: string[] = [];
482
+ const inactive: string[] = [];
483
+
484
+ for (const [userId, item] of Object.entries(result.users)) {
485
+ if (item.found) {
486
+ found.push(userId);
487
+ } else if (item.errorMessage === 'USER_INACTIVE') {
488
+ inactive.push(userId);
489
+ } else {
490
+ notFound.push(userId);
491
+ }
492
+ }
493
+
494
+ return { found, notFound, inactive };
495
+ }
496
+ }
497
+ ```
498
+
499
+ **Options:**
500
+
501
+ | Option | Type | Default | Description |
502
+ | -------------------- | --------- | ------- | ------------------------------------ |
503
+ | `includeRoles` | `boolean` | `false` | Include user roles in response |
504
+ | `includePermissions` | `boolean` | `false` | Include user permissions in response |
505
+
413
506
  **Return Types:**
414
507
 
415
508
  ```typescript
509
+ interface GetBulkUserInfoResult {
510
+ users: Record<string, BulkUserInfoItem>;
511
+ }
512
+
513
+ interface BulkUserInfoItem {
514
+ found: boolean;
515
+ errorMessage?: string; // 'USER_NOT_FOUND' | 'USER_INACTIVE' | 'INTERNAL_ERROR'
516
+ user?: BulkUserData; // Only populated if found=true
517
+ }
518
+
519
+ interface BulkUserData {
520
+ id: string;
521
+ email: string | null;
522
+ phone: string | null;
523
+ userType: string;
524
+ status: string;
525
+ isProfileComplete: boolean;
526
+ roles: RoleInfo[]; // Empty array if includeRoles=false
527
+ permissions: string[]; // Empty array if includePermissions=false
528
+ hasAllAccess: boolean;
529
+ profile?: UserProfileData;
530
+ }
531
+
416
532
  interface GetUserInfoResult {
417
533
  found: boolean;
418
534
  errorMessage?: string; // 'USER_NOT_FOUND' | 'USER_INACTIVE' | 'INTERNAL_ERROR'
@@ -433,6 +549,144 @@ interface GetUserPermissionsResult {
433
549
  }
434
550
  ```
435
551
 
552
+ ### Create User (v1.5.0+)
553
+
554
+ Create new users via gRPC with full validation support including email uniqueness, magic link sending, role assignment, and organization assignment.
555
+
556
+ ```typescript
557
+ import { Injectable, BadRequestException, ConflictException } from '@nestjs/common';
558
+ import { PermissionsGrpcClient, UserType } from '@ahksolution/permissions-sdk';
559
+
560
+ @Injectable()
561
+ export class UserManagementService {
562
+ constructor(private readonly permissions: PermissionsGrpcClient) {}
563
+
564
+ // Create an admin user with magic link
565
+ async createAdminUser(email: string, firstName: string, lastName: string) {
566
+ const result = await this.permissions.createUser({
567
+ firstName,
568
+ lastName,
569
+ email,
570
+ userType: UserType.ADMIN,
571
+ sendMagicLink: true, // Default: true
572
+ });
573
+
574
+ if (!result.success) {
575
+ // Handle specific error codes
576
+ if (result.errorCode === 'EMAIL_EXISTS') {
577
+ throw new ConflictException('A user with this email already exists');
578
+ }
579
+ throw new BadRequestException(result.errorMessage);
580
+ }
581
+
582
+ return {
583
+ userId: result.user!.id,
584
+ email: result.user!.email,
585
+ magicLinkSent: result.magicLinkSent,
586
+ };
587
+ }
588
+
589
+ // Create a customer user with roles and organization
590
+ async createCustomerWithRoles(data: {
591
+ firstName: string;
592
+ lastName: string;
593
+ email?: string;
594
+ phone?: string;
595
+ departmentId?: string;
596
+ designationId?: string;
597
+ roleIds?: string[];
598
+ }) {
599
+ const result = await this.permissions.createUser({
600
+ firstName: data.firstName,
601
+ lastName: data.lastName,
602
+ email: data.email,
603
+ phone: data.phone,
604
+ userType: UserType.CUSTOMER,
605
+ departmentId: data.departmentId,
606
+ designationId: data.designationId,
607
+ roleIds: data.roleIds,
608
+ sendMagicLink: false, // Don't send magic link for customers
609
+ });
610
+
611
+ if (!result.success) {
612
+ this.handleCreateUserError(result.errorCode, result.errorMessage);
613
+ }
614
+
615
+ return result.user;
616
+ }
617
+
618
+ private handleCreateUserError(errorCode?: string, errorMessage?: string): never {
619
+ switch (errorCode) {
620
+ case 'EMAIL_EXISTS':
621
+ throw new ConflictException('Email already registered');
622
+ case 'PHONE_EXISTS':
623
+ throw new ConflictException('Phone number already registered');
624
+ case 'INVALID_ROLE':
625
+ throw new BadRequestException('One or more role IDs are invalid');
626
+ case 'INVALID_ORG':
627
+ throw new BadRequestException('Invalid department or designation ID');
628
+ case 'VALIDATION_ERROR':
629
+ throw new BadRequestException(errorMessage ?? 'Validation failed');
630
+ default:
631
+ throw new BadRequestException(errorMessage ?? 'Failed to create user');
632
+ }
633
+ }
634
+ }
635
+ ```
636
+
637
+ **Options:**
638
+
639
+ ```typescript
640
+ interface CreateUserOptions {
641
+ firstName: string; // Required
642
+ lastName: string; // Required
643
+ email?: string; // Required if phone not provided
644
+ phone?: string; // Required if email not provided
645
+ userType: UserType; // Required: UserType.ADMIN or UserType.CUSTOMER
646
+ departmentId?: string; // Optional: Department for org assignment
647
+ designationId?: string; // Optional: Designation for org assignment
648
+ roleIds?: string[]; // Optional: Role IDs to assign to user
649
+ sendMagicLink?: boolean; // Optional: Send magic link email (default: true)
650
+ }
651
+
652
+ enum UserType {
653
+ ADMIN = 'ADMIN',
654
+ CUSTOMER = 'CUSTOMER',
655
+ }
656
+ ```
657
+
658
+ **Return Types:**
659
+
660
+ ```typescript
661
+ interface CreateUserResult {
662
+ success: boolean;
663
+ errorCode?: string; // 'EMAIL_EXISTS' | 'PHONE_EXISTS' | 'INVALID_ROLE' | 'INVALID_ORG' | 'VALIDATION_ERROR' | 'INTERNAL_ERROR'
664
+ errorMessage?: string;
665
+ user?: CreatedUserData; // Only populated if success=true
666
+ magicLinkSent: boolean;
667
+ }
668
+
669
+ interface CreatedUserData {
670
+ id: string;
671
+ email: string | null;
672
+ phone: string | null;
673
+ userType: string;
674
+ status: string;
675
+ profile?: UserProfileData;
676
+ }
677
+ ```
678
+
679
+ **Error Codes:**
680
+
681
+ | Error Code | Description |
682
+ | ------------------ | -------------------------------------- |
683
+ | `EMAIL_EXISTS` | A user with this email already exists |
684
+ | `PHONE_EXISTS` | A user with this phone number exists |
685
+ | `INVALID_ROLE` | One or more role IDs are invalid |
686
+ | `INVALID_ORG` | Invalid department or designation ID |
687
+ | `VALIDATION_ERROR` | General validation error (see message) |
688
+ | `INTERNAL_ERROR` | Server-side error during user creation |
689
+
436
690
  ## Environment Variables
437
691
 
438
692
  | Variable | Description | Default |
@@ -1,6 +1,6 @@
1
1
  import { OnModuleInit } from '@nestjs/common';
2
2
  import { ClientGrpc } from '@nestjs/microservices';
3
- import type { BulkPermissionResultRecord, EffectivePermissions, EvaluationResult, GetUserInfoResult, GetUserPermissionsResult, GetUserRolesResult, RequestContext, ResourceContext, ValidateTokenResult } from '../types';
3
+ import type { BulkPermissionResultRecord, CreateUserOptions, CreateUserResult, EffectivePermissions, EvaluationResult, GetBulkUserInfoResult, GetUserInfoResult, GetUserPermissionsResult, GetUserRolesResult, RequestContext, ResourceContext, ValidateTokenResult } from '../types';
4
4
  /**
5
5
  * gRPC client for the Permissions Service
6
6
  * Provides methods to check permissions via gRPC calls to the permissions microservice
@@ -63,5 +63,26 @@ export declare class PermissionsGrpcClient implements OnModuleInit {
63
63
  * Get user's permission codes only by userId
64
64
  */
65
65
  getUserPermissions(userId: string): Promise<GetUserPermissionsResult>;
66
+ /**
67
+ * Get bulk user info for multiple users at once
68
+ * Supports flags to conditionally include roles and permissions
69
+ */
70
+ getBulkUserInfo(userIds: string[], options?: {
71
+ includeRoles?: boolean;
72
+ includePermissions?: boolean;
73
+ }): Promise<GetBulkUserInfoResult>;
74
+ /**
75
+ * Maps gRPC bulk user data to BulkUserData type
76
+ */
77
+ private mapToBulkUserData;
78
+ /**
79
+ * Create a new user with all validations
80
+ * Supports email validation, magic link sending, org assignment, and role assignment
81
+ */
82
+ createUser(options: CreateUserOptions): Promise<CreateUserResult>;
83
+ /**
84
+ * Maps UserType to gRPC enum
85
+ */
86
+ private mapUserTypeToGrpc;
66
87
  }
67
88
  //# sourceMappingURL=permissions-grpc.client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-grpc.client.d.ts","sourceRoot":"","sources":["../../src/client/permissions-grpc.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,KAAK,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAEhB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAElB,cAAc,EACd,eAAe,EAEf,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAmGlB;;;GAGG;AACH,qBACa,qBAAsB,YAAW,YAAY;IAMtD,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,kBAAkB,CAA0B;gBAIjC,MAAM,EAAE,UAAU;IAGrC,YAAY,IAAI,IAAI;IAMpB;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,GACA,OAAO,CAAC,gBAAgB,CAAC;IAiB5B;;OAEG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,GACA,OAAO,CAAC,0BAA0B,CAAC;IAwBtC;;OAEG;IACG,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsB5E;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY7E;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpF;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAYnF;;;OAGG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyBhE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwB7D;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgC/D;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;CA0B5E"}
1
+ {"version":3,"file":"permissions-grpc.client.d.ts","sourceRoot":"","sources":["../../src/client/permissions-grpc.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,YAAY,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,OAAO,KAAK,EACV,0BAA0B,EAG1B,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAEhB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAElB,cAAc,EACd,eAAe,EAEf,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAwGlB;;;GAGG;AACH,qBACa,qBAAsB,YAAW,YAAY;IAMtD,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,kBAAkB,CAA0B;gBAIjC,MAAM,EAAE,UAAU;IAGrC,YAAY,IAAI,IAAI;IAMpB;;OAEG;IACG,eAAe,CACnB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,GACA,OAAO,CAAC,gBAAgB,CAAC;IAiB5B;;OAEG;IACG,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,OAAO,CAAC,EAAE,cAAc,CAAC;KAC1B,GACA,OAAO,CAAC,0BAA0B,CAAC;IAwBtC;;OAEG;IACG,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsB5E;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY7E;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpF;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAYnF;;;OAGG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyBhE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;;OAGG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwB7D;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgC/D;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA2B3E;;;OAGG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,EAAE,EACjB,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,GACA,OAAO,CAAC,qBAAqB,CAAC;IA6BjC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA4BzB;;;OAGG;IACG,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAyDvE;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAU1B"}
@@ -17,6 +17,8 @@ exports.PermissionsGrpcClient = void 0;
17
17
  const common_1 = require("@nestjs/common");
18
18
  const rxjs_1 = require("rxjs");
19
19
  const constants_1 = require("../constants");
20
+ const types_1 = require("../types");
21
+ const grpc_types_1 = require("../types/grpc.types");
20
22
  /**
21
23
  * Maps gRPC evaluation source enum to TypeScript type
22
24
  */
@@ -345,6 +347,128 @@ let PermissionsGrpcClient = PermissionsGrpcClient_1 = class PermissionsGrpcClien
345
347
  throw new common_1.ServiceUnavailableException('User service unavailable');
346
348
  }
347
349
  }
350
+ /**
351
+ * Get bulk user info for multiple users at once
352
+ * Supports flags to conditionally include roles and permissions
353
+ */
354
+ async getBulkUserInfo(userIds, options) {
355
+ try {
356
+ const response = await (0, rxjs_1.firstValueFrom)(this.permissionsService.getBulkUserInfo({
357
+ userIds,
358
+ includeRoles: options?.includeRoles ?? false,
359
+ includePermissions: options?.includePermissions ?? false,
360
+ }));
361
+ const users = {};
362
+ for (const [userId, item] of Object.entries(response.users)) {
363
+ users[userId] = {
364
+ found: item.found,
365
+ errorMessage: item.errorMessage !== '' ? item.errorMessage : undefined,
366
+ user: item.user !== undefined ? this.mapToBulkUserData(item.user) : undefined,
367
+ };
368
+ }
369
+ return { users };
370
+ }
371
+ catch (error) {
372
+ const grpcError = error;
373
+ this.logger.error(`gRPC getBulkUserInfo failed - code: ${String(grpcError.code)}, details: ${String(grpcError.details)}, message: ${String(grpcError.message)}`);
374
+ throw new common_1.ServiceUnavailableException('User service unavailable');
375
+ }
376
+ }
377
+ /**
378
+ * Maps gRPC bulk user data to BulkUserData type
379
+ */
380
+ mapToBulkUserData(userData) {
381
+ return {
382
+ id: userData.id,
383
+ email: userData.email !== '' ? userData.email : null,
384
+ phone: userData.phone !== '' ? userData.phone : null,
385
+ userType: userData.userType,
386
+ status: userData.status,
387
+ isProfileComplete: userData.isProfileComplete,
388
+ roles: userData.roles.map((role) => ({
389
+ id: role.id,
390
+ code: role.code,
391
+ name: role.name,
392
+ isSystem: role.isSystem,
393
+ })),
394
+ permissions: userData.permissions,
395
+ hasAllAccess: userData.hasAllAccess,
396
+ profile: userData.profile === undefined
397
+ ? undefined
398
+ : {
399
+ firstName: userData.profile.firstName,
400
+ lastName: userData.profile.lastName,
401
+ fullName: userData.profile.fullName,
402
+ profilePicUrl: userData.profile.profilePicUrl,
403
+ },
404
+ };
405
+ }
406
+ /**
407
+ * Create a new user with all validations
408
+ * Supports email validation, magic link sending, org assignment, and role assignment
409
+ */
410
+ async createUser(options) {
411
+ try {
412
+ const response = await (0, rxjs_1.firstValueFrom)(this.permissionsService.createUser({
413
+ firstName: options.firstName,
414
+ lastName: options.lastName,
415
+ email: options.email ?? '',
416
+ phone: options.phone ?? '',
417
+ userType: this.mapUserTypeToGrpc(options.userType),
418
+ departmentId: options.departmentId ?? '',
419
+ designationId: options.designationId ?? '',
420
+ roleIds: options.roleIds ?? [],
421
+ sendMagicLink: options.sendMagicLink ?? true,
422
+ }));
423
+ if (!response.success) {
424
+ return {
425
+ success: false,
426
+ errorCode: response.errorCode !== '' ? response.errorCode : undefined,
427
+ errorMessage: response.errorMessage !== '' ? response.errorMessage : undefined,
428
+ magicLinkSent: false,
429
+ };
430
+ }
431
+ return {
432
+ success: true,
433
+ user: response.user === undefined
434
+ ? undefined
435
+ : {
436
+ id: response.user.id,
437
+ email: response.user.email !== '' ? response.user.email : null,
438
+ phone: response.user.phone !== '' ? response.user.phone : null,
439
+ userType: response.user.userType,
440
+ status: response.user.status,
441
+ profile: response.user.profile === undefined
442
+ ? undefined
443
+ : {
444
+ firstName: response.user.profile.firstName,
445
+ lastName: response.user.profile.lastName,
446
+ fullName: response.user.profile.fullName,
447
+ profilePicUrl: response.user.profile.profilePicUrl,
448
+ },
449
+ },
450
+ magicLinkSent: response.magicLinkSent,
451
+ };
452
+ }
453
+ catch (error) {
454
+ const grpcError = error;
455
+ this.logger.error(`gRPC createUser failed - code: ${String(grpcError.code)}, details: ${String(grpcError.details)}, message: ${String(grpcError.message)}`);
456
+ throw new common_1.ServiceUnavailableException('User service unavailable');
457
+ }
458
+ }
459
+ /**
460
+ * Maps UserType to gRPC enum
461
+ */
462
+ mapUserTypeToGrpc(userType) {
463
+ switch (userType) {
464
+ case types_1.UserType.ADMIN:
465
+ return grpc_types_1.GrpcUserType.USER_TYPE_ADMIN;
466
+ case types_1.UserType.CUSTOMER:
467
+ return grpc_types_1.GrpcUserType.USER_TYPE_CUSTOMER;
468
+ default:
469
+ return grpc_types_1.GrpcUserType.USER_TYPE_UNSPECIFIED;
470
+ }
471
+ }
348
472
  };
349
473
  exports.PermissionsGrpcClient = PermissionsGrpcClient;
350
474
  exports.PermissionsGrpcClient = PermissionsGrpcClient = PermissionsGrpcClient_1 = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"permissions-grpc.client.js","sourceRoot":"","sources":["../../src/client/permissions-grpc.client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"permissions-grpc.client.js","sourceRoot":"","sources":["../../src/client/permissions-grpc.client.ts"],"names":[],"mappings":"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"}
@@ -60,6 +60,18 @@ service PermissionsService {
60
60
  * Get user's permission codes only by userId
61
61
  */
62
62
  rpc GetUserPermissions(GetUserPermissionsRequest) returns (GetUserPermissionsResponse);
63
+
64
+ /**
65
+ * Get bulk user info for multiple users at once
66
+ * Supports flags to conditionally include roles and permissions
67
+ */
68
+ rpc GetBulkUserInfo(GetBulkUserInfoRequest) returns (GetBulkUserInfoResponse);
69
+
70
+ /**
71
+ * Create a new user with all validations (email uniqueness, magic link, etc.)
72
+ * Supports creating users with optional roles and organization assignment
73
+ */
74
+ rpc CreateUser(CreateUserRequest) returns (CreateUserResponse);
63
75
  }
64
76
 
65
77
  // ============================================================================
@@ -261,3 +273,89 @@ message GetUserPermissionsResponse {
261
273
  repeated string permissions = 3;
262
274
  bool has_all_access = 4;
263
275
  }
276
+
277
+ // ============================================================================
278
+ // Bulk User Data Lookup Messages
279
+ // ============================================================================
280
+
281
+ message GetBulkUserInfoRequest {
282
+ repeated string user_ids = 1; // Array of user IDs to fetch
283
+ bool include_roles = 2; // Flag to include roles data
284
+ bool include_permissions = 3; // Flag to include permissions data
285
+ }
286
+
287
+ /**
288
+ * User data for bulk responses (same structure as UserData)
289
+ */
290
+ message BulkUserData {
291
+ string id = 1;
292
+ string email = 2;
293
+ string phone = 3;
294
+ string user_type = 4;
295
+ string status = 5;
296
+ bool is_profile_complete = 6;
297
+ repeated UserRoleInfo roles = 7; // Populated only if include_roles=true
298
+ repeated string permissions = 8; // Populated only if include_permissions=true
299
+ bool has_all_access = 9;
300
+ bool mfa_enabled = 10;
301
+ bool mfa_verified = 11;
302
+ UserProfile profile = 12;
303
+ }
304
+
305
+ /**
306
+ * Individual user result in bulk response
307
+ */
308
+ message BulkUserInfoItem {
309
+ bool found = 1;
310
+ string error_message = 2; // "USER_NOT_FOUND", "USER_INACTIVE"
311
+ BulkUserData user = 3; // Only populated if found=true
312
+ }
313
+
314
+ message GetBulkUserInfoResponse {
315
+ map<string, BulkUserInfoItem> users = 1; // Key is user_id
316
+ }
317
+
318
+ // ============================================================================
319
+ // User Creation Messages
320
+ // ============================================================================
321
+
322
+ /**
323
+ * User type enum - matches Prisma UserType
324
+ */
325
+ enum GrpcUserType {
326
+ USER_TYPE_UNSPECIFIED = 0;
327
+ USER_TYPE_ADMIN = 1;
328
+ USER_TYPE_CUSTOMER = 2;
329
+ }
330
+
331
+ message CreateUserRequest {
332
+ string first_name = 1; // Required: User's first name
333
+ string last_name = 2; // Required: User's last name
334
+ string email = 3; // Optional: Email (required if phone not provided)
335
+ string phone = 4; // Optional: Phone (required if email not provided)
336
+ GrpcUserType user_type = 5; // Required: Type of user to create
337
+ string department_id = 6; // Optional: Department for org assignment
338
+ string designation_id = 7; // Optional: Designation for org assignment
339
+ repeated string role_ids = 8; // Optional: Role IDs to assign
340
+ bool send_magic_link = 9; // Whether to send magic link email (default: true)
341
+ }
342
+
343
+ /**
344
+ * Created user data returned in response
345
+ */
346
+ message CreatedUserData {
347
+ string id = 1;
348
+ string email = 2;
349
+ string phone = 3;
350
+ string user_type = 4;
351
+ string status = 5;
352
+ UserProfile profile = 6;
353
+ }
354
+
355
+ message CreateUserResponse {
356
+ bool success = 1;
357
+ string error_code = 2; // "EMAIL_EXISTS", "PHONE_EXISTS", "INVALID_ROLE", "INVALID_ORG", "VALIDATION_ERROR", "INTERNAL_ERROR"
358
+ string error_message = 3;
359
+ CreatedUserData user = 4; // Only populated if success=true
360
+ bool magic_link_sent = 5; // Whether magic link was sent
361
+ }
@@ -145,6 +145,73 @@ export interface GetUserPermissionsResponse {
145
145
  permissions: string[];
146
146
  hasAllAccess: boolean;
147
147
  }
148
+ export interface GetBulkUserInfoRequest {
149
+ userIds: string[];
150
+ includeRoles: boolean;
151
+ includePermissions: boolean;
152
+ }
153
+ /**
154
+ * gRPC Bulk user data (same structure as GrpcUserData)
155
+ */
156
+ export interface GrpcBulkUserData {
157
+ id: string;
158
+ email: string;
159
+ phone: string;
160
+ userType: string;
161
+ status: string;
162
+ isProfileComplete: boolean;
163
+ roles: GrpcUserRoleInfo[];
164
+ permissions: string[];
165
+ hasAllAccess: boolean;
166
+ mfaEnabled: boolean;
167
+ mfaVerified: boolean;
168
+ profile?: GrpcUserProfile;
169
+ }
170
+ /**
171
+ * Individual user result in bulk response
172
+ */
173
+ export interface GrpcBulkUserInfoItem {
174
+ found: boolean;
175
+ errorMessage: string;
176
+ user?: GrpcBulkUserData;
177
+ }
178
+ export interface GetBulkUserInfoResponse {
179
+ users: Record<string, GrpcBulkUserInfoItem>;
180
+ }
181
+ /**
182
+ * gRPC User type enum (matches proto definition)
183
+ */
184
+ export declare enum GrpcUserType {
185
+ USER_TYPE_UNSPECIFIED = 0,
186
+ USER_TYPE_ADMIN = 1,
187
+ USER_TYPE_CUSTOMER = 2
188
+ }
189
+ export interface CreateUserRequest {
190
+ firstName: string;
191
+ lastName: string;
192
+ email: string;
193
+ phone: string;
194
+ userType: GrpcUserType;
195
+ departmentId: string;
196
+ designationId: string;
197
+ roleIds: string[];
198
+ sendMagicLink: boolean;
199
+ }
200
+ export interface GrpcCreatedUserData {
201
+ id: string;
202
+ email: string;
203
+ phone: string;
204
+ userType: string;
205
+ status: string;
206
+ profile?: GrpcUserProfile;
207
+ }
208
+ export interface CreateUserResponse {
209
+ success: boolean;
210
+ errorCode: string;
211
+ errorMessage: string;
212
+ user?: GrpcCreatedUserData;
213
+ magicLinkSent: boolean;
214
+ }
148
215
  /**
149
216
  * gRPC Permissions Service client interface
150
217
  * This interface is used by NestJS microservices to define the client methods
@@ -160,5 +227,7 @@ export interface PermissionsGrpcService {
160
227
  getUserInfo: (request: GetUserInfoRequest) => Observable<GetUserInfoResponse>;
161
228
  getUserRoles: (request: GetUserRolesRequest) => Observable<GetUserRolesResponse>;
162
229
  getUserPermissions: (request: GetUserPermissionsRequest) => Observable<GetUserPermissionsResponse>;
230
+ getBulkUserInfo: (request: GetBulkUserInfoRequest) => Observable<GetBulkUserInfoResponse>;
231
+ createUser: (request: CreateUserRequest) => Observable<CreateUserResponse>;
163
232
  }
164
233
  //# sourceMappingURL=grpc.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"grpc.types.d.ts","sourceRoot":"","sources":["../../src/types/grpc.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"grpc.types.d.ts","sourceRoot":"","sources":["../../src/types/grpc.types.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GrpcEvaluationSource = void 0;
3
+ exports.GrpcUserType = exports.GrpcEvaluationSource = void 0;
4
4
  /**
5
5
  * gRPC Evaluation source enum (as number from proto)
6
6
  */
@@ -12,4 +12,16 @@ var GrpcEvaluationSource;
12
12
  GrpcEvaluationSource[GrpcEvaluationSource["EVALUATION_SOURCE_BREAK_GLASS"] = 3] = "EVALUATION_SOURCE_BREAK_GLASS";
13
13
  GrpcEvaluationSource[GrpcEvaluationSource["EVALUATION_SOURCE_DENIED"] = 4] = "EVALUATION_SOURCE_DENIED";
14
14
  })(GrpcEvaluationSource || (exports.GrpcEvaluationSource = GrpcEvaluationSource = {}));
15
+ // ============================================================================
16
+ // User Creation Types
17
+ // ============================================================================
18
+ /**
19
+ * gRPC User type enum (matches proto definition)
20
+ */
21
+ var GrpcUserType;
22
+ (function (GrpcUserType) {
23
+ GrpcUserType[GrpcUserType["USER_TYPE_UNSPECIFIED"] = 0] = "USER_TYPE_UNSPECIFIED";
24
+ GrpcUserType[GrpcUserType["USER_TYPE_ADMIN"] = 1] = "USER_TYPE_ADMIN";
25
+ GrpcUserType[GrpcUserType["USER_TYPE_CUSTOMER"] = 2] = "USER_TYPE_CUSTOMER";
26
+ })(GrpcUserType || (exports.GrpcUserType = GrpcUserType = {}));
15
27
  //# sourceMappingURL=grpc.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"grpc.types.js","sourceRoot":"","sources":["../../src/types/grpc.types.ts"],"names":[],"mappings":";;;AAkCA;;GAEG;AACH,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,iHAAiC,CAAA;IACjC,mGAA0B,CAAA;IAC1B,mGAA0B,CAAA;IAC1B,iHAAiC,CAAA;IACjC,uGAA4B,CAAA;AAC9B,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B"}
1
+ {"version":3,"file":"grpc.types.js","sourceRoot":"","sources":["../../src/types/grpc.types.ts"],"names":[],"mappings":";;;AAkCA;;GAEG;AACH,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,iHAAiC,CAAA;IACjC,mGAA0B,CAAA;IAC1B,mGAA0B,CAAA;IAC1B,iHAAiC,CAAA;IACjC,uGAA4B,CAAA;AAC9B,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B;AA0LD,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;GAEG;AACH,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iFAAyB,CAAA;IACzB,qEAAmB,CAAA;IACnB,2EAAsB,CAAA;AACxB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB"}
@@ -1,5 +1,5 @@
1
1
  export * from './evaluation.types';
2
2
  export * from './grpc.types';
3
- export type * from './jwt.types';
3
+ export * from './jwt.types';
4
4
  export * from './permission.types';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,mBAAmB,aAAa,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC"}
@@ -16,5 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./evaluation.types"), exports);
18
18
  __exportStar(require("./grpc.types"), exports);
19
+ __exportStar(require("./jwt.types"), exports);
19
20
  __exportStar(require("./permission.types"), exports);
20
21
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAE7B,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,+CAA6B;AAC7B,8CAA4B;AAC5B,qDAAmC"}
@@ -58,4 +58,75 @@ export interface GetUserPermissionsResult {
58
58
  readonly permissions: readonly string[];
59
59
  readonly hasAllAccess: boolean;
60
60
  }
61
+ /**
62
+ * User data for bulk responses (roles/permissions may be empty based on flags)
63
+ */
64
+ export interface BulkUserData {
65
+ readonly id: string;
66
+ readonly email: string | null;
67
+ readonly phone: string | null;
68
+ readonly userType: string;
69
+ readonly status: string;
70
+ readonly isProfileComplete: boolean;
71
+ readonly roles: readonly RoleInfo[];
72
+ readonly permissions: readonly string[];
73
+ readonly hasAllAccess: boolean;
74
+ readonly profile?: UserProfileData;
75
+ }
76
+ /**
77
+ * Individual user result in bulk response
78
+ */
79
+ export interface BulkUserInfoItem {
80
+ readonly found: boolean;
81
+ readonly errorMessage?: string;
82
+ readonly user?: BulkUserData;
83
+ }
84
+ /**
85
+ * Result of GetBulkUserInfo from gRPC
86
+ */
87
+ export interface GetBulkUserInfoResult {
88
+ readonly users: Record<string, BulkUserInfoItem>;
89
+ }
90
+ /**
91
+ * User type enum for creating users (matches Prisma UserType)
92
+ */
93
+ export declare enum UserType {
94
+ ADMIN = "ADMIN",
95
+ CUSTOMER = "CUSTOMER"
96
+ }
97
+ /**
98
+ * Options for creating a new user
99
+ */
100
+ export interface CreateUserOptions {
101
+ readonly firstName: string;
102
+ readonly lastName: string;
103
+ readonly email?: string;
104
+ readonly phone?: string;
105
+ readonly userType: UserType;
106
+ readonly departmentId?: string;
107
+ readonly designationId?: string;
108
+ readonly roleIds?: string[];
109
+ readonly sendMagicLink?: boolean;
110
+ }
111
+ /**
112
+ * Created user data returned from gRPC
113
+ */
114
+ export interface CreatedUserData {
115
+ readonly id: string;
116
+ readonly email: string | null;
117
+ readonly phone: string | null;
118
+ readonly userType: string;
119
+ readonly status: string;
120
+ readonly profile?: UserProfileData;
121
+ }
122
+ /**
123
+ * Result of CreateUser from gRPC
124
+ */
125
+ export interface CreateUserResult {
126
+ readonly success: boolean;
127
+ readonly errorCode?: string;
128
+ readonly errorMessage?: string;
129
+ readonly user?: CreatedUserData;
130
+ readonly magicLinkSent: boolean;
131
+ }
61
132
  //# sourceMappingURL=jwt.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.types.d.ts","sourceRoot":"","sources":["../../src/types/jwt.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC"}
1
+ {"version":3,"file":"jwt.types.d.ts","sourceRoot":"","sources":["../../src/types/jwt.types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UserType = void 0;
4
+ // ============================================================================
5
+ // User Creation Types
6
+ // ============================================================================
7
+ /**
8
+ * User type enum for creating users (matches Prisma UserType)
9
+ */
10
+ var UserType;
11
+ (function (UserType) {
12
+ UserType["ADMIN"] = "ADMIN";
13
+ UserType["CUSTOMER"] = "CUSTOMER";
14
+ })(UserType || (exports.UserType = UserType = {}));
3
15
  //# sourceMappingURL=jwt.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.types.js","sourceRoot":"","sources":["../../src/types/jwt.types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"jwt.types.js","sourceRoot":"","sources":["../../src/types/jwt.types.ts"],"names":[],"mappings":";;;AAmGA,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;GAEG;AACH,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,iCAAqB,CAAA;AACvB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ahksolution/permissions-sdk",
3
- "version": "1.3.0",
3
+ "version": "1.3.1",
4
4
  "description": "gRPC client SDK for AHK Solution Permissions Microservice - provides NestJS guard, decorators, and client for inter-service permission checks",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -60,6 +60,18 @@ service PermissionsService {
60
60
  * Get user's permission codes only by userId
61
61
  */
62
62
  rpc GetUserPermissions(GetUserPermissionsRequest) returns (GetUserPermissionsResponse);
63
+
64
+ /**
65
+ * Get bulk user info for multiple users at once
66
+ * Supports flags to conditionally include roles and permissions
67
+ */
68
+ rpc GetBulkUserInfo(GetBulkUserInfoRequest) returns (GetBulkUserInfoResponse);
69
+
70
+ /**
71
+ * Create a new user with all validations (email uniqueness, magic link, etc.)
72
+ * Supports creating users with optional roles and organization assignment
73
+ */
74
+ rpc CreateUser(CreateUserRequest) returns (CreateUserResponse);
63
75
  }
64
76
 
65
77
  // ============================================================================
@@ -261,3 +273,89 @@ message GetUserPermissionsResponse {
261
273
  repeated string permissions = 3;
262
274
  bool has_all_access = 4;
263
275
  }
276
+
277
+ // ============================================================================
278
+ // Bulk User Data Lookup Messages
279
+ // ============================================================================
280
+
281
+ message GetBulkUserInfoRequest {
282
+ repeated string user_ids = 1; // Array of user IDs to fetch
283
+ bool include_roles = 2; // Flag to include roles data
284
+ bool include_permissions = 3; // Flag to include permissions data
285
+ }
286
+
287
+ /**
288
+ * User data for bulk responses (same structure as UserData)
289
+ */
290
+ message BulkUserData {
291
+ string id = 1;
292
+ string email = 2;
293
+ string phone = 3;
294
+ string user_type = 4;
295
+ string status = 5;
296
+ bool is_profile_complete = 6;
297
+ repeated UserRoleInfo roles = 7; // Populated only if include_roles=true
298
+ repeated string permissions = 8; // Populated only if include_permissions=true
299
+ bool has_all_access = 9;
300
+ bool mfa_enabled = 10;
301
+ bool mfa_verified = 11;
302
+ UserProfile profile = 12;
303
+ }
304
+
305
+ /**
306
+ * Individual user result in bulk response
307
+ */
308
+ message BulkUserInfoItem {
309
+ bool found = 1;
310
+ string error_message = 2; // "USER_NOT_FOUND", "USER_INACTIVE"
311
+ BulkUserData user = 3; // Only populated if found=true
312
+ }
313
+
314
+ message GetBulkUserInfoResponse {
315
+ map<string, BulkUserInfoItem> users = 1; // Key is user_id
316
+ }
317
+
318
+ // ============================================================================
319
+ // User Creation Messages
320
+ // ============================================================================
321
+
322
+ /**
323
+ * User type enum - matches Prisma UserType
324
+ */
325
+ enum GrpcUserType {
326
+ USER_TYPE_UNSPECIFIED = 0;
327
+ USER_TYPE_ADMIN = 1;
328
+ USER_TYPE_CUSTOMER = 2;
329
+ }
330
+
331
+ message CreateUserRequest {
332
+ string first_name = 1; // Required: User's first name
333
+ string last_name = 2; // Required: User's last name
334
+ string email = 3; // Optional: Email (required if phone not provided)
335
+ string phone = 4; // Optional: Phone (required if email not provided)
336
+ GrpcUserType user_type = 5; // Required: Type of user to create
337
+ string department_id = 6; // Optional: Department for org assignment
338
+ string designation_id = 7; // Optional: Designation for org assignment
339
+ repeated string role_ids = 8; // Optional: Role IDs to assign
340
+ bool send_magic_link = 9; // Whether to send magic link email (default: true)
341
+ }
342
+
343
+ /**
344
+ * Created user data returned in response
345
+ */
346
+ message CreatedUserData {
347
+ string id = 1;
348
+ string email = 2;
349
+ string phone = 3;
350
+ string user_type = 4;
351
+ string status = 5;
352
+ UserProfile profile = 6;
353
+ }
354
+
355
+ message CreateUserResponse {
356
+ bool success = 1;
357
+ string error_code = 2; // "EMAIL_EXISTS", "PHONE_EXISTS", "INVALID_ROLE", "INVALID_ORG", "VALIDATION_ERROR", "INTERNAL_ERROR"
358
+ string error_message = 3;
359
+ CreatedUserData user = 4; // Only populated if success=true
360
+ bool magic_link_sent = 5; // Whether magic link was sent
361
+ }