@tomei/sso 0.4.0 → 0.8.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.
Files changed (31) hide show
  1. package/__tests__/unit/components/login-user/login-user.spec.ts +107 -19
  2. package/__tests__/unit/session/session.service.spec.ts +20 -0
  3. package/dist/__tests__/unit/components/login-user/login-user.spec.js +89 -18
  4. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -1
  5. package/dist/__tests__/unit/session/session.service.spec.js +19 -0
  6. package/dist/__tests__/unit/session/session.service.spec.js.map +1 -1
  7. package/dist/index.d.ts +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/src/components/login-user/login-user.d.ts +3 -1
  10. package/dist/src/components/login-user/login-user.js +82 -19
  11. package/dist/src/components/login-user/login-user.js.map +1 -1
  12. package/dist/src/index.d.ts +0 -1
  13. package/dist/src/index.js +0 -1
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/session/interfaces/session-service.interface.d.ts +1 -0
  16. package/dist/src/session/session.service.d.ts +1 -0
  17. package/dist/src/session/session.service.js +12 -0
  18. package/dist/src/session/session.service.js.map +1 -1
  19. package/dist/tsconfig.tsbuildinfo +1 -1
  20. package/index.ts +1 -1
  21. package/package.json +4 -1
  22. package/src/components/login-user/login-user.ts +107 -21
  23. package/src/index.ts +0 -1
  24. package/src/session/interfaces/session-service.interface.ts +1 -0
  25. package/src/session/session.service.ts +10 -0
  26. package/src/mail/index.ts +0 -2
  27. package/src/mail/interfaces/index.ts +0 -2
  28. package/src/mail/interfaces/send-mail.interface.ts +0 -8
  29. package/src/mail/interfaces/send-new-login-alert.interface.ts +0 -6
  30. package/src/mail/mail.service.ts +0 -33
  31. package/src/mail/mail.ts +0 -40
