@tomei/sso 0.52.2 → 0.52.3

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 (135) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.gitlab-ci.yml +16 -16
  3. package/.husky/commit-msg +15 -15
  4. package/.husky/pre-commit +7 -7
  5. package/.prettierrc +4 -4
  6. package/Jenkinsfile +57 -57
  7. package/README.md +23 -23
  8. package/__tests__/unit/components/group/group.spec.ts +79 -79
  9. package/__tests__/unit/components/group-object-privilege/group-object-privilege.spec.ts +88 -88
  10. package/__tests__/unit/components/group-privilege/group-privilege.spec.ts +68 -68
  11. package/__tests__/unit/components/group-reporting-user/group-reporting-user.spec.ts +66 -66
  12. package/__tests__/unit/components/group-system-access/group-system-access.spec.ts +83 -83
  13. package/__tests__/unit/components/login-user/l.spec.ts +746 -746
  14. package/__tests__/unit/components/login-user/login.spec.ts +1164 -1164
  15. package/__tests__/unit/components/password-hash/password-hash.service.spec.ts +31 -31
  16. package/__tests__/unit/components/system/system.spec.ts +254 -254
  17. package/__tests__/unit/components/system-privilege/system-privilege.spec.ts +83 -83
  18. package/__tests__/unit/components/user-group/user-group.spec.ts +86 -86
  19. package/__tests__/unit/components/user-object-privilege/user-object-privilege.spec.ts +78 -78
  20. package/__tests__/unit/components/user-privilege/user-privilege.spec.ts +72 -72
  21. package/__tests__/unit/components/user-system-access/user-system-access.spec.ts +89 -89
  22. package/__tests__/unit/redis-client/redis.service.spec.ts +23 -23
  23. package/__tests__/unit/session/session.service.spec.ts +47 -47
  24. package/__tests__/unit/system-privilege/system-privilage.spec.ts +91 -91
  25. package/coverage/clover.xml +1452 -1452
  26. package/coverage/coverage-final.json +47 -47
  27. package/coverage/lcov-report/base.css +224 -224
  28. package/coverage/lcov-report/block-navigation.js +87 -87
  29. package/coverage/lcov-report/components/group/group.repository.ts.html +117 -117
  30. package/coverage/lcov-report/components/group/group.ts.html +327 -327
  31. package/coverage/lcov-report/components/group/index.html +130 -130
  32. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.repository.ts.html +117 -117
  33. package/coverage/lcov-report/components/group-object-privilege/group-object-privilege.ts.html +321 -321
  34. package/coverage/lcov-report/components/group-object-privilege/index.html +130 -130
  35. package/coverage/lcov-report/components/group-privilege/group-privilege.repository.ts.html +117 -117
  36. package/coverage/lcov-report/components/group-privilege/group-privilege.ts.html +303 -303
  37. package/coverage/lcov-report/components/group-privilege/index.html +130 -130
  38. package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.repository.ts.html +117 -117
  39. package/coverage/lcov-report/components/group-reporting-user/group-reporting-user.ts.html +327 -327
  40. package/coverage/lcov-report/components/group-reporting-user/index.html +130 -130
  41. package/coverage/lcov-report/components/group-system-access/group-system-access.repository.ts.html +117 -117
  42. package/coverage/lcov-report/components/group-system-access/group-system-access.ts.html +309 -309
  43. package/coverage/lcov-report/components/group-system-access/index.html +130 -130
  44. package/coverage/lcov-report/components/login-history/index.html +115 -115
  45. package/coverage/lcov-report/components/login-history/login-history.repository.ts.html +117 -117
  46. package/coverage/lcov-report/components/login-user/index.html +130 -130
  47. package/coverage/lcov-report/components/login-user/login-user.ts.html +5007 -5007
  48. package/coverage/lcov-report/components/login-user/user.repository.ts.html +117 -117
  49. package/coverage/lcov-report/components/password-hash/index.html +115 -115
  50. package/coverage/lcov-report/components/password-hash/password-hash.service.ts.html +126 -126
  51. package/coverage/lcov-report/components/system/index.html +130 -130
  52. package/coverage/lcov-report/components/system/system.repository.ts.html +117 -117
  53. package/coverage/lcov-report/components/system/system.ts.html +909 -909
  54. package/coverage/lcov-report/components/system-privilege/index.html +130 -130
  55. package/coverage/lcov-report/components/system-privilege/system-privilege.repository.ts.html +120 -120
  56. package/coverage/lcov-report/components/system-privilege/system-privilege.ts.html +390 -390
  57. package/coverage/lcov-report/components/user-group/index.html +130 -130
  58. package/coverage/lcov-report/components/user-group/user-group.repository.ts.html +117 -117
  59. package/coverage/lcov-report/components/user-group/user-group.ts.html +354 -354
  60. package/coverage/lcov-report/components/user-object-privilege/index.html +130 -130
  61. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.repository.ts.html +117 -117
  62. package/coverage/lcov-report/components/user-object-privilege/user-object-privilege.ts.html +312 -312
  63. package/coverage/lcov-report/components/user-privilege/index.html +130 -130
  64. package/coverage/lcov-report/components/user-privilege/user-privilege.repository.ts.html +117 -117
  65. package/coverage/lcov-report/components/user-privilege/user-privilege.ts.html +306 -306
  66. package/coverage/lcov-report/components/user-system-access/index.html +130 -130
  67. package/coverage/lcov-report/components/user-system-access/user-system-access.repository.ts.html +117 -117
  68. package/coverage/lcov-report/components/user-system-access/user-system-access.ts.html +312 -312
  69. package/coverage/lcov-report/enum/group-type.enum.ts.html +108 -108
  70. package/coverage/lcov-report/enum/index.html +160 -160
  71. package/coverage/lcov-report/enum/index.ts.html +93 -93
  72. package/coverage/lcov-report/enum/user-status.enum.ts.html +105 -105
  73. package/coverage/lcov-report/enum/yn.enum.ts.html +96 -96
  74. package/coverage/lcov-report/index.html +370 -370
  75. package/coverage/lcov-report/models/group-object-privilege.entity.ts.html +333 -333
  76. package/coverage/lcov-report/models/group-privilege.entity.ts.html +315 -315
  77. package/coverage/lcov-report/models/group-reporting-user.entity.ts.html +339 -339
  78. package/coverage/lcov-report/models/group-system-access.entity.ts.html +324 -324
  79. package/coverage/lcov-report/models/group.entity.ts.html +435 -435
  80. package/coverage/lcov-report/models/index.html +310 -310
  81. package/coverage/lcov-report/models/login-history.entity.ts.html +252 -252
  82. package/coverage/lcov-report/models/staff.entity.ts.html +411 -411
  83. package/coverage/lcov-report/models/system-privilege.entity.ts.html +354 -354
  84. package/coverage/lcov-report/models/system.entity.ts.html +423 -423
  85. package/coverage/lcov-report/models/user-group.entity.ts.html +354 -354
  86. package/coverage/lcov-report/models/user-object-privilege.entity.ts.html +330 -330
  87. package/coverage/lcov-report/models/user-privilege.entity.ts.html +315 -315
  88. package/coverage/lcov-report/models/user-system-access.entity.ts.html +315 -315
  89. package/coverage/lcov-report/models/user.entity.ts.html +522 -522
  90. package/coverage/lcov-report/prettify.css +1 -1
  91. package/coverage/lcov-report/prettify.js +2 -2
  92. package/coverage/lcov-report/redis-client/index.html +115 -115
  93. package/coverage/lcov-report/redis-client/redis.service.ts.html +240 -240
  94. package/coverage/lcov-report/session/index.html +115 -115
  95. package/coverage/lcov-report/session/session.service.ts.html +246 -246
  96. package/coverage/lcov-report/sorter.js +196 -196
  97. package/coverage/lcov.info +2490 -2490
  98. package/coverage/test-report.xml +128 -128
  99. package/create-sso-user.sql +39 -39
  100. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.d.ts +1 -0
  101. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js +71 -0
  102. package/dist/__tests__/unit/components/group-privilege/group-privilege.test.js.map +1 -0
  103. package/dist/__tests__/unit/components/login-user/login-user.spec.d.ts +0 -0
  104. package/dist/__tests__/unit/components/login-user/login-user.spec.js +6 -0
  105. package/dist/__tests__/unit/components/login-user/login-user.spec.js.map +1 -0
  106. package/dist/src/components/login-user/user.d.ts +3 -2
  107. package/dist/src/components/login-user/user.js +12 -8
  108. package/dist/src/components/login-user/user.js.map +1 -1
  109. package/dist/src/types/auth-context.d.ts +2 -1
  110. package/dist/tsconfig.tsbuildinfo +1 -1
  111. package/eslint.config.mjs +58 -58
  112. package/jest.config.js +14 -14
  113. package/migrations/20240314080602-create-user-table.js +124 -124
  114. package/migrations/20240314080603-create-user-group-table.js +85 -85
  115. package/migrations/20240314080604-create-user-user-group-table.js +55 -55
  116. package/migrations/20240314080605-create-login-history-table.js +53 -53
  117. package/migrations/20240527064925-create-system-table.js +78 -78
  118. package/migrations/20240527064926-create-system-privilege-table.js +71 -71
  119. package/migrations/20240527065342-create-group-table.js +93 -93
  120. package/migrations/20240527065633-create-group-reporting-user-table.js +76 -76
  121. package/migrations/20240528011551-create-group-system-access-table.js +72 -72
  122. package/migrations/20240528023018-user-system-access-table.js +75 -75
  123. package/migrations/20240528032229-user-privilege-table.js +76 -76
  124. package/migrations/20240528063003-create-group-privilege-table.js +76 -76
  125. package/migrations/20240528063051-create-group-object-privilege-table.js +84 -84
  126. package/migrations/20240528063107-create-user-object-privilege-table.js +84 -84
  127. package/migrations/20240528063108-create-api-key-table.js +85 -85
  128. package/migrations/20241104104802-create-building-table.js +95 -95
  129. package/package.json +90 -90
  130. package/sampledotenv +7 -7
  131. package/sonar-project.properties +22 -22
  132. package/src/components/login-user/user.ts +29 -24
  133. package/src/types/auth-context.ts +2 -1
  134. package/tsconfig.build.json +5 -5
  135. package/tsconfig.json +23 -23
