@tomei/sso 0.15.10 → 0.16.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.
Files changed (54) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.eslintrc +16 -16
  3. package/.eslintrc.js +35 -35
  4. package/.husky/commit-msg +15 -15
  5. package/.husky/pre-commit +7 -7
  6. package/.prettierrc +4 -4
  7. package/Jenkinsfile +57 -57
  8. package/README.md +23 -23
  9. package/__tests__/unit/components/login-user/login-user.spec.ts +742 -742
  10. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
  11. package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
  12. package/__tests__/unit/session/session.service.spec.ts +47 -47
  13. package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
  14. package/create-sso-user.sql +39 -39
  15. package/dist/__tests__/unit/components/login-user/login-user.spec.js +15 -15
  16. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -1
  17. package/dist/src/components/building/building.d.ts +10 -3
  18. package/dist/src/components/building/building.js +12 -1
  19. package/dist/src/components/building/building.js.map +1 -1
  20. package/dist/src/components/login-user/interfaces/user-info.interface.d.ts +19 -1
  21. package/dist/src/components/login-user/login-user.d.ts +54 -9
  22. package/dist/src/components/login-user/login-user.js +177 -29
  23. package/dist/src/components/login-user/login-user.js.map +1 -1
  24. package/dist/src/components/staff/staff.d.ts +1 -1
  25. package/dist/src/components/staff/staff.js +1 -1
  26. package/dist/src/components/staff/staff.js.map +1 -1
  27. package/dist/src/enum/index.d.ts +1 -0
  28. package/dist/src/enum/index.js +18 -0
  29. package/dist/src/enum/index.js.map +1 -0
  30. package/dist/src/enum/yn.enum.d.ts +4 -0
  31. package/dist/src/enum/yn.enum.js +9 -0
  32. package/dist/src/enum/yn.enum.js.map +1 -0
  33. package/dist/src/models/user.entity.d.ts +16 -6
  34. package/dist/src/models/user.entity.js +85 -25
  35. package/dist/src/models/user.entity.js.map +1 -1
  36. package/dist/tsconfig.tsbuildinfo +1 -1
  37. package/jest.config.js +13 -13
  38. package/migrations/01-alter-system-privilege-table.js +13 -13
  39. package/migrations/02-alter-user-group-table.js +78 -78
  40. package/migrations/03-alter-user-system-privilege-table.js +38 -38
  41. package/migrations/20240314080603-create-user-table.js +108 -0
  42. package/migrations/{04-create-user-user-group-table.js → 20240314080604-create-user-user-group-table.js} +55 -55
  43. package/migrations/{05-create-login-history-table.js → 20240314080605-create-login-history-table.js} +49 -49
  44. package/package.json +80 -79
  45. package/sampledotenv +7 -7
  46. package/src/components/building/building.ts +18 -3
  47. package/src/components/login-user/interfaces/user-info.interface.ts +29 -9
  48. package/src/components/login-user/login-user.ts +749 -557
  49. package/src/components/staff/staff.ts +4 -2
  50. package/src/enum/index.ts +1 -0
  51. package/src/enum/yn.enum.ts +4 -0
  52. package/src/models/user.entity.ts +160 -110
  53. package/tsconfig.build.json +5 -5
  54. package/tsconfig.json +23 -23
