@tomei/sso 0.66.0 → 0.66.1-test.2
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/.commitlintrc.json +22 -22
- package/.gitlab-ci.yml +237 -16
- package/.husky/commit-msg +15 -15
- package/.husky/pre-commit +7 -7
- package/.prettierrc +4 -4
- package/Jenkinsfile +57 -57
- package/README.md +23 -23
- package/__tests__/unit/components/api-key/api-key.spec.ts +201 -0
- package/__tests__/unit/components/group/group.spec.ts +85 -79
- package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
- package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
- package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +74 -66
- package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
- package/__tests__/unit/components/login-user/l.spec.ts +746 -746
- package/__tests__/unit/components/login-user/login.spec.ts +2358 -1164
- package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
- package/__tests__/unit/components/system/system.spec.ts +255 -254
- package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
- package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
- package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
- package/__tests__/unit/components/user-password-history/user-password-history.spec.ts +165 -0
- package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
- package/__tests__/unit/components/user-reporting-hierarchy/user-reporting-hierarchy.spec.ts +233 -0
- package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
- package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
- package/__tests__/unit/session/session.service.spec.ts +47 -47
- package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
- package/coverage/cobertura-coverage.xml +6837 -0
- package/coverage/test-report.xml +161 -0
- package/create-sso-user.sql +39 -39
- package/dist/__tests__/unit/components/{group-privilege/group-privilege.test.d.ts → api-key/api-key.spec.d.ts} +1 -1
- package/dist/__tests__/unit/components/api-key/api-key.spec.js +158 -0
- package/dist/__tests__/unit/components/api-key/api-key.spec.js.map +1 -0
- package/dist/__tests__/unit/components/group/group.spec.js +4 -0
- package/dist/__tests__/unit/components/group/group.spec.js.map +1 -1
- package/dist/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.js +9 -1
- package/dist/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.js.map +1 -1
- package/dist/__tests__/unit/components/login-user/login.spec.js +703 -0
- package/dist/__tests__/unit/components/login-user/login.spec.js.map +1 -1
- package/dist/__tests__/unit/components/system/system.spec.js +1 -0
- package/dist/__tests__/unit/components/system/system.spec.js.map +1 -1
- package/dist/__tests__/unit/components/user-password-history/user-password-history.spec.d.ts +1 -0
- package/dist/__tests__/unit/components/user-password-history/user-password-history.spec.js +138 -0
- package/dist/__tests__/unit/components/user-password-history/user-password-history.spec.js.map +1 -0
- package/dist/__tests__/unit/components/user-reporting-hierarchy/user-reporting-hierarchy.spec.d.ts +1 -0
- package/dist/__tests__/unit/components/user-reporting-hierarchy/user-reporting-hierarchy.spec.js +182 -0
- package/dist/__tests__/unit/components/user-reporting-hierarchy/user-reporting-hierarchy.spec.js.map +1 -0
- package/dist/src/components/login-user/login-user.js +64 -63
- package/dist/src/components/login-user/login-user.js.map +1 -1
- package/dist/src/components/login-user/user.d.ts +5 -0
- package/dist/src/components/login-user/user.js +39 -0
- package/dist/src/components/login-user/user.js.map +1 -1
- package/dist/src/components/user-password-history/user-password-history.d.ts +1 -0
- package/dist/src/components/user-password-history/user-password-history.js +41 -2
- package/dist/src/components/user-password-history/user-password-history.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/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.mjs +58 -58
- package/jest.config.js +16 -14
- package/migrations/20240314080602-create-user-table.js +124 -124
- package/migrations/20240314080603-create-user-group-table.js +85 -85
- package/migrations/20240314080604-create-user-user-group-table.js +55 -55
- package/migrations/20240314080605-create-login-history-table.js +53 -53
- package/migrations/20240527064925-create-system-table.js +78 -78
- package/migrations/20240527064926-create-system-privilege-table.js +71 -71
- package/migrations/20240527065342-create-group-table.js +93 -93
- package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
- package/migrations/20240528011551-create-group-system-access-table.js +72 -72
- package/migrations/20240528023018-user-system-access-table.js +75 -75
- package/migrations/20240528032229-user-privilege-table.js +76 -76
- package/migrations/20240528063003-create-group-privilege-table.js +76 -76
- package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
- package/migrations/20240528063107-create-user-object-privilege-table.js +84 -84
- package/migrations/20240528063108-create-api-key-table.js +85 -85
- package/migrations/20241104104802-create-building-table.js +95 -95
- package/migrations/20250108091132-add-area-manager-user-id-to-building-table.js +14 -14
- package/migrations/20250108091133-add-passcode-to-user-table.js +36 -36
- package/migrations/20250210115636-create-user-reporting-hierarchy.js +76 -76
- package/migrations/20250326043818-crate-user-password-history.js +42 -42
- package/migrations/20250610070720-added-MFBypassYN-to-sso-user.js +30 -30
- package/migrations/20250805085707-add-bulk-approval-code-to-sso-user.js +29 -0
- package/package.json +87 -90
- package/sampledotenv +7 -7
- package/src/components/login-user/login-user.ts +89 -90
- package/src/components/login-user/user.ts +68 -0
- package/src/components/user-password-history/user-password-history.ts +57 -6
- package/src/index.ts +0 -1
- package/tsconfig.build.json +5 -5
- package/tsconfig.json +23 -23
- package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js +0 -71
- package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js.map +0 -1
- package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -0
- package/dist/__tests__/unit/components/login-user/login-user.spec.js +0 -6
- package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +0 -1
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { IUserSession } from '../../../src/interfaces/user-session.interface';
|
|
2
|
-
import { SessionService } from '../../../src/session/session.service';
|
|
3
|
-
require('dotenv').config()
|
|
4
|
-
|
|
5
|
-
describe('session.service', () => {
|
|
6
|
-
it('should return session service when instansiated', async () => {
|
|
7
|
-
const sessionService = await SessionService.init();
|
|
8
|
-
expect(sessionService).toBeDefined();
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
it('should able to write session data', async () => {
|
|
12
|
-
const data: IUserSession = {
|
|
13
|
-
systemLogins: [
|
|
14
|
-
{
|
|
15
|
-
id: '1',
|
|
16
|
-
code: 'EZC',
|
|
17
|
-
sessionId: 'test1',
|
|
18
|
-
privileges: ['PRIVILEGE1', 'PRIVILEGE2'],
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
};
|
|
22
|
-
const sessionService = await SessionService.init();
|
|
23
|
-
await sessionService.setUserSession("1", data)
|
|
24
|
-
const result = await sessionService.retrieveUserSession("1");
|
|
25
|
-
expect(result).toEqual(data);
|
|
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).toHaveBeenCalledTimes(2);
|
|
45
|
-
expect(retrieveUserSession).toHaveBeenCalledTimes(1);
|
|
46
|
-
});
|
|
47
|
-
});
|
|
1
|
+
import { IUserSession } from '../../../src/interfaces/user-session.interface';
|
|
2
|
+
import { SessionService } from '../../../src/session/session.service';
|
|
3
|
+
require('dotenv').config()
|
|
4
|
+
|
|
5
|
+
describe('session.service', () => {
|
|
6
|
+
it('should return session service when instansiated', async () => {
|
|
7
|
+
const sessionService = await SessionService.init();
|
|
8
|
+
expect(sessionService).toBeDefined();
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
it('should able to write session data', async () => {
|
|
12
|
+
const data: IUserSession = {
|
|
13
|
+
systemLogins: [
|
|
14
|
+
{
|
|
15
|
+
id: '1',
|
|
16
|
+
code: 'EZC',
|
|
17
|
+
sessionId: 'test1',
|
|
18
|
+
privileges: ['PRIVILEGE1', 'PRIVILEGE2'],
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
};
|
|
22
|
+
const sessionService = await SessionService.init();
|
|
23
|
+
await sessionService.setUserSession("1", data)
|
|
24
|
+
const result = await sessionService.retrieveUserSession("1");
|
|
25
|
+
expect(result).toEqual(data);
|
|
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).toHaveBeenCalledTimes(2);
|
|
45
|
+
expect(retrieveUserSession).toHaveBeenCalledTimes(1);
|
|
46
|
+
});
|
|
47
|
+
});
|
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
// import { Privilege } from '../../../src/components/system-privilege/privilege';
|
|
2
|
-
// import { SystemPrivilegeRepository } from '../../../src/components/system-privilege/system-privilege.repository';
|
|
3
|
-
// import { SystemRepository } from '../../../src/components/system/system.repository';
|
|
4
|
-
// describe('SystemPrivilege', () => {
|
|
5
|
-
// afterEach(async () => {
|
|
6
|
-
// jest.restoreAllMocks();
|
|
7
|
-
// });
|
|
8
|
-
// it('should be able to load single package privileges', async () => {
|
|
9
|
-
// let privilegeCalled = 0;
|
|
10
|
-
// const findOrCreateMock = jest
|
|
11
|
-
// .spyOn(SystemPrivilegeRepository.prototype, 'findOrCreate')
|
|
12
|
-
// .mockResolvedValueOnce([{}, true] as any);
|
|
13
|
-
|
|
14
|
-
// const systemRepositoryMock = jest
|
|
15
|
-
// .spyOn(SystemRepository.prototype, 'findOne')
|
|
16
|
-
// .mockResolvedValueOnce({
|
|
17
|
-
// id: 175,
|
|
18
|
-
// } as any);
|
|
19
|
-
|
|
20
|
-
// jest.mock('@tomei/mailer/privileges.json', () => {
|
|
21
|
-
// privilegeCalled++;
|
|
22
|
-
// return {
|
|
23
|
-
// Privileges: [
|
|
24
|
-
// {
|
|
25
|
-
// Code: 'Privilege1',
|
|
26
|
-
// Description: 'This is Privilege1',
|
|
27
|
-
// },
|
|
28
|
-
// ],
|
|
29
|
-
// };
|
|
30
|
-
// });
|
|
31
|
-
|
|
32
|
-
// await Privilege.loadPrivileges('mailer', 'EZC');
|
|
33
|
-
// expect(findOrCreateMock).toBeCalledTimes(1);
|
|
34
|
-
// expect(systemRepositoryMock).toBeCalledTimes(1);
|
|
35
|
-
// expect(privilegeCalled).toEqual(1);
|
|
36
|
-
// });
|
|
37
|
-
|
|
38
|
-
// it('should be able to load multiple package privileges', async () => {
|
|
39
|
-
// let privilegeCalled = 0;
|
|
40
|
-
// const findOrCreateMock = jest
|
|
41
|
-
// .spyOn(SystemPrivilegeRepository.prototype, 'findOrCreate')
|
|
42
|
-
// .mockResolvedValueOnce([{}, true] as any);
|
|
43
|
-
|
|
44
|
-
// const systemRepositoryMock = jest
|
|
45
|
-
// .spyOn(SystemRepository.prototype, 'findOne')
|
|
46
|
-
// .mockResolvedValueOnce({
|
|
47
|
-
// id: 175,
|
|
48
|
-
// } as any);
|
|
49
|
-
|
|
50
|
-
// jest.mock(
|
|
51
|
-
// '@tomei/mailer/privileges.json',
|
|
52
|
-
// () => {
|
|
53
|
-
// privilegeCalled++;
|
|
54
|
-
// return {
|
|
55
|
-
// Privileges: [
|
|
56
|
-
// {
|
|
57
|
-
// Code: 'Privilege1',
|
|
58
|
-
// Description: 'This is Privilege1',
|
|
59
|
-
// },
|
|
60
|
-
// ],
|
|
61
|
-
// };
|
|
62
|
-
// },
|
|
63
|
-
// );
|
|
64
|
-
|
|
65
|
-
// jest.mock(
|
|
66
|
-
// '@tomei/config/privileges.json',
|
|
67
|
-
// () => {
|
|
68
|
-
// privilegeCalled++;
|
|
69
|
-
// return {
|
|
70
|
-
// Privileges: [
|
|
71
|
-
// {
|
|
72
|
-
// Code: 'Privilege2',
|
|
73
|
-
// Description: 'This is Privilege2',
|
|
74
|
-
// },
|
|
75
|
-
// ],
|
|
76
|
-
// };
|
|
77
|
-
// },
|
|
78
|
-
// );
|
|
79
|
-
|
|
80
|
-
// await Privilege.loadPrivileges(['mailer', 'config'], 'EZC');
|
|
81
|
-
// expect(findOrCreateMock).toBeCalledTimes(2);
|
|
82
|
-
// expect(systemRepositoryMock).toBeCalledTimes(1);
|
|
83
|
-
// expect(privilegeCalled).toEqual(2);
|
|
84
|
-
// });
|
|
85
|
-
// });
|
|
86
|
-
|
|
87
|
-
describe('SystemPrivilege', () => {
|
|
88
|
-
it('should be true', () => {
|
|
89
|
-
expect(true).toBe(true);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
1
|
+
// import { Privilege } from '../../../src/components/system-privilege/privilege';
|
|
2
|
+
// import { SystemPrivilegeRepository } from '../../../src/components/system-privilege/system-privilege.repository';
|
|
3
|
+
// import { SystemRepository } from '../../../src/components/system/system.repository';
|
|
4
|
+
// describe('SystemPrivilege', () => {
|
|
5
|
+
// afterEach(async () => {
|
|
6
|
+
// jest.restoreAllMocks();
|
|
7
|
+
// });
|
|
8
|
+
// it('should be able to load single package privileges', async () => {
|
|
9
|
+
// let privilegeCalled = 0;
|
|
10
|
+
// const findOrCreateMock = jest
|
|
11
|
+
// .spyOn(SystemPrivilegeRepository.prototype, 'findOrCreate')
|
|
12
|
+
// .mockResolvedValueOnce([{}, true] as any);
|
|
13
|
+
|
|
14
|
+
// const systemRepositoryMock = jest
|
|
15
|
+
// .spyOn(SystemRepository.prototype, 'findOne')
|
|
16
|
+
// .mockResolvedValueOnce({
|
|
17
|
+
// id: 175,
|
|
18
|
+
// } as any);
|
|
19
|
+
|
|
20
|
+
// jest.mock('@tomei/mailer/privileges.json', () => {
|
|
21
|
+
// privilegeCalled++;
|
|
22
|
+
// return {
|
|
23
|
+
// Privileges: [
|
|
24
|
+
// {
|
|
25
|
+
// Code: 'Privilege1',
|
|
26
|
+
// Description: 'This is Privilege1',
|
|
27
|
+
// },
|
|
28
|
+
// ],
|
|
29
|
+
// };
|
|
30
|
+
// });
|
|
31
|
+
|
|
32
|
+
// await Privilege.loadPrivileges('mailer', 'EZC');
|
|
33
|
+
// expect(findOrCreateMock).toBeCalledTimes(1);
|
|
34
|
+
// expect(systemRepositoryMock).toBeCalledTimes(1);
|
|
35
|
+
// expect(privilegeCalled).toEqual(1);
|
|
36
|
+
// });
|
|
37
|
+
|
|
38
|
+
// it('should be able to load multiple package privileges', async () => {
|
|
39
|
+
// let privilegeCalled = 0;
|
|
40
|
+
// const findOrCreateMock = jest
|
|
41
|
+
// .spyOn(SystemPrivilegeRepository.prototype, 'findOrCreate')
|
|
42
|
+
// .mockResolvedValueOnce([{}, true] as any);
|
|
43
|
+
|
|
44
|
+
// const systemRepositoryMock = jest
|
|
45
|
+
// .spyOn(SystemRepository.prototype, 'findOne')
|
|
46
|
+
// .mockResolvedValueOnce({
|
|
47
|
+
// id: 175,
|
|
48
|
+
// } as any);
|
|
49
|
+
|
|
50
|
+
// jest.mock(
|
|
51
|
+
// '@tomei/mailer/privileges.json',
|
|
52
|
+
// () => {
|
|
53
|
+
// privilegeCalled++;
|
|
54
|
+
// return {
|
|
55
|
+
// Privileges: [
|
|
56
|
+
// {
|
|
57
|
+
// Code: 'Privilege1',
|
|
58
|
+
// Description: 'This is Privilege1',
|
|
59
|
+
// },
|
|
60
|
+
// ],
|
|
61
|
+
// };
|
|
62
|
+
// },
|
|
63
|
+
// );
|
|
64
|
+
|
|
65
|
+
// jest.mock(
|
|
66
|
+
// '@tomei/config/privileges.json',
|
|
67
|
+
// () => {
|
|
68
|
+
// privilegeCalled++;
|
|
69
|
+
// return {
|
|
70
|
+
// Privileges: [
|
|
71
|
+
// {
|
|
72
|
+
// Code: 'Privilege2',
|
|
73
|
+
// Description: 'This is Privilege2',
|
|
74
|
+
// },
|
|
75
|
+
// ],
|
|
76
|
+
// };
|
|
77
|
+
// },
|
|
78
|
+
// );
|
|
79
|
+
|
|
80
|
+
// await Privilege.loadPrivileges(['mailer', 'config'], 'EZC');
|
|
81
|
+
// expect(findOrCreateMock).toBeCalledTimes(2);
|
|
82
|
+
// expect(systemRepositoryMock).toBeCalledTimes(1);
|
|
83
|
+
// expect(privilegeCalled).toEqual(2);
|
|
84
|
+
// });
|
|
85
|
+
// });
|
|
86
|
+
|
|
87
|
+
describe('SystemPrivilege', () => {
|
|
88
|
+
it('should be true', () => {
|
|
89
|
+
expect(true).toBe(true);
|
|
90
|
+
});
|
|
91
|
+
});
|