@@ -1,95 +1,95 @@
1
- 'use strict';
2
-
3
- /** @type {import('sequelize-cli').Migration} */
4
- module.exports = {
5
- up: async (queryInterface, Sequelize) => {
6
- await queryInterface.createTable('sso_Building', {
7
- GroupCode: {
8
- type: Sequelize.STRING(10),
9
- primaryKey: true,
10
- allowNull: false,
11
- references: {
12
- model: 'sso_Group',
13
- key: 'GroupCode',
14
- },
15
- onUpdate: 'CASCADE',
16
- onDelete: 'CASCADE',
17
- },
18
- BuildingType: {
19
- type: Sequelize.ENUM(
20
- 'Outlet',
21
- 'Office',
22
- 'Fulfillment Center',
23
- 'Warehouse',
24
- ),
25
- allowNull: true,
26
- },
27
- Email: {
28
- type: Sequelize.STRING(200),
29
- allowNull: true,
30
- },
31
- Mobile: {
32
- type: Sequelize.STRING(20),
33
- allowNull: true,
34
- },
35
- Phone: {
36
- type: Sequelize.STRING(20),
37
- allowNull: false,
38
- },
39
- Brand: {
40
- type: Sequelize.STRING(10),
41
- allowNull: true,
42
- },
43
- OpeningDate: {
44
- type: Sequelize.DATE,
45
- allowNull: true,
46
- },
47
- CeasedDate: {
48
- type: Sequelize.DATE,
49
- allowNull: true,
50
- },
51
- OpeningHours: {
52
- type: Sequelize.STRING(200),
53
- allowNull: true,
54
- },
55
- CreatedById: {
56
- type: Sequelize.INTEGER,
57
- allowNull: true,
58
- references: {
59
- model: 'sso_User',
60
- key: 'UserId',
61
- },
62
- onDelete: 'CASCADE',
63
- onUpdate: 'CASCADE',
64
- },
65
- CreatedAt: {
66
- allowNull: false,
67
- defaultValue: Sequelize.literal('CURRENT_TIMESTAMP(3)'),
68
- type: Sequelize.DATE,
69
- },
70
- UpdatedById: {
71
- type: Sequelize.INTEGER,
72
- allowNull: true,
73
- references: {
74
- model: 'sso_User',
75
- key: 'UserId',
76
- },
77
- onDelete: 'CASCADE',
78
- onUpdate: 'CASCADE',
79
- },
80
- UpdatedAt: {
81
- allowNull: false,
82
- defaultValue: Sequelize.literal('CURRENT_TIMESTAMP(3)'),
83
- type: Sequelize.DATE,
84
- },
85
- });
86
- },
87
-
88
- down: async (queryInterface) => {
89
- // Drop the trigger before dropping the table
90
- await queryInterface.sequelize.query(
91
- `DROP TRIGGER IF EXISTS update_GroupCode_ObjectId`,
92
- );
93
- await queryInterface.dropTable('sso_Building');
94
- },
95
- };
1
+ 'use strict';
2
+
3
+ /** @type {import('sequelize-cli').Migration} */
4
+ module.exports = {
5
+ up: async (queryInterface, Sequelize) => {
6
+ await queryInterface.createTable('sso_Building', {
7
+ GroupCode: {
8
+ type: Sequelize.STRING(10),
9
+ primaryKey: true,
10
+ allowNull: false,
11
+ references: {
12
+ model: 'sso_Group',
13
+ key: 'GroupCode',
14
+ },
15
+ onUpdate: 'CASCADE',
16
+ onDelete: 'CASCADE',
17
+ },
18
+ BuildingType: {
19
+ type: Sequelize.ENUM(
20
+ 'Outlet',
21
+ 'Office',
22
+ 'Fulfillment Center',
23
+ 'Warehouse',
24
+ ),
25
+ allowNull: true,
26
+ },
27
+ Email: {
28
+ type: Sequelize.STRING(200),
29
+ allowNull: true,
30
+ },
31
+ Mobile: {
32
+ type: Sequelize.STRING(20),
33
+ allowNull: true,
34
+ },
35
+ Phone: {
36
+ type: Sequelize.STRING(20),
37
+ allowNull: false,
38
+ },
39
+ Brand: {
40
+ type: Sequelize.STRING(10),
41
+ allowNull: true,
42
+ },
43
+ OpeningDate: {
44
+ type: Sequelize.DATE,
45
+ allowNull: true,
46
+ },
47
+ CeasedDate: {
48
+ type: Sequelize.DATE,
49
+ allowNull: true,
50
+ },
51
+ OpeningHours: {
52
+ type: Sequelize.STRING(200),
53
+ allowNull: true,
54
+ },
55
+ CreatedById: {
56
+ type: Sequelize.INTEGER,
57
+ allowNull: true,
58
+ references: {
59
+ model: 'sso_User',
60
+ key: 'UserId',
61
+ },
62
+ onDelete: 'CASCADE',
63
+ onUpdate: 'CASCADE',
64
+ },
65
+ CreatedAt: {
66
+ allowNull: false,
67
+ defaultValue: Sequelize.literal('CURRENT_TIMESTAMP(3)'),
68
+ type: Sequelize.DATE,
69
+ },
70
+ UpdatedById: {
71
+ type: Sequelize.INTEGER,
72
+ allowNull: true,
73
+ references: {
74
+ model: 'sso_User',
75
+ key: 'UserId',
76
+ },
77
+ onDelete: 'CASCADE',
78
+ onUpdate: 'CASCADE',
79
+ },
80
+ UpdatedAt: {
81
+ allowNull: false,
82
+ defaultValue: Sequelize.literal('CURRENT_TIMESTAMP(3)'),
83
+ type: Sequelize.DATE,
84
+ },
85
+ });
86
+ },
87
+
88
+ down: async (queryInterface) => {
89
+ // Drop the trigger before dropping the table
90
+ await queryInterface.sequelize.query(
91
+ `DROP TRIGGER IF EXISTS update_GroupCode_ObjectId`,
92
+ );
93
+ await queryInterface.dropTable('sso_Building');
94
+ },
95
+ };
package/package.json CHANGED
@@ -1,90 +1,90 @@
1
- {
2
- "name": "@tomei/sso",
3
- "version": "0.52.2",
4
- "description": "Tomei SSO Package",
5
- "main": "dist/index.js",
6
- "scripts": {
7
- "start:dev": "tsc -w",
8
- "build": "tsc",
9
- "prepare": "husky install",
10
- "format": "prettier --write \"src/**/*.ts\"",
11
- "lint": "npx eslint . --fix",
12
- "test": "jest --forceExit --detectOpenHandles --coverage"
13
- },
14
- "repository": {
15
- "type": "git",
16
- "url": "git+ssh://git@gitlab.com/tomei-package/sso.git"
17
- },
18
- "keywords": [
19
- "tomei",
20
- "sso"
21
- ],
22
- "author": "Tomei",
23
- "license": "ISC",
24
- "bugs": {
25
- "url": "https://gitlab.com/tomei-package/sso/issues"
26
- },
27
- "homepage": "https://gitlab.com/tomei-package/sso#readme",
28
- "devDependencies": {
29
- "@commitlint/cli": "^19.6.0",
30
- "@commitlint/config-conventional": "^19.6.0",
31
- "@eslint/js": "^9.15.0",
32
- "@tsconfig/node18": "^18.2.4",
33
- "@types/bcrypt": "^5.0.2",
34
- "@types/jest": "^29.5.14",
35
- "@types/node": "^22.9.3",
36
- "@types/redis": "^4.0.11",
37
- "@types/validator": "^13.12.2",
38
- "@typescript-eslint/eslint-plugin": "^8.15.0",
39
- "@typescript-eslint/parser": "^8.15.0",
40
- "cls-hooked": "^4.2.2",
41
- "dotenv": "^16.4.5",
42
- "eslint": "^9.15.0",
43
- "eslint-config-prettier": "^9.1.0",
44
- "eslint-plugin-import": "^2.31.0",
45
- "eslint-plugin-prettier": "^5.2.1",
46
- "globals": "^15.12.0",
47
- "husky": "^9.1.7",
48
- "jest": "^29.7.0",
49
- "jest-mock-extended": "^3.0.7",
50
- "jest-sonar-reporter": "^2.0.0",
51
- "lint-staged": "^15.2.10",
52
- "prettier": "^3.3.3",
53
- "redis-mock": "^0.56.3",
54
- "ts-jest": "^29.2.5",
55
- "ts-node": "^10.9.2",
56
- "tsc-watch": "^6.2.1",
57
- "tsconfig-paths": "^4.2.0",
58
- "tslint": "^6.1.3",
59
- "typescript": "^5.7.2",
60
- "typescript-eslint": "^8.15.0"
61
- },
62
- "publishConfig": {
63
- "access": "public"
64
- },
65
- "peerDependencies": {
66
- "@tomei/activity-history": "^0.2.23",
67
- "@tomei/config": "^0.3.21",
68
- "@tomei/general": "^0.21.3",
69
- "@tomei/mailer": "^0.5.21",
70
- "argon2": "^0.41.1",
71
- "redis": "^4.7.0",
72
- "reflect-metadata": "^0.2.2",
73
- "sequelize": "^6.37.5",
74
- "sequelize-cli": "^6.6.2",
75
- "sequelize-typescript": "^2.1.6",
76
- "speakeasy": "^2.0.0",
77
- "uuid": "^11.0.3"
78
- },
79
- "lint-staged": {
80
- "*/**/*.{js,ts,tsx}": [
81
- "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
82
- "eslint \"{src,apps,libs,test}/**/*.ts\" --fix"
83
- ]
84
- },
85
- "jestSonar": {
86
- "reportPath": "coverage",
87
- "reportFile": "test-report.xml",
88
- "indent": 2
89
- }
90
- }
1
+ {
2
+ "name": "@tomei/sso",
3
+ "version": "0.52.3",
4
+ "description": "Tomei SSO Package",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "start:dev": "tsc -w",
8
+ "build": "tsc",
9
+ "prepare": "husky install",
10
+ "format": "prettier --write \"src/**/*.ts\"",
11
+ "lint": "npx eslint . --fix",
12
+ "test": "jest --forceExit --detectOpenHandles --coverage"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+ssh://git@gitlab.com/tomei-package/sso.git"
17
+ },
18
+ "keywords": [
19
+ "tomei",
20
+ "sso"
21
+ ],
22
+ "author": "Tomei",
23
+ "license": "ISC",
24
+ "bugs": {
25
+ "url": "https://gitlab.com/tomei-package/sso/issues"
26
+ },
27
+ "homepage": "https://gitlab.com/tomei-package/sso#readme",
28
+ "devDependencies": {
29
+ "@commitlint/cli": "^19.6.0",
30
+ "@commitlint/config-conventional": "^19.6.0",
31
+ "@eslint/js": "^9.15.0",
32
+ "@tsconfig/node18": "^18.2.4",
33
+ "@types/bcrypt": "^5.0.2",
34
+ "@types/jest": "^29.5.14",
35
+ "@types/node": "^22.9.3",
36
+ "@types/redis": "^4.0.11",
37
+ "@types/validator": "^13.12.2",
38
+ "@typescript-eslint/eslint-plugin": "^8.15.0",
39
+ "@typescript-eslint/parser": "^8.15.0",
40
+ "cls-hooked": "^4.2.2",
41
+ "dotenv": "^16.4.5",
42
+ "eslint": "^9.15.0",
43
+ "eslint-config-prettier": "^9.1.0",
44
+ "eslint-plugin-import": "^2.31.0",
45
+ "eslint-plugin-prettier": "^5.2.1",
46
+ "globals": "^15.12.0",
47
+ "husky": "^9.1.7",
48
+ "jest": "^29.7.0",
49
+ "jest-mock-extended": "^3.0.7",
50
+ "jest-sonar-reporter": "^2.0.0",
51
+ "lint-staged": "^15.2.10",
52
+ "prettier": "^3.3.3",
53
+ "redis-mock": "^0.56.3",
54
+ "ts-jest": "^29.2.5",
55
+ "ts-node": "^10.9.2",
56
+ "tsc-watch": "^6.2.1",
57
+ "tsconfig-paths": "^4.2.0",
58
+ "tslint": "^6.1.3",
59
+ "typescript": "^5.7.2",
60
+ "typescript-eslint": "^8.15.0"
61
+ },
62
+ "publishConfig": {
63
+ "access": "public"
64
+ },
65
+ "peerDependencies": {
66
+ "@tomei/activity-history": "^0.2.23",
67
+ "@tomei/config": "^0.3.21",
68
+ "@tomei/general": "^0.21.3",
69
+ "@tomei/mailer": "^0.5.21",
70
+ "argon2": "^0.41.1",
71
+ "redis": "^4.7.0",
72
+ "reflect-metadata": "^0.2.2",
73
+ "sequelize": "^6.37.5",
74
+ "sequelize-cli": "^6.6.2",
75
+ "sequelize-typescript": "^2.1.6",
76
+ "speakeasy": "^2.0.0",
77
+ "uuid": "^11.0.3"
78
+ },
79
+ "lint-staged": {
80
+ "*/**/*.{js,ts,tsx}": [
81
+ "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
82
+ "eslint \"{src,apps,libs,test}/**/*.ts\" --fix"
83
+ ]
84
+ },
85
+ "jestSonar": {
86
+ "reportPath": "coverage",
87
+ "reportFile": "test-report.xml",
88
+ "indent": 2
89
+ }
90
+ }
package/sampledotenv CHANGED
@@ -1,8 +1,8 @@
1
- DATABASE_URL=
2
- SHADOW_DATABASE_URL=
3
- REDIS_URL=
4
- REDIS_PASSWORD=
5
- SMTP_HOST=
6
- SMTP_PORT=
7
- EMAIL_SENDER=
1
+ DATABASE_URL=
2
+ SHADOW_DATABASE_URL=
3
+ REDIS_URL=
4
+ REDIS_PASSWORD=
5
+ SMTP_HOST=
6
+ SMTP_PORT=
7
+ EMAIL_SENDER=
8
8
  EMAIL_PASSWORD=