@@ -1,32 +1,32 @@
1
- import { PasswordHashService } from "../../../../src/components/password-hash/password-hash.service";
2
-
3
- jest.mock('argon2', () => {
4
- return {
5
- hash: jest.fn((passowrd) => {
6
- return `hash${passowrd}`;
7
- }),
8
- verify: jest.fn().mockResolvedValue(true)
9
- }
10
- })
11
-
12
- describe('password-hash.service', () => {
13
- const passwordHashService = new PasswordHashService();
14
- afterEach(() => {
15
- jest.clearAllMocks();
16
- });
17
-
18
- it('should return hash password', async () => {
19
- const password = 'password';
20
- const hash = await passwordHashService.hashPassword(password);
21
- expect(hash).toEqual('hashpassword');
22
- })
23
-
24
- it('should return true when verify password', async () => {
25
- const password = 'password';
26
- const hash = 'hashpassword10';
27
- const result = await passwordHashService.verify(password, hash);
28
- expect(result).toEqual(true);
29
- });
30
-
31
-
1
+ import { PasswordHashService } from "../../../../src/components/password-hash/password-hash.service";
2
+
3
+ jest.mock('argon2', () => {
4
+ return {
5
+ hash: jest.fn((passowrd) => {
6
+ return `hash${passowrd}`;
7
+ }),
8
+ verify: jest.fn().mockResolvedValue(true)
9
+ }
10
+ })
11
+
12
+ describe('password-hash.service', () => {
13
+ const passwordHashService = new PasswordHashService();
14
+ afterEach(() => {
15
+ jest.clearAllMocks();
16
+ });
17
+
18
+ it('should return hash password', async () => {
19
+ const password = 'password';
20
+ const hash = await passwordHashService.hashPassword(password);
21
+ expect(hash).toEqual('hashpassword');
22
+ })
23
+
24
+ it('should return true when verify password', async () => {
25
+ const password = 'password';
26
+ const hash = 'hashpassword10';
27
+ const result = await passwordHashService.verify(password, hash);
28
+ expect(result).toEqual(true);
29
+ });
30
+
31
+
32
32
  })
@@ -1,24 +1,24 @@
1
- import { RedisService } from "../../../src/redis-client/redis.service";
2
- require('dotenv').config()
3
- // nneed to figure out how to mock redis
4
- describe('redis.service', () => {
5
-
6
- afterEach(() => {
7
- jest.restoreAllMocks()
8
- })
9
-
10
- it('should return redis service when instansiated', async () => {
11
- const redisService = await RedisService.init();
12
- expect(redisService).toBeDefined();
13
- });
14
-
15
- it('should able to write and read redis', async () => {
16
- const data = {
17
- test: 'test'
18
- }
19
- const redisService = await RedisService.init();
20
- await redisService.set("test", data, 60 * 60 * 24 * 1)
21
- const result = await redisService.get("test");
22
- expect(result).toEqual(JSON.stringify(data));
23
- });
1
+ import { RedisService } from "../../../src/redis-client/redis.service";
2
+ require('dotenv').config()
3
+ // nneed to figure out how to mock redis
4
+ describe('redis.service', () => {
5
+
6
+ afterEach(() => {
7
+ jest.restoreAllMocks()
8
+ })
9
+
10
+ it('should return redis service when instansiated', async () => {
11
+ const redisService = await RedisService.init();
12
+ expect(redisService).toBeDefined();
13
+ });
14
+
15
+ it('should able to write and read redis', async () => {
16
+ const data = {
17
+ test: 'test'
18
+ }
19
+ const redisService = await RedisService.init();
20
+ await redisService.set("test", data, 60 * 60 * 24 * 1)
21
+ const result = await redisService.get("test");
22
+ expect(result).toEqual(JSON.stringify(data));
23
+ });
24
24
  });
@@ -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).toBeCalledTimes(2);
45
- expect(retrieveUserSession).toBeCalledTimes(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).toBeCalledTimes(2);
45
+ expect(retrieveUserSession).toBeCalledTimes(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
+ });
@@ -1,40 +1,40 @@
1
-
2
- -- example to create sso-user
3
- CREATE USER 'sso_user'@'environment' IDENTIFIED BY 'password';
4
-
5
- -- example to grant neccesary access to run migration
6
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_authorization_codes TO 'sso_user'@'localhost' WITH GRANT OPTION;
7
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_bearer_tokens TO 'sso_user'@'localhost' WITH GRANT OPTION;
8
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_building_types TO 'sso_user'@'localhost' WITH GRANT OPTION;
9
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_buildings TO 'sso_user'@'localhost' WITH GRANT OPTION;
10
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_cities TO 'sso_user'@'localhost' WITH GRANT OPTION;
11
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_companies TO 'sso_user'@'localhost' WITH GRANT OPTION;
12
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_countries TO 'sso_user'@'localhost' WITH GRANT OPTION;
13
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_departments TO 'sso_user'@'localhost' WITH GRANT OPTION;
14
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_grouproleprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
15
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemaccess TO 'sso_user'@'localhost' WITH GRANT OPTION;
16
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
17
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
18
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_oauth_tokens TO 'sso_user'@'localhost' WITH GRANT OPTION;
19
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_roles TO 'sso_user'@'localhost' WITH GRANT OPTION;
20
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_sequelize_meta TO 'sso_user'@'localhost' WITH GRANT OPTION;
21
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_staff_types TO 'sso_user'@'localhost' WITH GRANT OPTION;
22
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_staffs TO 'sso_user'@'localhost' WITH GRANT OPTION;
23
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_states TO 'sso_user'@'localhost' WITH GRANT OPTION;
24
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_system_accesses TO 'sso_user'@'localhost' WITH GRANT OPTION;
25
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
26
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
27
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemroleprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
28
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systems TO 'sso_user'@'localhost' WITH GRANT OPTION;
29
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_updated_history TO 'sso_user'@'localhost' WITH GRANT OPTION;
30
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_user_roles TO 'sso_user'@'localhost' WITH GRANT OPTION;
31
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usergroup TO 'sso_user'@'localhost' WITH GRANT OPTION;
32
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_users TO 'sso_user'@'localhost' WITH GRANT OPTION;
33
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usersystemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
34
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usersystemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
35
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_UserUserGroup TO 'sso_user'@'localhost' WITH GRANT OPTION;
36
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production._prisma_migrations TO 'sso_user'@'localhost' WITH GRANT OPTION;
37
-
38
-
39
- -- Grant user to create, alter, drop, references on the database (required for creating shadow tables)
1
+
2
+ -- example to create sso-user
3
+ CREATE USER 'sso_user'@'environment' IDENTIFIED BY 'password';
4
+
5
+ -- example to grant neccesary access to run migration
6
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_authorization_codes TO 'sso_user'@'localhost' WITH GRANT OPTION;
7
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_bearer_tokens TO 'sso_user'@'localhost' WITH GRANT OPTION;
8
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_building_types TO 'sso_user'@'localhost' WITH GRANT OPTION;
9
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_buildings TO 'sso_user'@'localhost' WITH GRANT OPTION;
10
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_cities TO 'sso_user'@'localhost' WITH GRANT OPTION;
11
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_companies TO 'sso_user'@'localhost' WITH GRANT OPTION;
12
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_countries TO 'sso_user'@'localhost' WITH GRANT OPTION;
13
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_departments TO 'sso_user'@'localhost' WITH GRANT OPTION;
14
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_grouproleprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
15
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemaccess TO 'sso_user'@'localhost' WITH GRANT OPTION;
16
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
17
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_groupsystemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
18
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_oauth_tokens TO 'sso_user'@'localhost' WITH GRANT OPTION;
19
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_roles TO 'sso_user'@'localhost' WITH GRANT OPTION;
20
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_sequelize_meta TO 'sso_user'@'localhost' WITH GRANT OPTION;
21
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_staff_types TO 'sso_user'@'localhost' WITH GRANT OPTION;
22
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_staffs TO 'sso_user'@'localhost' WITH GRANT OPTION;
23
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_states TO 'sso_user'@'localhost' WITH GRANT OPTION;
24
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_system_accesses TO 'sso_user'@'localhost' WITH GRANT OPTION;
25
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
26
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
27
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systemroleprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
28
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_systems TO 'sso_user'@'localhost' WITH GRANT OPTION;
29
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_updated_history TO 'sso_user'@'localhost' WITH GRANT OPTION;
30
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_user_roles TO 'sso_user'@'localhost' WITH GRANT OPTION;
31
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usergroup TO 'sso_user'@'localhost' WITH GRANT OPTION;
32
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_users TO 'sso_user'@'localhost' WITH GRANT OPTION;
33
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usersystemprivilege TO 'sso_user'@'localhost' WITH GRANT OPTION;
34
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_usersystemrole TO 'sso_user'@'localhost' WITH GRANT OPTION;
35
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production.sso_UserUserGroup TO 'sso_user'@'localhost' WITH GRANT OPTION;
36
+ GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES on production._prisma_migrations TO 'sso_user'@'localhost' WITH GRANT OPTION;
37
+
38
+
39
+ -- Grant user to create, alter, drop, references on the database (required for creating shadow tables)
40
40
  GRANT CREATE, ALTER, DROP, REFERENCES ON shadow_database.* TO 'sso_user'@'localhost' WITH GRANT OPTION;
@@ -470,13 +470,13 @@ describe('login-user', () => {
470
470
  }));
471
471
  it('should able to do login process when no session is already available', () => __awaiter(void 0, void 0, void 0, function* () {
472
472
  const sessionService = yield src_1.SessionService.init();
473
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
473
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
474
474
  const result = yield loginUser.login('EZC', 'ezcash+florence@tomei.com.my', 'Abcd@1234', '1.1.1.1');
475
475
  expect(result).toEqual('755:ckymxuh8t000137t011w89zgk');
476
476
  }));
477
477
  it('should able to do login process when session is already available', () => __awaiter(void 0, void 0, void 0, function* () {
478
478
  const sessionService = yield src_1.SessionService.init();
479
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
479
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
480
480
  const result = yield loginUser.login('EZC', 'ezcash+florence@tomei.com.my', 'Abcd@1234', '1.1.1.1');
481
481
  expect(result).toEqual('755:ckymxuh8t000137t011w89zgk');
482
482
  }));
@@ -487,7 +487,7 @@ describe('login-user', () => {
487
487
  });
488
488
  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* () {
489
489
  const sessionService = yield src_1.SessionService.init();
490
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
490
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
491
491
  const result = yield loginUser['getPrivileges']('EZC');
492
492
  expect(getUserGroupFromDBMock).toBeCalledTimes(2);
493
493
  expect(result).toEqual([
@@ -508,7 +508,7 @@ describe('login-user', () => {
508
508
  const tempUserUserGroups = userUserGroups;
509
509
  userUserGroups.push(userUserGroups[0]);
510
510
  const sessionService = yield src_1.SessionService.init();
511
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
511
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
512
512
  const result = yield loginUser['getPrivileges']('EZC');
513
513
  expect(getUserUserGroupFromDBMock).toBeCalledTimes(1);
514
514
  expect(getUserGroupFromDBMock).toBeCalledTimes(4);
@@ -531,7 +531,7 @@ describe('login-user', () => {
531
531
  const tempUserUserGroup = userUserGroups;
532
532
  userUserGroups = [];
533
533
  const sessionService = yield src_1.SessionService.init();
534
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
534
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
535
535
  const result = yield loginUser['getPrivileges']('EZC');
536
536
  expect(getUserGroupFromDBMock).toBeCalledTimes(0);
537
537
  expect(result).toEqual(['Terminate Data']);
@@ -543,7 +543,7 @@ describe('login-user', () => {
543
543
  const tempUser = user;
544
544
  user.SystemPrivileges = [];
545
545
  const sessionService = yield src_1.SessionService.init();
546
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
546
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
547
547
  const result = yield loginUser['getPrivileges']('EZC');
548
548
  expect(getUserGroupFromDBMock).toBeCalledTimes(0);
549
549
  expect(result).toEqual([
@@ -562,7 +562,7 @@ describe('login-user', () => {
562
562
  const tempUser = user;
563
563
  user.SystemPrivileges = [];
564
564
  const sessionService = yield src_1.SessionService.init();
565
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
565
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
566
566
  const result = yield loginUser['getPrivileges']('EZC');
567
567
  expect(getUserGroupFromDBMock).toBeCalledTimes(0);
568
568
  expect(result).toEqual([
@@ -580,7 +580,7 @@ describe('login-user', () => {
580
580
  const tempUserUserGroup = userUserGroups;
581
581
  userUserGroups = [];
582
582
  const sessionService = yield src_1.SessionService.init();
583
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
583
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
584
584
  const result = yield loginUser['getPrivileges']('EZC');
585
585
  expect(getUserGroupFromDBMock).toBeCalledTimes(0);
586
586
  expect(result).toEqual([]);
@@ -595,27 +595,27 @@ describe('login-user', () => {
595
595
  it('should return false if user session not found', () => __awaiter(void 0, void 0, void 0, function* () {
596
596
  isSessionExist = false;
597
597
  const sessionService = yield src_1.SessionService.init();
598
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
598
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
599
599
  const result = yield loginUser.checkPrivileges('EZC', 'Terminate');
600
600
  expect(result).toEqual(false);
601
601
  }));
602
602
  it('should return false if system login not found', () => __awaiter(void 0, void 0, void 0, function* () {
603
603
  isSessionExist = false;
604
604
  const sessionService = yield src_1.SessionService.init();
605
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
605
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
606
606
  const result = yield loginUser.checkPrivileges('EZC', 'Terminate');
607
607
  expect(result).toEqual(false);
608
608
  }));
609
609
  it('should return false if privilege not found', () => __awaiter(void 0, void 0, void 0, function* () {
610
610
  isSessionExist = false;
611
611
  const sessionService = yield src_1.SessionService.init();
612
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
612
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
613
613
  const result = yield loginUser.checkPrivileges('EZC', 'Not Terminate');
614
614
  expect(result).toEqual(false);
615
615
  }));
616
616
  it('should return true if privilege found', () => __awaiter(void 0, void 0, void 0, function* () {
617
617
  const sessionService = yield src_1.SessionService.init();
618
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
618
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
619
619
  const result = yield loginUser.checkPrivileges('EZC', 'Terminate');
620
620
  expect(result).toEqual(true);
621
621
  }));
@@ -628,7 +628,7 @@ describe('login-user', () => {
628
628
  try {
629
629
  isSessionExist = false;
630
630
  const sessionService = yield src_1.SessionService.init();
631
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
631
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
632
632
  yield loginUser.checkSession('EZC', session.systemLogins[0].sessionId, '755');
633
633
  }
634
634
  catch (error) {
@@ -638,7 +638,7 @@ describe('login-user', () => {
638
638
  it('it should returns session expired if sessionId not matched', () => __awaiter(void 0, void 0, void 0, function* () {
639
639
  try {
640
640
  const sessionService = yield src_1.SessionService.init();
641
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
641
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
642
642
  yield loginUser.checkSession('NOTEZC', session.systemLogins[0].sessionId, '755');
643
643
  }
644
644
  catch (error) {
@@ -654,7 +654,7 @@ describe('login-user', () => {
654
654
  }
655
655
  }));
656
656
  const sessionService = yield src_1.SessionService.init();
657
- const loginUser = yield login_user_1.LoginUser.init(sessionService, '755');
657
+ const loginUser = yield login_user_1.LoginUser.init(sessionService, 755);
658
658
  const result = yield loginUser.checkSession('EZC', session.systemLogins[0].sessionId, '755');
659
659
  expect(result).toEqual(session.systemLogins[0]);
660
660
  }));