@@ -8,8 +8,9 @@ import {
8
8
  import { LoginUser } from '../../../../src/components/login-user/login-user';
9
9
  import { UserRepository } from '../../../../src/components/login-user/user.repository';
10
10
  import { PasswordHashService } from '../../../../src/components/password-hash/password-hash.service';
11
- import { MailService } from '../../../../src/mail/mail.service';
11
+ import { Mailer } from '@tomei/mailer';
12
12
  describe('login-user', () => {
13
+ let isSessionExist = true;
13
14
  let user = {
14
15
  id: 755,
15
16
  email: 'ezcash+florence@tomei.com.my',
@@ -439,9 +440,7 @@ describe('login-user', () => {
439
440
  return system;
440
441
  });
441
442
 
442
- jest
443
- .spyOn(MailService.prototype, 'sendNewLoginAlertEmail')
444
- .mockImplementation(async () => {});
443
+ jest.spyOn(Mailer.prototype, 'sendMail').mockImplementation(async () => {});
445
444
 
446
445
  const getUserGroupFromDBMock = jest.spyOn(
447
446
  LoginUser.prototype as any,
@@ -455,6 +454,19 @@ describe('login-user', () => {
455
454
 
456
455
  const userMock = jest.spyOn(UserRepository.prototype, 'findOne');
457
456
 
457
+ jest.spyOn(
458
+ SessionService.prototype,
459
+ 'retrieveUserSession',
460
+ ).mockImplementation(async (userId: string) => {
461
+ if (userId && userId == '755' && isSessionExist === true) {
462
+ return session;
463
+ } else {
464
+ return {
465
+ systemLogins: [],
466
+ };
467
+ }
468
+ });
469
+
458
470
  userMock.mockImplementation(async () => {
459
471
  return user;
460
472
  });
@@ -487,6 +499,10 @@ describe('login-user', () => {
487
499
  return data;
488
500
  });
489
501
 
502
+ afterAll(() => {
503
+ jest.clearAllMocks();
504
+ })
505
+
490
506
  it('should return login-user service when instansiated', async () => {
491
507
  const loginUser = await LoginUser.init();
492
508
  expect(loginUser).toBeDefined();
@@ -504,18 +520,6 @@ describe('login-user', () => {
504
520
  });
505
521
 
506
522
  it('should able to do login process when session is already available', async () => {
507
- jest
508
- .spyOn(SessionService.prototype, 'retrieveUserSession')
509
- .mockImplementationOnce(async (userId: string) => {
510
- if (userId === '755') {
511
- return session;
512
- } else {
513
- return {
514
- systemLogins: [],
515
- };
516
- }
517
- });
518
-
519
523
  const loginUser = await LoginUser.init('755');
520
524
  const result = await loginUser.login(
521
525
  'EZC',
@@ -528,6 +532,10 @@ describe('login-user', () => {
528
532
  });
529
533
 
530
534
  describe('getPrivileges', () => {
535
+ afterAll(() => {
536
+ jest.clearAllMocks();
537
+ })
538
+
531
539
  it('should be able to login when user only have one user group with level 1 or higher', async () => {
532
540
  const loginUser = await LoginUser.init('755');
533
541
  const result = await loginUser['getPrivileges']('EZC');
@@ -543,11 +551,11 @@ describe('login-user', () => {
543
551
  'Terminate',
544
552
  'Disbursement - Confirmation',
545
553
  'Invoice Payment Received',
546
- "Terminate Data",
554
+ 'Terminate Data',
547
555
  ]);
548
556
  });
549
557
 
550
- it('should be able to login when user only have multiple user user group', async () => {
558
+ it('should be able to login when user only have multiple user user group', async () => {
551
559
  const tempUserUserGroups = userUserGroups;
552
560
  userUserGroups.push(userUserGroups[0]);
553
561
 
@@ -566,7 +574,7 @@ describe('login-user', () => {
566
574
  'Terminate',
567
575
  'Disbursement - Confirmation',
568
576
  'Invoice Payment Received',
569
- "Terminate Data",
577
+ 'Terminate Data',
570
578
  ]);
571
579
 
572
580
  userUserGroups = tempUserUserGroups;
@@ -640,4 +648,84 @@ describe('login-user', () => {
640
648
  user = tempUser;
641
649
  });
642
650
  });
651
+
652
+ describe('checkPrivileges', () => {
653
+ afterEach(() => {
654
+ isSessionExist = true;
655
+ });
656
+
657
+ afterAll(() => {
658
+ jest.restoreAllMocks();
659
+ });
660
+
661
+ it('should return false if user session not found', async () => {
662
+ isSessionExist = false;
663
+ const loginUser = await LoginUser.init('755');
664
+ const result = await loginUser.checkPrivileges('EZC', 'Terminate');
665
+ expect(result).toEqual(false);
666
+ });
667
+
668
+ it('should return false if system login not found', async () => {
669
+ isSessionExist = false;
670
+ const loginUser = await LoginUser.init('755');
671
+ const result = await loginUser.checkPrivileges('EZC', 'Terminate');
672
+ expect(result).toEqual(false);
673
+ });
674
+
675
+ it('should return false if privilege not found', async () => {
676
+ isSessionExist = false;
677
+ const loginUser = await LoginUser.init('755');
678
+ const result = await loginUser.checkPrivileges('EZC', 'Not Terminate');
679
+ expect(result).toEqual(false);
680
+ });
681
+
682
+ it('should return true if privilege found', async () => {
683
+ const loginUser = await LoginUser.init('755');
684
+ const result = await loginUser.checkPrivileges('EZC', 'Terminate');
685
+ expect(result).toEqual(true);
686
+ });
687
+ });
688
+
689
+ describe('checkSession', () => {
690
+ afterEach(() => {
691
+ isSessionExist = true;
692
+ });
693
+
694
+ afterAll(() => {
695
+ jest.restoreAllMocks();
696
+ });
697
+
698
+ it('it should returns session expired if user session not found inside session storage', async () => {
699
+ try {
700
+ isSessionExist = false;
701
+ const loginUser = await LoginUser.init();
702
+ await loginUser.checkSession('EZC',session.systemLogins[0].sessionId, '755');
703
+ } catch (error) {
704
+ expect(error.message).toEqual('Session expired.');
705
+ }
706
+ });
707
+
708
+ it('it should returns session expired if sessionId not matched', async () => {
709
+ try {
710
+ const loginUser = await LoginUser.init();
711
+ await loginUser.checkSession('NOTEZC',session.systemLogins[0].sessionId, '755');
712
+ } catch (error) {
713
+ expect(error.message).toEqual('Session expired.');
714
+ }
715
+ });
716
+
717
+ it('it should refresh session time-to-live if session valid', async () => {
718
+ jest.spyOn(
719
+ SessionService.prototype,
720
+ 'refreshDuration',
721
+ ).mockImplementationOnce(async (userId) => {
722
+ if (!userId || userId !== '755') {
723
+ throw new Error('Refresh session failed.');
724
+ }
725
+ })
726
+ const loginUser = await LoginUser.init();
727
+ const result = await loginUser.checkSession('EZC',session.systemLogins[0].sessionId, '755');
728
+ expect(result).toEqual(session.systemLogins[0]);
729
+ });
730
+ });
643
731
  });
@@ -24,4 +24,24 @@ describe('session.service', () => {
24
24
  const result = await sessionService.retrieveUserSession("1");
25
25
  expect(result).toEqual(data);
26
26
  });
27
+
28
+ it('should able to refresh session data', async () => {
29
+ const setUserSession = jest.spyOn(SessionService.prototype, 'setUserSession');
30
+ const retrieveUserSession = jest.spyOn(SessionService.prototype, 'retrieveUserSession');
31
+ const data: IUserSession = {
32
+ systemLogins: [
33
+ {
34
+ id: '1',
35
+ code: 'EZC',
36
+ sessionId: 'test1',
37
+ privileges: ['PRIVILEGE1', 'PRIVILEGE2'],
38
+ },
39
+ ],
40
+ };
41
+ const sessionService = await SessionService.init();
42
+ await sessionService.setUserSession("1", data)
43
+ await sessionService.refreshDuration("1");
44
+ expect(setUserSession).toBeCalledTimes(2);
45
+ expect(retrieveUserSession).toBeCalledTimes(1);
46
+ });
27
47
  });
@@ -13,8 +13,9 @@ const src_1 = require("../../../../src");
13
13
  const login_user_1 = require("../../../../src/components/login-user/login-user");
14
14
  const user_repository_1 = require("../../../../src/components/login-user/user.repository");
15
15
  const password_hash_service_1 = require("../../../../src/components/password-hash/password-hash.service");
16
- const mail_service_1 = require("../../../../src/mail/mail.service");
16
+ const mailer_1 = require("@tomei/mailer");
17
17
  describe('login-user', () => {
18
+ let isSessionExist = true;
18
19
  let user = {
19
20
  id: 755,
20
21
  email: 'ezcash+florence@tomei.com.my',
@@ -425,12 +426,20 @@ describe('login-user', () => {
425
426
  .mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () {
426
427
  return system;
427
428
  }));
428
- jest
429
- .spyOn(mail_service_1.MailService.prototype, 'sendNewLoginAlertEmail')
430
- .mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { }));
429
+ jest.spyOn(mailer_1.Mailer.prototype, 'sendMail').mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () { }));
431
430
  const getUserGroupFromDBMock = jest.spyOn(login_user_1.LoginUser.prototype, 'getUserGroupFromDB');
432
431
  const getUserUserGroupFromDBMock = jest.spyOn(login_user_1.LoginUser.prototype, 'getUserUserGroupFromDB');
433
432
  const userMock = jest.spyOn(user_repository_1.UserRepository.prototype, 'findOne');
433
+ jest.spyOn(src_1.SessionService.prototype, 'retrieveUserSession').mockImplementation((userId) => __awaiter(void 0, void 0, void 0, function* () {
434
+ if (userId && userId == '755' && isSessionExist === true) {
435
+ return session;
436
+ }
437
+ else {
438
+ return {
439
+ systemLogins: [],
440
+ };
441
+ }
442
+ }));
434
443
  userMock.mockImplementation(() => __awaiter(void 0, void 0, void 0, function* () {
435
444
  return user;
436
445
  }));
@@ -460,6 +469,9 @@ describe('login-user', () => {
460
469
  const data = [];
461
470
  return data;
462
471
  }));
472
+ afterAll(() => {
473
+ jest.clearAllMocks();
474
+ });
463
475
  it('should return login-user service when instansiated', () => __awaiter(void 0, void 0, void 0, function* () {
464
476
  const loginUser = yield login_user_1.LoginUser.init();
465
477
  expect(loginUser).toBeDefined();
@@ -470,24 +482,15 @@ describe('login-user', () => {
470
482
  expect(result).toEqual('ckymxuh8t000137t011w89zgk');
471
483
  }));
472
484
  it('should able to do login process when session is already available', () => __awaiter(void 0, void 0, void 0, function* () {
473
- jest
474
- .spyOn(src_1.SessionService.prototype, 'retrieveUserSession')
475
- .mockImplementationOnce((userId) => __awaiter(void 0, void 0, void 0, function* () {
476
- if (userId === '755') {
477
- return session;
478
- }
479
- else {
480
- return {
481
- systemLogins: [],
482
- };
483
- }
484
- }));
485
485
  const loginUser = yield login_user_1.LoginUser.init('755');
486
486
  const result = yield loginUser.login('EZC', 'ezcash+florence@tomei.com.my', 'Abcd@1234', '1.1.1.1');
487
487
  expect(result).toEqual('ckymxuh8t000137t011w89zgk');
488
488
  }));
489
489
  });
490
490
  describe('getPrivileges', () => {
491
+ afterAll(() => {
492
+ jest.clearAllMocks();
493
+ });
491
494
  it('should be able to login when user only have one user group with level 1 or higher', () => __awaiter(void 0, void 0, void 0, function* () {
492
495
  const loginUser = yield login_user_1.LoginUser.init('755');
493
496
  const result = yield loginUser['getPrivileges']('EZC');
@@ -503,7 +506,7 @@ describe('login-user', () => {
503
506
  'Terminate',
504
507
  'Disbursement - Confirmation',
505
508
  'Invoice Payment Received',
506
- "Terminate Data",
509
+ 'Terminate Data',
507
510
  ]);
508
511
  }));
509
512
  it('should be able to login when user only have multiple user user group', () => __awaiter(void 0, void 0, void 0, function* () {
@@ -524,7 +527,7 @@ describe('login-user', () => {
524
527
  'Terminate',
525
528
  'Disbursement - Confirmation',
526
529
  'Invoice Payment Received',
527
- "Terminate Data",
530
+ 'Terminate Data',
528
531
  ]);
529
532
  userUserGroups = tempUserUserGroups;
530
533
  }));
@@ -585,5 +588,73 @@ describe('login-user', () => {
585
588
  user = tempUser;
586
589
  }));
587
590
  });
591
+ describe('checkPrivileges', () => {
592
+ afterEach(() => {
593
+ isSessionExist = true;
594
+ });
595
+ afterAll(() => {
596
+ jest.restoreAllMocks();
597
+ });
598
+ it('should return false if user session not found', () => __awaiter(void 0, void 0, void 0, function* () {
599
+ isSessionExist = false;
600
+ const loginUser = yield login_user_1.LoginUser.init('755');
601
+ const result = yield loginUser.checkPrivileges('EZC', 'Terminate');
602
+ expect(result).toEqual(false);
603
+ }));
604
+ it('should return false if system login not found', () => __awaiter(void 0, void 0, void 0, function* () {
605
+ isSessionExist = false;
606
+ const loginUser = yield login_user_1.LoginUser.init('755');
607
+ const result = yield loginUser.checkPrivileges('EZC', 'Terminate');
608
+ expect(result).toEqual(false);
609
+ }));
610
+ it('should return false if privilege not found', () => __awaiter(void 0, void 0, void 0, function* () {
611
+ isSessionExist = false;
612
+ const loginUser = yield login_user_1.LoginUser.init('755');
613
+ const result = yield loginUser.checkPrivileges('EZC', 'Not Terminate');
614
+ expect(result).toEqual(false);
615
+ }));
616
+ it('should return true if privilege found', () => __awaiter(void 0, void 0, void 0, function* () {
617
+ const loginUser = yield login_user_1.LoginUser.init('755');
618
+ const result = yield loginUser.checkPrivileges('EZC', 'Terminate');
619
+ expect(result).toEqual(true);
620
+ }));
621
+ });
622
+ describe('checkSession', () => {
623
+ afterEach(() => {
624
+ isSessionExist = true;
625
+ });
626
+ afterAll(() => {
627
+ jest.restoreAllMocks();
628
+ });
629
+ it('it should returns session expired if user session not found inside session storage', () => __awaiter(void 0, void 0, void 0, function* () {
630
+ try {
631
+ isSessionExist = false;
632
+ const loginUser = yield login_user_1.LoginUser.init();
633
+ yield loginUser.checkSession('EZC', session.systemLogins[0].sessionId, '755');
634
+ }
635
+ catch (error) {
636
+ expect(error.message).toEqual('Session expired.');
637
+ }
638
+ }));
639
+ it('it should returns session expired if sessionId not matched', () => __awaiter(void 0, void 0, void 0, function* () {
640
+ try {
641
+ const loginUser = yield login_user_1.LoginUser.init();
642
+ yield loginUser.checkSession('NOTEZC', session.systemLogins[0].sessionId, '755');
643
+ }
644
+ catch (error) {
645
+ expect(error.message).toEqual('Session expired.');
646
+ }
647
+ }));
648
+ it('it should refresh session time-to-live if session valid', () => __awaiter(void 0, void 0, void 0, function* () {
649
+ jest.spyOn(src_1.SessionService.prototype, 'refreshDuration').mockImplementationOnce((userId) => __awaiter(void 0, void 0, void 0, function* () {
650
+ if (!userId || userId !== '755') {
651
+ throw new Error('Refresh session failed.');
652
+ }
653
+ }));
654
+ const loginUser = yield login_user_1.LoginUser.init();
655
+ const result = yield loginUser.checkSession('EZC', session.systemLogins[0].sessionId, '755');
656
+ expect(result).toEqual(session.systemLogins[0]);
657
+ }));
658
+ });
588
659
  });
589
660
  //# sourceMappingURL=login-user.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login-user.spec.js","sourceRoot":"","sources":["../../../../../__tests__/unit/components/login-user/login-user.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login-user.spec.js","sourceRoot":"","sources":["../../../../../__tests__/unit/components/login-user/login-user.spec.ts"],"names":[],"mappings":"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"}
@@ -32,5 +32,24 @@ describe('session.service', () => {
32
32
  const result = yield sessionService.retrieveUserSession("1");
33
33
  expect(result).toEqual(data);
34
34
  }));
35
+ it('should able to refresh session data', () => __awaiter(void 0, void 0, void 0, function* () {
36
+ const setUserSession = jest.spyOn(session_service_1.SessionService.prototype, 'setUserSession');
37
+ const retrieveUserSession = jest.spyOn(session_service_1.SessionService.prototype, 'retrieveUserSession');
38
+ const data = {
39
+ systemLogins: [
40
+ {
41
+ id: '1',
42
+ code: 'EZC',
43
+ sessionId: 'test1',
44
+ privileges: ['PRIVILEGE1', 'PRIVILEGE2'],
45
+ },
46
+ ],
47
+ };
48
+ const sessionService = yield session_service_1.SessionService.init();
49
+ yield sessionService.setUserSession("1", data);
50
+ yield sessionService.refreshDuration("1");
51
+ expect(setUserSession).toBeCalledTimes(2);
52
+ expect(retrieveUserSession).toBeCalledTimes(1);
53
+ }));
35
54
  });
36
55
  //# sourceMappingURL=session.service.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.service.spec.js","sourceRoot":"","sources":["../../../../__tests__/unit/session/session.service.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,0EAAsE;AACtE,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;AAE1B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;QAC/D,MAAM,cAAc,GAAG,MAAM,gCAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAS,EAAE;QACjD,MAAM,IAAI,GAAiB;YACzB,YAAY,EAAE;gBACZ;oBACE,EAAE,EAAE,GAAG;oBACP,IAAI,EAAE,KAAK;oBACX,SAAS,EAAE,OAAO;oBAClB,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;iBACzC;aACF;SACF,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,gCAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,cAAc,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"session.service.spec.js","sourceRoot":"","sources":["../../../../__tests__/unit/session/session.service.spec.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,0EAAsE;AACtE,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;AAE1B,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,iDAAiD,EAAE,GAAS,EAAE;QAC/D,MAAM,cAAc,GAAG,MAAM,gCAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAS,EAAE;QACjD,MAAM,IAAI,GAAiB;YACzB,YAAY,EAAE;gBACZ;oBACE,EAAE,EAAE,GAAG;oBACP,IAAI,EAAE,KAAK;oBACX,SAAS,EAAE,OAAO;oBAClB,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;iBACzC;aACF;SACF,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,gCAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,cAAc,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC9C,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAA,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,GAAS,EAAE;QACnD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAc,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAC9E,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,gCAAc,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;QACxF,MAAM,IAAI,GAAiB;YACzB,YAAY,EAAE;gBACZ;oBACE,EAAE,EAAE,GAAG;oBACP,IAAI,EAAE,KAAK;oBACX,SAAS,EAAE,OAAO;oBAClB,UAAU,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;iBACzC;aACF;SACF,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,gCAAc,CAAC,IAAI,EAAE,CAAC;QACnD,MAAM,cAAc,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;QAC9C,MAAM,cAAc,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAA,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export * from "./src";
1
+ export * from './src';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAqB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wCAAsB"}
@@ -1,4 +1,5 @@
1
1
  import { ObjectBase, IPerson, IAddress } from '@tomei/general';
2
+ import { ISystemLogin } from '../../../src/interfaces/system-login.interface';
2
3
  export declare class LoginUser extends ObjectBase implements IPerson {
3
4
  FullName: string;
4
5
  IDNo: string;
@@ -14,7 +15,6 @@ export declare class LoginUser extends ObjectBase implements IPerson {
14
15
  private _OriginIP;
15
16
  private _SessionService;
16
17
  private _PasswordHashService;
17
- private _MailService;
18
18
  private static _Repository;
19
19
  private static _SystemRepository;
20
20
  private static _SystemAccessRepository;
@@ -38,4 +38,6 @@ export declare class LoginUser extends ObjectBase implements IPerson {
38
38
  private getUserGroupFromDB;
39
39
  private getUserUserGroupFromDB;
40
40
  private getUserPersonalPrivileges;
41
+ checkPrivileges(systemCode: string, privilegeName: string): Promise<boolean>;
42
+ checkSession(systemCode: string, sessionId: string, userId: string): Promise<ISystemLogin>;
41
43
  }
@@ -15,11 +15,12 @@ const user_repository_1 = require("./user.repository");
15
15
  const system_repository_1 = require("../system/system.repository");
16
16
  const system_access_repository_1 = require("../system-access/system-access.repository");
17
17
  const login_history_repository_1 = require("../login-history/login-history.repository");
18
- const mail_service_1 = require("../../mail/mail.service");
19
18
  const user_user_group_repository_1 = require("../user-user-group/user-user-group.repository");
20
19
  const password_hash_service_1 = require("../password-hash/password-hash.service");
21
20
  const session_service_1 = require("../../session/session.service");
22
21
  const user_group_repository_1 = require("../user-group/user-group.repository");
22
+ const nodemailer = require("nodemailer");
23
+ const mailer_1 = require("@tomei/mailer");
23
24
  class LoginUser extends general_1.ObjectBase {
24
25
  getDetails() {
25
26
  return {
@@ -35,7 +36,6 @@ class LoginUser extends general_1.ObjectBase {
35
36
  this.ObjectName = 'User';
36
37
  this.TableName = 'sso_users';
37
38
  this._PasswordHashService = new password_hash_service_1.PasswordHashService();
38
- this._MailService = new mail_service_1.MailService();
39
39
  this._SessionService = sessionService;
40
40
  if (dbTransaction) {
41
41
  LoginUser._Repository = new user_repository_1.UserRepository(dbTransaction);
@@ -162,24 +162,50 @@ class LoginUser extends general_1.ObjectBase {
162
162
  }
163
163
  alertNewLogin(userId, systemId, ipAddress) {
164
164
  return __awaiter(this, void 0, void 0, function* () {
165
- const userLogins = yield LoginUser._LoginHistoryRepository.findAll({
166
- where: {
167
- userId: userId,
168
- systemId: systemId,
169
- },
170
- });
171
- const gotPreviousLogins = (userLogins === null || userLogins === void 0 ? void 0 : userLogins.length) !== 0;
172
- let ipFound = null;
173
- if (gotPreviousLogins) {
174
- ipFound = userLogins.find((item) => item.ipAddress === ipAddress);
175
- }
176
- if (gotPreviousLogins && !ipFound) {
177
- yield this._MailService.sendNewLoginAlertEmail({
178
- IpAddress: ipAddress,
179
- Email: this.Email,
180
- Name: this.FullName,
181
- LoginDate: new Date(),
165
+ try {
166
+ const userLogins = yield LoginUser._LoginHistoryRepository.findAll({
167
+ where: {
168
+ userId: userId,
169
+ systemId: systemId,
170
+ },
182
171
  });
172
+ const gotPreviousLogins = (userLogins === null || userLogins === void 0 ? void 0 : userLogins.length) !== 0;
173
+ let ipFound = null;
174
+ if (gotPreviousLogins) {
175
+ ipFound = userLogins.find((item) => item.ipAddress === ipAddress);
176
+ }
177
+ if (gotPreviousLogins && !ipFound) {
178
+ const SMTP_HOST = process.env.SMTP_HOST || '';
179
+ const SMTP_PORT = process.env.SMTP_PORT || '';
180
+ const EMAIL_SENDER = process.env.EMAIL_SENDER || '';
181
+ const EMAIL_PASSWORD = process.env.EMAIL_PASSWORD || '';
182
+ const mailer = new mailer_1.Mailer(nodemailer, {
183
+ host: SMTP_HOST,
184
+ port: Number(SMTP_PORT),
185
+ secure: Number(SMTP_PORT) === 465,
186
+ auth: {
187
+ user: EMAIL_SENDER,
188
+ pass: EMAIL_PASSWORD,
189
+ },
190
+ });
191
+ yield mailer.sendMail({
192
+ from: process.env.EMAIL_SENDER,
193
+ to: this.Email,
194
+ subject: 'New Login Alert',
195
+ html: `<p>Dear ${this.FullName},</p>
196
+ <p>There was a new login to your account from ${ipAddress} on ${new Date().toLocaleString()}.</p>
197
+ <p>If this was you, you can safely ignore this email.</p>
198
+ <p>If you suspect that someone else is trying to access your account, please contact us immediately at itd-support@tomei.com.my.</p>
199
+ <p>Thank you!,</p>
200
+ <p>
201
+ Best Regards,
202
+ IT Department
203
+ </p>`,
204
+ });
205
+ }
206
+ }
207
+ catch (error) {
208
+ throw error;
183
209
  }
184
210
  });
185
211
  }
@@ -327,6 +353,43 @@ class LoginUser extends general_1.ObjectBase {
327
353
  }
328
354
  });
329
355
  }
356
+ checkPrivileges(systemCode, privilegeName) {
357
+ return __awaiter(this, void 0, void 0, function* () {
358
+ if (!this.ObjectId) {
359
+ throw new Error('ObjectId(UserId) is not set');
360
+ }
361
+ const userSession = yield this._SessionService.retrieveUserSession(this.ObjectId);
362
+ const systemLogin = userSession.systemLogins.find((system) => system.code === systemCode);
363
+ if (!systemLogin) {
364
+ return false;
365
+ }
366
+ const privileges = systemLogin.privileges;
367
+ const hasPrivilege = privileges.includes(privilegeName);
368
+ return hasPrivilege;
369
+ });
370
+ }
371
+ checkSession(systemCode, sessionId, userId) {
372
+ return __awaiter(this, void 0, void 0, function* () {
373
+ try {
374
+ const userSession = yield this._SessionService.retrieveUserSession(userId);
375
+ if (userSession.systemLogins.length === 0) {
376
+ throw new Error('Session expired.');
377
+ }
378
+ const systemLogin = userSession.systemLogins.find((sl) => sl.code === systemCode);
379
+ if (!systemLogin) {
380
+ throw new Error('Session expired.');
381
+ }
382
+ if (systemLogin.sessionId !== sessionId) {
383
+ throw new Error('Session expired.');
384
+ }
385
+ yield this._SessionService.refreshDuration(userId);
386
+ return systemLogin;
387
+ }
388
+ catch (error) {
389
+ throw error;
390
+ }
391
+ });
392
+ }
330
393
  }
331
394
  exports.LoginUser = LoginUser;
332
395
  LoginUser._Repository = new user_repository_1.UserRepository();