@@ -1,23 +1,23 @@
1
- sonar.projectKey=all-tomei-projects_sso
2
- sonar.organization=all-tomei-projects
3
- sonar.exclusions=**/*.js,test-data,dist,coverage, node_modules, __tests__, **/*.spec.ts, __mocks__
4
- sonar.scm.provider=git
5
-
6
- sonar.sources=src
7
- sonar.test=__tests__
8
- sonar.test.inclusions=src/**/*.spec.ts
9
-
10
- sonar.javascript.lcov.reportPaths=./coverage/lcov.info
11
- sonar.testExecutionReportPaths=coverage/test-report.xml
12
- sonar.sourceEnconding=UTF-8
13
-
14
- # This is the name and version displayed in the SonarCloud UI.
15
- #sonar.projectName=sso
16
- #sonar.projectVersion=1.0
17
-
18
-
19
- # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
20
- #sonar.sources=.
21
-
22
- # Encoding of the source code. Default is default system encoding
1
+ sonar.projectKey=all-tomei-projects_sso
2
+ sonar.organization=all-tomei-projects
3
+ sonar.exclusions=**/*.js,test-data,dist,coverage, node_modules, __tests__, **/*.spec.ts, __mocks__
4
+ sonar.scm.provider=git
5
+
6
+ sonar.sources=src
7
+ sonar.test=__tests__
8
+ sonar.test.inclusions=src/**/*.spec.ts
9
+
10
+ sonar.javascript.lcov.reportPaths=./coverage/lcov.info
11
+ sonar.testExecutionReportPaths=coverage/test-report.xml
12
+ sonar.sourceEnconding=UTF-8
13
+
14
+ # This is the name and version displayed in the SonarCloud UI.
15
+ #sonar.projectName=sso
16
+ #sonar.projectVersion=1.0
17
+
18
+
19
+ # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
20
+ #sonar.sources=.
21
+
22
+ # Encoding of the source code. Default is default system encoding
23
23
  #sonar.sourceEncoding=UTF-8
