@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.
- package/__tests__/unit/components/login-user/login-user.spec.ts +107 -19
- package/__tests__/unit/session/session.service.spec.ts +20 -0
- package/dist/__tests__/unit/components/login-user/login-user.spec.js +89 -18
- package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -1
- package/dist/__tests__/unit/session/session.service.spec.js +19 -0
- package/dist/__tests__/unit/session/session.service.spec.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/src/components/login-user/login-user.d.ts +3 -1
- package/dist/src/components/login-user/login-user.js +82 -19
- package/dist/src/components/login-user/login-user.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +0 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/session/interfaces/session-service.interface.d.ts +1 -0
- package/dist/src/session/session.service.d.ts +1 -0
- package/dist/src/session/session.service.js +12 -0
- package/dist/src/session/session.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +1 -1
- package/package.json +4 -1
- package/src/components/login-user/login-user.ts +107 -21
- package/src/index.ts +0 -1
- package/src/session/interfaces/session-service.interface.ts +1 -0
- package/src/session/session.service.ts +10 -0
- package/src/mail/index.ts +0 -2
- package/src/mail/interfaces/index.ts +0 -2
- package/src/mail/interfaces/send-mail.interface.ts +0 -8
- package/src/mail/interfaces/send-new-login-alert.interface.ts +0 -6
- package/src/mail/mail.service.ts +0 -33
- 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 {
|
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
|
-
|
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
|
-
|
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
|
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
|
-
|
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
|
-
|
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
|
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,
|
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
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
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();
|