@@ -33,6 +33,7 @@ import { RedisService } from '../../redis-client/redis.service';
33
33
  import { LoginUser } from './login-user';
34
34
  import { SessionService } from '../../session/session.service';
35
35
  import { createHash, randomBytes, randomUUID } from 'crypto';
36
+ import { AuthContext } from 'types';
36
37
 
37
38
  export class User extends UserBase {
38
39
  ObjectId: string;
@@ -2450,23 +2451,25 @@ export class User extends UserBase {
2450
2451
  }
2451
2452
 
2452
2453
  public static async findById(
2453
- loginUser: LoginUser,
2454
+ AuthContext: AuthContext,
2454
2455
  dbTransaction: any,
2455
2456
  UserId: string,
2456
2457
  ) {
2457
2458
  const systemCode = ApplicationConfig.getComponentConfigValue('system-code');
2458
- const isPrivileged = await loginUser.checkPrivileges(
2459
- systemCode,
2460
- 'USER_VIEW',
2461
- );
2462
-
2463
- //If user does not have privilege to update user, throw a ClassError
2464
- if (!isPrivileged) {
2465
- throw new ClassError(
2466
- 'LoginUser',
2467
- 'LoginUserErrMsg0X',
2468
- 'You do not have the privilege to find user',
2459
+ if ('loginUser' in AuthContext) {
2460
+ const isPrivileged = await AuthContext.loginUser.checkPrivileges(
2461
+ systemCode,
2462
+ 'USER_VIEW',
2469
2463
  );
2464
+
2465
+ //If user does not have privilege to update user, throw a ClassError
2466
+ if (!isPrivileged) {
2467
+ throw new ClassError(
2468
+ 'LoginUser',
2469
+ 'LoginUserErrMsg0X',
2470
+ 'You do not have the privilege to find user',
2471
+ );
2472
+ }
2470
2473
  }
2471
2474
 
2472
2475
  const user = await User._Repository.findOne({
@@ -2543,7 +2546,7 @@ export class User extends UserBase {
2543
2546
  }
2544
2547
 
2545
2548
  public static async findByEmail(
2546
- loginUser: LoginUser,
2549
+ AuthContext: AuthContext,
2547
2550
  dbTransaction: any,
2548
2551
  Email: string,
2549
2552
  ): Promise<User> {
@@ -2555,18 +2558,20 @@ export class User extends UserBase {
2555
2558
  // PrivilegeCode: "USER_VIEW"
2556
2559
  const systemCode =
2557
2560
  ApplicationConfig.getComponentConfigValue('system-code');
2558
- const isPrivileged = await loginUser.checkPrivileges(
2559
- systemCode,
2560
- 'USER_VIEW',
2561
- );
2562
-
2563
- // If user does not have privilege to update user, throw a ClassError
2564
- if (!isPrivileged) {
2565
- throw new ClassError(
2566
- 'LoginUser',
2567
- 'LoginUserErrMsg0X',
2568
- 'You do not have the privilege to find user',
2561
+ if ('loginUser' in AuthContext) {
2562
+ const isPrivileged = await AuthContext.loginUser.checkPrivileges(
2563
+ systemCode,
2564
+ 'USER_VIEW',
2569
2565
  );
2566
+
2567
+ // If user does not have privilege to update user, throw a ClassError
2568
+ if (!isPrivileged) {
2569
+ throw new ClassError(
2570
+ 'LoginUser',
2571
+ 'LoginUserErrMsg0X',
2572
+ 'You do not have the privilege to find user',
2573
+ );
2574
+ }
2570
2575
  }
2571
2576
 
2572
2577
  // Part 2: Retrieve User & Returns
@@ -1,3 +1,4 @@
1
+ import { IAPIKeyAttr } from '../interfaces/api-key-attr.interface';
1
2
  import { LoginUser } from '../components/login-user/login-user';
2
3
 
3
4
  export type AuthContext =
@@ -5,5 +6,5 @@ export type AuthContext =
5
6
  loginUser: LoginUser;
6
7
  }
7
8
  | {
8
- apiKey: string;
9
+ apiKey: IAPIKeyAttr;
9
10
  };
@@ -1,6 +1,6 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "include": ["**/*.ts"],
4
- "exclude": ["node_modules", "__tests__", "dist", "**/*spec.ts"]
5
- }
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "include": ["**/*.ts"],
4
+ "exclude": ["node_modules", "__tests__", "dist", "**/*spec.ts"]
5
+ }
6
6
 
package/tsconfig.json CHANGED
@@ -1,24 +1,24 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "declaration": true,
5
- "removeComments": true,
6
- "emitDecoratorMetadata": true,
7
- "experimentalDecorators": true,
8
- "allowSyntheticDefaultImports": true,
9
- "moduleResolution": "node",
10
- "target": "es6",
11
- "sourceMap": true,
12
- "outDir": "./dist",
13
- "baseUrl": "./src",
14
- "rootDir": "./",
15
- "incremental": true,
16
- "skipLibCheck": true,
17
- "noImplicitAny": false,
18
- "strictBindCallApply": false,
19
- "forceConsistentCasingInFileNames": false,
20
- "noFallthroughCasesInSwitch": false,
21
- "strictNullChecks": false,
22
- },
23
- "exclude": ["node_modules", "dist"]
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "declaration": true,
5
+ "removeComments": true,
6
+ "emitDecoratorMetadata": true,
7
+ "experimentalDecorators": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "moduleResolution": "node",
10
+ "target": "es6",
11
+ "sourceMap": true,
12
+ "outDir": "./dist",
13
+ "baseUrl": "./src",
14
+ "rootDir": "./",
15
+ "incremental": true,
16
+ "skipLibCheck": true,
17
+ "noImplicitAny": false,
18
+ "strictBindCallApply": false,
19
+ "forceConsistentCasingInFileNames": false,
20
+ "noFallthroughCasesInSwitch": false,
21
+ "strictNullChecks": false,
22
+ },
23
+ "exclude": ["node_modules", "dist"]
24
24
  }