@solidxai/core 0.1.11-beta.9 → 0.1.12-beta.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/CHANGELOG.md +456 -0
- package/dist/controllers/authentication.controller.d.ts +1 -1
- package/dist/controllers/chatter-message.controller.d.ts +0 -2
- package/dist/controllers/chatter-message.controller.d.ts.map +1 -1
- package/dist/controllers/chatter-message.controller.js +0 -16
- package/dist/controllers/chatter-message.controller.js.map +1 -1
- package/dist/controllers/datasource-introspection.controller.d.ts +8 -0
- package/dist/controllers/datasource-introspection.controller.d.ts.map +1 -1
- package/dist/controllers/media.controller.js +0 -2
- package/dist/controllers/media.controller.js.map +1 -1
- package/dist/guards/access-token.guard.d.ts +5 -1
- package/dist/guards/access-token.guard.d.ts.map +1 -1
- package/dist/guards/access-token.guard.js +31 -3
- package/dist/guards/access-token.guard.js.map +1 -1
- package/dist/guards/authentication.guard.d.ts +1 -0
- package/dist/guards/authentication.guard.d.ts.map +1 -1
- package/dist/guards/authentication.guard.js +16 -1
- package/dist/guards/authentication.guard.js.map +1 -1
- package/dist/helpers/bootstrap.helper.d.ts.map +1 -1
- package/dist/helpers/bootstrap.helper.js +3 -1
- package/dist/helpers/bootstrap.helper.js.map +1 -1
- package/dist/helpers/environment.helper.d.ts +0 -1
- package/dist/helpers/environment.helper.d.ts.map +1 -1
- package/dist/helpers/environment.helper.js +0 -4
- package/dist/helpers/environment.helper.js.map +1 -1
- package/dist/helpers/model-metadata-helper.service.d.ts +1 -2
- package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
- package/dist/helpers/model-metadata-helper.service.js +2 -6
- package/dist/helpers/model-metadata-helper.service.js.map +1 -1
- package/dist/helpers/module-metadata-helper.service.js +1 -1
- package/dist/helpers/module-metadata-helper.service.js.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.d.ts.map +1 -1
- package/dist/helpers/solid-core-error-codes-provider.service.js +19 -0
- package/dist/helpers/solid-core-error-codes-provider.service.js.map +1 -1
- package/dist/helpers/solid-registry.d.ts +1 -2
- package/dist/helpers/solid-registry.d.ts.map +1 -1
- package/dist/helpers/solid-registry.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/active-user-data.interface.d.ts +1 -0
- package/dist/interfaces/active-user-data.interface.d.ts.map +1 -1
- package/dist/interfaces/active-user-data.interface.js.map +1 -1
- package/dist/interfaces.d.ts +1 -0
- package/dist/interfaces.d.ts.map +1 -1
- package/dist/interfaces.js.map +1 -1
- package/dist/repository/scheduled-job.repository.d.ts +2 -2
- package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
- package/dist/repository/scheduled-job.repository.js +3 -6
- package/dist/repository/scheduled-job.repository.js.map +1 -1
- package/dist/repository/security-rule.repository.d.ts +2 -2
- package/dist/repository/security-rule.repository.d.ts.map +1 -1
- package/dist/repository/security-rule.repository.js +3 -6
- package/dist/repository/security-rule.repository.js.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
- package/dist/seeders/module-metadata-seeder.service.js +18 -1
- package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
- package/dist/seeders/seed-data/solid-core-metadata.json +62 -34
- package/dist/services/active-session-storage.service.d.ts +10 -0
- package/dist/services/active-session-storage.service.d.ts.map +1 -0
- package/dist/services/active-session-storage.service.js +41 -0
- package/dist/services/active-session-storage.service.js.map +1 -0
- package/dist/services/authentication.service.d.ts +8 -3
- package/dist/services/authentication.service.d.ts.map +1 -1
- package/dist/services/authentication.service.js +61 -16
- package/dist/services/authentication.service.js.map +1 -1
- package/dist/services/chatter-message.service.d.ts +2 -0
- package/dist/services/chatter-message.service.d.ts.map +1 -1
- package/dist/services/chatter-message.service.js +25 -2
- package/dist/services/chatter-message.service.js.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.d.ts.map +1 -1
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js +5 -7
- package/dist/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.js.map +1 -1
- package/dist/services/crud-helper.service.d.ts.map +1 -1
- package/dist/services/crud-helper.service.js +7 -0
- package/dist/services/crud-helper.service.js.map +1 -1
- package/dist/services/crud.service.d.ts.map +1 -1
- package/dist/services/crud.service.js +1 -0
- package/dist/services/crud.service.js.map +1 -1
- package/dist/services/datasource-introspection.service.d.ts +10 -0
- package/dist/services/datasource-introspection.service.d.ts.map +1 -1
- package/dist/services/datasource-introspection.service.js +109 -17
- package/dist/services/datasource-introspection.service.js.map +1 -1
- package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
- package/dist/services/menu-item-metadata.service.js +1 -0
- package/dist/services/menu-item-metadata.service.js.map +1 -1
- package/dist/services/model-metadata.service.d.ts +2 -0
- package/dist/services/model-metadata.service.d.ts.map +1 -1
- package/dist/services/model-metadata.service.js +49 -16
- package/dist/services/model-metadata.service.js.map +1 -1
- package/dist/services/module-metadata.service.d.ts.map +1 -1
- package/dist/services/module-metadata.service.js +0 -28
- package/dist/services/module-metadata.service.js.map +1 -1
- package/dist/services/refresh-token-ids-storage.service.d.ts +6 -1
- package/dist/services/refresh-token-ids-storage.service.d.ts.map +1 -1
- package/dist/services/refresh-token-ids-storage.service.js +0 -2
- package/dist/services/refresh-token-ids-storage.service.js.map +1 -1
- package/dist/services/settings/default-settings-provider.service.d.ts +230 -0
- package/dist/services/settings/default-settings-provider.service.d.ts.map +1 -1
- package/dist/services/settings/default-settings-provider.service.js +116 -0
- package/dist/services/settings/default-settings-provider.service.js.map +1 -1
- package/dist/services/solid-ts-morph.service.d.ts +6 -0
- package/dist/services/solid-ts-morph.service.d.ts.map +1 -1
- package/dist/services/solid-ts-morph.service.js +43 -0
- package/dist/services/solid-ts-morph.service.js.map +1 -1
- package/dist/solid-core.module.d.ts.map +1 -1
- package/dist/solid-core.module.js +2 -0
- package/dist/solid-core.module.js.map +1 -1
- package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
- package/dist/subscribers/audit.subscriber.js +2 -8
- package/dist/subscribers/audit.subscriber.js.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.d.ts +0 -8
- package/dist/subscribers/computed-entity-field.subscriber.d.ts.map +1 -1
- package/dist/subscribers/computed-entity-field.subscriber.js +3 -36
- package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
- package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.d.ts.map +1 -1
- package/dist/subscribers/field-metadata.subscriber.js.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.d.ts.map +1 -1
- package/dist/subscribers/scheduled-job.subscriber.js +2 -3
- package/dist/subscribers/scheduled-job.subscriber.js.map +1 -1
- package/dist/subscribers/security-rule.subscriber.d.ts.map +1 -1
- package/dist/subscribers/security-rule.subscriber.js +3 -5
- package/dist/subscribers/security-rule.subscriber.js.map +1 -1
- package/package.json +1 -1
- package/src/controllers/chatter-message.controller.ts +7 -7
- package/src/controllers/media.controller.ts +1 -1
- package/src/guards/access-token.guard.ts +43 -3
- package/src/guards/authentication.guard.ts +22 -1
- package/src/helpers/bootstrap.helper.ts +9 -3
- package/src/helpers/environment.helper.ts +0 -11
- package/src/helpers/model-metadata-helper.service.ts +2 -7
- package/src/helpers/module-metadata-helper.service.ts +1 -1
- package/src/helpers/solid-core-error-codes-provider.service.ts +20 -1
- package/src/helpers/solid-registry.ts +1 -7
- package/src/index.ts +1 -1
- package/src/interfaces/active-user-data.interface.ts +6 -0
- package/src/interfaces.ts +1 -0
- package/src/repository/scheduled-job.repository.ts +4 -10
- package/src/repository/security-rule.repository.ts +4 -10
- package/src/seeders/module-metadata-seeder.service.ts +23 -2
- package/src/seeders/seed-data/solid-core-metadata.json +62 -34
- package/src/services/active-session-storage.service.ts +24 -0
- package/src/services/authentication.service.ts +76 -15
- package/src/services/chatter-message.service.ts +32 -2
- package/src/services/computed-fields/entity/alpha-num-external-id-computed-field-provider.ts +5 -11
- package/src/services/crud-helper.service.ts +7 -0
- package/src/services/crud.service.ts +1 -0
- package/src/services/datasource-introspection.service.ts +176 -16
- package/src/services/menu-item-metadata.service.ts +2 -1
- package/src/services/model-metadata.service.ts +63 -22
- package/src/services/module-metadata.service.ts +0 -36
- package/src/services/refresh-token-ids-storage.service.ts +9 -8
- package/src/services/settings/default-settings-provider.service.ts +116 -1
- package/src/services/solid-ts-morph.service.ts +61 -1
- package/src/solid-core.module.ts +2 -0
- package/src/subscribers/audit.subscriber.ts +2 -11
- package/src/subscribers/computed-entity-field.subscriber.ts +6 -63
- package/src/subscribers/created-by-updated-by.subscriber.ts +0 -3
- package/src/subscribers/field-metadata.subscriber.ts +0 -3
- package/src/subscribers/scheduled-job.subscriber.ts +2 -3
- package/src/subscribers/security-rule.subscriber.ts +3 -8
- package/dist/helpers/nodemon-heartbeat.d.ts +0 -5
- package/dist/helpers/nodemon-heartbeat.d.ts.map +0 -1
- package/dist/helpers/nodemon-heartbeat.js +0 -67
- package/dist/helpers/nodemon-heartbeat.js.map +0 -1
- package/src/helpers/nodemon-heartbeat.ts +0 -59
|
@@ -5304,7 +5304,6 @@
|
|
|
5304
5304
|
"SavedFiltersController.update",
|
|
5305
5305
|
"SavedFiltersController.insertMany",
|
|
5306
5306
|
"SavedFiltersController.create",
|
|
5307
|
-
"ChatterMessageController.create",
|
|
5308
5307
|
"ChatterMessageController.getChatterMessages",
|
|
5309
5308
|
"ChatterMessageController.postMessage",
|
|
5310
5309
|
"ChatterMessageController.findMany",
|
|
@@ -6116,7 +6115,8 @@
|
|
|
6116
6115
|
"sequenceNumber": 1,
|
|
6117
6116
|
"actionUserKey": "moduleMetadata-list-action",
|
|
6118
6117
|
"moduleUserKey": "solid-core",
|
|
6119
|
-
"parentMenuItemUserKey": "appBuilder-menu-item"
|
|
6118
|
+
"parentMenuItemUserKey": "appBuilder-menu-item",
|
|
6119
|
+
"iconName": "view_module"
|
|
6120
6120
|
},
|
|
6121
6121
|
{
|
|
6122
6122
|
"displayName": "Model",
|
|
@@ -6124,7 +6124,8 @@
|
|
|
6124
6124
|
"sequenceNumber": 2,
|
|
6125
6125
|
"actionUserKey": "modelMetadata-list-action",
|
|
6126
6126
|
"moduleUserKey": "solid-core",
|
|
6127
|
-
"parentMenuItemUserKey": "appBuilder-menu-item"
|
|
6127
|
+
"parentMenuItemUserKey": "appBuilder-menu-item",
|
|
6128
|
+
"iconName": "table_rows"
|
|
6128
6129
|
},
|
|
6129
6130
|
{
|
|
6130
6131
|
"displayName": "Field",
|
|
@@ -6132,7 +6133,8 @@
|
|
|
6132
6133
|
"sequenceNumber": 3,
|
|
6133
6134
|
"actionUserKey": "fieldMetadata-list-action",
|
|
6134
6135
|
"moduleUserKey": "solid-core",
|
|
6135
|
-
"parentMenuItemUserKey": "appBuilder-menu-item"
|
|
6136
|
+
"parentMenuItemUserKey": "appBuilder-menu-item",
|
|
6137
|
+
"iconName": "label"
|
|
6136
6138
|
},
|
|
6137
6139
|
{
|
|
6138
6140
|
"displayName": "Datasources",
|
|
@@ -6140,7 +6142,8 @@
|
|
|
6140
6142
|
"sequenceNumber": 4,
|
|
6141
6143
|
"actionUserKey": "datasource-management-action",
|
|
6142
6144
|
"moduleUserKey": "solid-core",
|
|
6143
|
-
"parentMenuItemUserKey": "appBuilder-menu-item"
|
|
6145
|
+
"parentMenuItemUserKey": "appBuilder-menu-item",
|
|
6146
|
+
"iconName": "storage"
|
|
6144
6147
|
},
|
|
6145
6148
|
{
|
|
6146
6149
|
"displayName": "Menu Item",
|
|
@@ -6148,7 +6151,8 @@
|
|
|
6148
6151
|
"sequenceNumber": 1,
|
|
6149
6152
|
"actionUserKey": "menuItemMetadata-list-action",
|
|
6150
6153
|
"moduleUserKey": "solid-core",
|
|
6151
|
-
"parentMenuItemUserKey": "layoutBuilder-menu-item"
|
|
6154
|
+
"parentMenuItemUserKey": "layoutBuilder-menu-item",
|
|
6155
|
+
"iconName": "menu"
|
|
6152
6156
|
},
|
|
6153
6157
|
{
|
|
6154
6158
|
"displayName": "View",
|
|
@@ -6156,7 +6160,8 @@
|
|
|
6156
6160
|
"sequenceNumber": 2,
|
|
6157
6161
|
"actionUserKey": "viewMetadata-list-action",
|
|
6158
6162
|
"moduleUserKey": "solid-core",
|
|
6159
|
-
"parentMenuItemUserKey": "layoutBuilder-menu-item"
|
|
6163
|
+
"parentMenuItemUserKey": "layoutBuilder-menu-item",
|
|
6164
|
+
"iconName": "pageview"
|
|
6160
6165
|
},
|
|
6161
6166
|
{
|
|
6162
6167
|
"displayName": "Action",
|
|
@@ -6164,7 +6169,8 @@
|
|
|
6164
6169
|
"sequenceNumber": 3,
|
|
6165
6170
|
"actionUserKey": "actionMetadata-list-action",
|
|
6166
6171
|
"moduleUserKey": "solid-core",
|
|
6167
|
-
"parentMenuItemUserKey": "layoutBuilder-menu-item"
|
|
6172
|
+
"parentMenuItemUserKey": "layoutBuilder-menu-item",
|
|
6173
|
+
"iconName": "bolt"
|
|
6168
6174
|
},
|
|
6169
6175
|
{
|
|
6170
6176
|
"displayName": "User View",
|
|
@@ -6172,7 +6178,8 @@
|
|
|
6172
6178
|
"sequenceNumber": 5,
|
|
6173
6179
|
"actionUserKey": "userViewMetadata-list-action",
|
|
6174
6180
|
"moduleUserKey": "solid-core",
|
|
6175
|
-
"parentMenuItemUserKey": "layoutBuilder-menu-item"
|
|
6181
|
+
"parentMenuItemUserKey": "layoutBuilder-menu-item",
|
|
6182
|
+
"iconName": "person"
|
|
6176
6183
|
},
|
|
6177
6184
|
{
|
|
6178
6185
|
"displayName": "Media Management",
|
|
@@ -6189,7 +6196,8 @@
|
|
|
6189
6196
|
"sequenceNumber": 1,
|
|
6190
6197
|
"actionUserKey": "media-list-action",
|
|
6191
6198
|
"moduleUserKey": "solid-core",
|
|
6192
|
-
"parentMenuItemUserKey": "mediaManagement-menu-item"
|
|
6199
|
+
"parentMenuItemUserKey": "mediaManagement-menu-item",
|
|
6200
|
+
"iconName": "perm_media"
|
|
6193
6201
|
},
|
|
6194
6202
|
{
|
|
6195
6203
|
"displayName": "Media Storage Provider",
|
|
@@ -6197,7 +6205,8 @@
|
|
|
6197
6205
|
"sequenceNumber": 2,
|
|
6198
6206
|
"actionUserKey": "mediaStorageProviderMetadata-list-action",
|
|
6199
6207
|
"moduleUserKey": "solid-core",
|
|
6200
|
-
"parentMenuItemUserKey": "mediaManagement-menu-item"
|
|
6208
|
+
"parentMenuItemUserKey": "mediaManagement-menu-item",
|
|
6209
|
+
"iconName": "cloud"
|
|
6201
6210
|
},
|
|
6202
6211
|
{
|
|
6203
6212
|
"displayName": "IAM",
|
|
@@ -6206,7 +6215,7 @@
|
|
|
6206
6215
|
"actionUserKey": "",
|
|
6207
6216
|
"moduleUserKey": "solid-core",
|
|
6208
6217
|
"parentMenuItemUserKey": "",
|
|
6209
|
-
"iconName": "
|
|
6218
|
+
"iconName": "manage_accounts"
|
|
6210
6219
|
},
|
|
6211
6220
|
{
|
|
6212
6221
|
"displayName": "User",
|
|
@@ -6214,7 +6223,8 @@
|
|
|
6214
6223
|
"sequenceNumber": 1,
|
|
6215
6224
|
"actionUserKey": "user-list-action",
|
|
6216
6225
|
"moduleUserKey": "solid-core",
|
|
6217
|
-
"parentMenuItemUserKey": "iam-menu-item"
|
|
6226
|
+
"parentMenuItemUserKey": "iam-menu-item",
|
|
6227
|
+
"iconName": "person"
|
|
6218
6228
|
},
|
|
6219
6229
|
{
|
|
6220
6230
|
"displayName": "Role",
|
|
@@ -6222,7 +6232,8 @@
|
|
|
6222
6232
|
"sequenceNumber": 2,
|
|
6223
6233
|
"actionUserKey": "roleMetadata-list-action",
|
|
6224
6234
|
"moduleUserKey": "solid-core",
|
|
6225
|
-
"parentMenuItemUserKey": "iam-menu-item"
|
|
6235
|
+
"parentMenuItemUserKey": "iam-menu-item",
|
|
6236
|
+
"iconName": "admin_panel_settings"
|
|
6226
6237
|
},
|
|
6227
6238
|
{
|
|
6228
6239
|
"displayName": "Permission",
|
|
@@ -6230,7 +6241,8 @@
|
|
|
6230
6241
|
"sequenceNumber": 3,
|
|
6231
6242
|
"actionUserKey": "permissionMetadata-list-action",
|
|
6232
6243
|
"moduleUserKey": "solid-core",
|
|
6233
|
-
"parentMenuItemUserKey": "iam-menu-item"
|
|
6244
|
+
"parentMenuItemUserKey": "iam-menu-item",
|
|
6245
|
+
"iconName": "key"
|
|
6234
6246
|
},
|
|
6235
6247
|
{
|
|
6236
6248
|
"displayName": "Security rules",
|
|
@@ -6238,7 +6250,8 @@
|
|
|
6238
6250
|
"sequenceNumber": 4,
|
|
6239
6251
|
"actionUserKey": "securityRule-list-action",
|
|
6240
6252
|
"moduleUserKey": "solid-core",
|
|
6241
|
-
"parentMenuItemUserKey": "iam-menu-item"
|
|
6253
|
+
"parentMenuItemUserKey": "iam-menu-item",
|
|
6254
|
+
"iconName": "gavel"
|
|
6242
6255
|
},
|
|
6243
6256
|
{
|
|
6244
6257
|
"displayName": "User Activity History",
|
|
@@ -6246,7 +6259,8 @@
|
|
|
6246
6259
|
"sequenceNumber": 5,
|
|
6247
6260
|
"actionUserKey": "userActivityHistory-list-action",
|
|
6248
6261
|
"moduleUserKey": "solid-core",
|
|
6249
|
-
"parentMenuItemUserKey": "iam-menu-item"
|
|
6262
|
+
"parentMenuItemUserKey": "iam-menu-item",
|
|
6263
|
+
"iconName": "history"
|
|
6250
6264
|
},
|
|
6251
6265
|
{
|
|
6252
6266
|
"displayName": "Queues",
|
|
@@ -6263,7 +6277,8 @@
|
|
|
6263
6277
|
"sequenceNumber": 1,
|
|
6264
6278
|
"actionUserKey": "solid-core-queue-health-dashboard-action",
|
|
6265
6279
|
"moduleUserKey": "solid-core",
|
|
6266
|
-
"parentMenuItemUserKey": "queues-menu-item"
|
|
6280
|
+
"parentMenuItemUserKey": "queues-menu-item",
|
|
6281
|
+
"iconName": "analytics"
|
|
6267
6282
|
},
|
|
6268
6283
|
{
|
|
6269
6284
|
"displayName": "Queues",
|
|
@@ -6271,7 +6286,8 @@
|
|
|
6271
6286
|
"sequenceNumber": 2,
|
|
6272
6287
|
"actionUserKey": "mqMessageQueue-list-action",
|
|
6273
6288
|
"moduleUserKey": "solid-core",
|
|
6274
|
-
"parentMenuItemUserKey": "queues-menu-item"
|
|
6289
|
+
"parentMenuItemUserKey": "queues-menu-item",
|
|
6290
|
+
"iconName": "dns"
|
|
6275
6291
|
},
|
|
6276
6292
|
{
|
|
6277
6293
|
"displayName": "Messages",
|
|
@@ -6279,7 +6295,8 @@
|
|
|
6279
6295
|
"sequenceNumber": 3,
|
|
6280
6296
|
"actionUserKey": "mqMessage-list-action",
|
|
6281
6297
|
"moduleUserKey": "solid-core",
|
|
6282
|
-
"parentMenuItemUserKey": "queues-menu-item"
|
|
6298
|
+
"parentMenuItemUserKey": "queues-menu-item",
|
|
6299
|
+
"iconName": "message"
|
|
6283
6300
|
},
|
|
6284
6301
|
{
|
|
6285
6302
|
"displayName": "Notification",
|
|
@@ -6288,7 +6305,7 @@
|
|
|
6288
6305
|
"actionUserKey": "",
|
|
6289
6306
|
"moduleUserKey": "solid-core",
|
|
6290
6307
|
"parentMenuItemUserKey": "",
|
|
6291
|
-
"iconName": "
|
|
6308
|
+
"iconName": "notification_add"
|
|
6292
6309
|
},
|
|
6293
6310
|
{
|
|
6294
6311
|
"displayName": "Email",
|
|
@@ -6296,7 +6313,8 @@
|
|
|
6296
6313
|
"sequenceNumber": 1,
|
|
6297
6314
|
"actionUserKey": "emailTemplate-list-action",
|
|
6298
6315
|
"moduleUserKey": "solid-core",
|
|
6299
|
-
"parentMenuItemUserKey": "notification-menu-item"
|
|
6316
|
+
"parentMenuItemUserKey": "notification-menu-item",
|
|
6317
|
+
"iconName": "email"
|
|
6300
6318
|
},
|
|
6301
6319
|
{
|
|
6302
6320
|
"displayName": "SMS",
|
|
@@ -6304,7 +6322,8 @@
|
|
|
6304
6322
|
"sequenceNumber": 2,
|
|
6305
6323
|
"actionUserKey": "smsTemplate-list-action",
|
|
6306
6324
|
"moduleUserKey": "solid-core",
|
|
6307
|
-
"parentMenuItemUserKey": "notification-menu-item"
|
|
6325
|
+
"parentMenuItemUserKey": "notification-menu-item",
|
|
6326
|
+
"iconName": "sms"
|
|
6308
6327
|
},
|
|
6309
6328
|
{
|
|
6310
6329
|
"displayName": "Other",
|
|
@@ -6313,7 +6332,7 @@
|
|
|
6313
6332
|
"actionUserKey": "",
|
|
6314
6333
|
"moduleUserKey": "solid-core",
|
|
6315
6334
|
"parentMenuItemUserKey": "",
|
|
6316
|
-
"iconName": "
|
|
6335
|
+
"iconName": "more_horiz"
|
|
6317
6336
|
},
|
|
6318
6337
|
{
|
|
6319
6338
|
"displayName": "List of Values",
|
|
@@ -6321,7 +6340,8 @@
|
|
|
6321
6340
|
"sequenceNumber": 1,
|
|
6322
6341
|
"actionUserKey": "listOfValues-list-action",
|
|
6323
6342
|
"moduleUserKey": "solid-core",
|
|
6324
|
-
"parentMenuItemUserKey": "other-menu-item"
|
|
6343
|
+
"parentMenuItemUserKey": "other-menu-item",
|
|
6344
|
+
"iconName": "list"
|
|
6325
6345
|
},
|
|
6326
6346
|
{
|
|
6327
6347
|
"displayName": "Scheduled Jobs",
|
|
@@ -6329,7 +6349,8 @@
|
|
|
6329
6349
|
"sequenceNumber": 2,
|
|
6330
6350
|
"actionUserKey": "scheduledJob-list-action",
|
|
6331
6351
|
"moduleUserKey": "solid-core",
|
|
6332
|
-
"parentMenuItemUserKey": "other-menu-item"
|
|
6352
|
+
"parentMenuItemUserKey": "other-menu-item",
|
|
6353
|
+
"iconName": "event_repeat"
|
|
6333
6354
|
},
|
|
6334
6355
|
{
|
|
6335
6356
|
"displayName": "Saved Filters",
|
|
@@ -6337,7 +6358,8 @@
|
|
|
6337
6358
|
"sequenceNumber": 4,
|
|
6338
6359
|
"actionUserKey": "savedFilters-list-action",
|
|
6339
6360
|
"moduleUserKey": "solid-core",
|
|
6340
|
-
"parentMenuItemUserKey": "other-menu-item"
|
|
6361
|
+
"parentMenuItemUserKey": "other-menu-item",
|
|
6362
|
+
"iconName": "filter_list_alt"
|
|
6341
6363
|
},
|
|
6342
6364
|
{
|
|
6343
6365
|
"displayName": "Chatter Message",
|
|
@@ -6345,7 +6367,8 @@
|
|
|
6345
6367
|
"sequenceNumber": 5,
|
|
6346
6368
|
"actionUserKey": "chatterMessage-list-action",
|
|
6347
6369
|
"moduleUserKey": "solid-core",
|
|
6348
|
-
"parentMenuItemUserKey": "other-menu-item"
|
|
6370
|
+
"parentMenuItemUserKey": "other-menu-item",
|
|
6371
|
+
"iconName": "forum"
|
|
6349
6372
|
},
|
|
6350
6373
|
{
|
|
6351
6374
|
"displayName": "Locale",
|
|
@@ -6353,7 +6376,8 @@
|
|
|
6353
6376
|
"sequenceNumber": 7,
|
|
6354
6377
|
"actionUserKey": "locale-list-action",
|
|
6355
6378
|
"moduleUserKey": "solid-core",
|
|
6356
|
-
"parentMenuItemUserKey": "other-menu-item"
|
|
6379
|
+
"parentMenuItemUserKey": "other-menu-item",
|
|
6380
|
+
"iconName": "language"
|
|
6357
6381
|
},
|
|
6358
6382
|
{
|
|
6359
6383
|
"displayName": "Import Transactions",
|
|
@@ -6361,7 +6385,8 @@
|
|
|
6361
6385
|
"sequenceNumber": 8,
|
|
6362
6386
|
"actionUserKey": "importTransaction-list-action",
|
|
6363
6387
|
"moduleUserKey": "solid-core",
|
|
6364
|
-
"parentMenuItemUserKey": "other-menu-item"
|
|
6388
|
+
"parentMenuItemUserKey": "other-menu-item",
|
|
6389
|
+
"iconName": "upload_file"
|
|
6365
6390
|
},
|
|
6366
6391
|
{
|
|
6367
6392
|
"displayName": "Settings",
|
|
@@ -6378,7 +6403,8 @@
|
|
|
6378
6403
|
"sequenceNumber": 1,
|
|
6379
6404
|
"actionUserKey": "modelSequence-list-action",
|
|
6380
6405
|
"moduleUserKey": "solid-core",
|
|
6381
|
-
"parentMenuItemUserKey": "other-menu-item"
|
|
6406
|
+
"parentMenuItemUserKey": "other-menu-item",
|
|
6407
|
+
"iconName": "format_list_numbered"
|
|
6382
6408
|
},
|
|
6383
6409
|
{
|
|
6384
6410
|
"displayName": "Dashboard User Layout",
|
|
@@ -6387,7 +6413,7 @@
|
|
|
6387
6413
|
"actionUserKey": "dashboardUserLayout-list-action",
|
|
6388
6414
|
"moduleUserKey": "solid-core",
|
|
6389
6415
|
"parentMenuItemUserKey": "",
|
|
6390
|
-
"iconName": ""
|
|
6416
|
+
"iconName": "dashboard_customize"
|
|
6391
6417
|
},
|
|
6392
6418
|
{
|
|
6393
6419
|
"displayName": "Agent",
|
|
@@ -6404,7 +6430,8 @@
|
|
|
6404
6430
|
"sequenceNumber": 1,
|
|
6405
6431
|
"actionUserKey": "agentSession-list-action",
|
|
6406
6432
|
"moduleUserKey": "solid-core",
|
|
6407
|
-
"parentMenuItemUserKey": "agent-menu-item"
|
|
6433
|
+
"parentMenuItemUserKey": "agent-menu-item",
|
|
6434
|
+
"iconName": "chat"
|
|
6408
6435
|
},
|
|
6409
6436
|
{
|
|
6410
6437
|
"displayName": "MCP Audit Log",
|
|
@@ -6412,7 +6439,8 @@
|
|
|
6412
6439
|
"sequenceNumber": 3,
|
|
6413
6440
|
"actionUserKey": "mcpAuditLog-list-action",
|
|
6414
6441
|
"moduleUserKey": "solid-core",
|
|
6415
|
-
"parentMenuItemUserKey": "agent-menu-item"
|
|
6442
|
+
"parentMenuItemUserKey": "agent-menu-item",
|
|
6443
|
+
"iconName": "fact_check"
|
|
6416
6444
|
}
|
|
6417
6445
|
],
|
|
6418
6446
|
"views": [
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Cache } from "cache-manager";
|
|
2
|
+
export declare class ActiveSessionStorageService {
|
|
3
|
+
private readonly cacheManager;
|
|
4
|
+
constructor(cacheManager: Cache);
|
|
5
|
+
setActiveSession(userId: number, sessionId: string): Promise<void>;
|
|
6
|
+
getActiveSession(userId: number): Promise<string | undefined>;
|
|
7
|
+
clearActiveSession(userId: number): Promise<void>;
|
|
8
|
+
private getKey;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=active-session-storage.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-session-storage.service.d.ts","sourceRoot":"","sources":["../../src/services/active-session-storage.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,qBACa,2BAA2B;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,KAAK;IAEjE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlE,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAI7D,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvD,OAAO,CAAC,MAAM;CAGf"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ActiveSessionStorageService = void 0;
|
|
16
|
+
const cache_manager_1 = require("@nestjs/cache-manager");
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
let ActiveSessionStorageService = class ActiveSessionStorageService {
|
|
19
|
+
constructor(cacheManager) {
|
|
20
|
+
this.cacheManager = cacheManager;
|
|
21
|
+
}
|
|
22
|
+
async setActiveSession(userId, sessionId) {
|
|
23
|
+
await this.cacheManager.set(this.getKey(userId), sessionId);
|
|
24
|
+
}
|
|
25
|
+
async getActiveSession(userId) {
|
|
26
|
+
return this.cacheManager.get(this.getKey(userId));
|
|
27
|
+
}
|
|
28
|
+
async clearActiveSession(userId) {
|
|
29
|
+
await this.cacheManager.del(this.getKey(userId));
|
|
30
|
+
}
|
|
31
|
+
getKey(userId) {
|
|
32
|
+
return `active-session-${userId}`;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.ActiveSessionStorageService = ActiveSessionStorageService;
|
|
36
|
+
exports.ActiveSessionStorageService = ActiveSessionStorageService = __decorate([
|
|
37
|
+
(0, common_1.Injectable)(),
|
|
38
|
+
__param(0, (0, common_1.Inject)(cache_manager_1.CACHE_MANAGER)),
|
|
39
|
+
__metadata("design:paramtypes", [Object])
|
|
40
|
+
], ActiveSessionStorageService);
|
|
41
|
+
//# sourceMappingURL=active-session-storage.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"active-session-storage.service.js","sourceRoot":"","sources":["../../src/services/active-session-storage.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yDAAsD;AACtD,2CAAoD;AAI7C,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACtC,YAAoD,YAAmB;QAAnB,iBAAY,GAAZ,YAAY,CAAO;IAAG,CAAC;IAE3E,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,SAAiB;QACtD,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACrC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC;IAEO,MAAM,CAAC,MAAc;QAC3B,OAAO,kBAAkB,MAAM,EAAE,CAAC;IACpC,CAAC;CACF,CAAA;AAlBY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GADvB,2BAA2B,CAkBvC","sourcesContent":["import { CACHE_MANAGER } from \"@nestjs/cache-manager\";\nimport { Inject, Injectable } from \"@nestjs/common\";\nimport { Cache } from \"cache-manager\";\n\n@Injectable()\nexport class ActiveSessionStorageService {\n constructor(@Inject(CACHE_MANAGER) private readonly cacheManager: Cache) {}\n\n async setActiveSession(userId: number, sessionId: string): Promise<void> {\n await this.cacheManager.set(this.getKey(userId), sessionId);\n }\n\n async getActiveSession(userId: number): Promise<string | undefined> {\n return this.cacheManager.get(this.getKey(userId));\n }\n\n async clearActiveSession(userId: number): Promise<void> {\n await this.cacheManager.del(this.getKey(userId));\n }\n\n private getKey(userId: number): string {\n return `active-session-${userId}`;\n }\n}\n"]}
|
|
@@ -15,6 +15,7 @@ import { SignInDto } from "../dtos/sign-in.dto";
|
|
|
15
15
|
import { SignUpDto } from "../dtos/sign-up.dto";
|
|
16
16
|
import { User } from "../entities/user.entity";
|
|
17
17
|
import { ActiveUserData } from "../interfaces/active-user-data.interface";
|
|
18
|
+
import { ActiveSessionStorageService } from "./active-session-storage.service";
|
|
18
19
|
import { HashingService } from "./hashing.service";
|
|
19
20
|
import { RefreshTokenIdsStorageService } from "./refresh-token-ids-storage.service";
|
|
20
21
|
import { SsoCodeStorageService } from "./sso-code-storage.service";
|
|
@@ -30,6 +31,7 @@ export declare class AuthenticationService {
|
|
|
30
31
|
private readonly userRepository;
|
|
31
32
|
private readonly hashingService;
|
|
32
33
|
private readonly jwtService;
|
|
34
|
+
private readonly activeSessionStorage;
|
|
33
35
|
private readonly refreshTokenIdsStorage;
|
|
34
36
|
private readonly httpService;
|
|
35
37
|
private readonly mailServiceFactory;
|
|
@@ -43,7 +45,7 @@ export declare class AuthenticationService {
|
|
|
43
45
|
private readonly dataSource;
|
|
44
46
|
private readonly solidRegistry;
|
|
45
47
|
private readonly logger;
|
|
46
|
-
constructor(userService: UserService, userRepository: UserRepository, hashingService: HashingService, jwtService: JwtService, refreshTokenIdsStorage: RefreshTokenIdsStorageService, httpService: HttpService, mailServiceFactory: MailFactory, smsFactory: SmsFactory, whatsAppFactory: WhatsAppFactory, eventEmitter: EventEmitter2, settingService: SettingService, roleMetadataService: RoleMetadataService, userActivityHistoryService: UserActivityHistoryService, ssoCodeStorage: SsoCodeStorageService, dataSource: DataSource, solidRegistry: SolidRegistry);
|
|
48
|
+
constructor(userService: UserService, userRepository: UserRepository, hashingService: HashingService, jwtService: JwtService, activeSessionStorage: ActiveSessionStorageService, refreshTokenIdsStorage: RefreshTokenIdsStorageService, httpService: HttpService, mailServiceFactory: MailFactory, smsFactory: SmsFactory, whatsAppFactory: WhatsAppFactory, eventEmitter: EventEmitter2, settingService: SettingService, roleMetadataService: RoleMetadataService, userActivityHistoryService: UserActivityHistoryService, ssoCodeStorage: SsoCodeStorageService, dataSource: DataSource, solidRegistry: SolidRegistry);
|
|
47
49
|
private getCompanyLogo;
|
|
48
50
|
resolveUser(username: string, email: string): Promise<User>;
|
|
49
51
|
updatePasswordDetails(user: User, newPassword: string): Promise<User>;
|
|
@@ -112,8 +114,10 @@ export declare class AuthenticationService {
|
|
|
112
114
|
}>;
|
|
113
115
|
private resolveLoginType;
|
|
114
116
|
private findUserForLogin;
|
|
117
|
+
private findUserForLoginOrNull;
|
|
115
118
|
private assignLoginOtp;
|
|
116
119
|
private buildLoginOtpResponse;
|
|
120
|
+
private buildMaskedLoginIdentifier;
|
|
117
121
|
private notifyUserOnOtpInititateLogin;
|
|
118
122
|
otpConfirmLogin(confirmSignInDto: OTPConfirmOTPDto): Promise<{
|
|
119
123
|
accessToken: string;
|
|
@@ -157,7 +161,7 @@ export declare class AuthenticationService {
|
|
|
157
161
|
accessToken: string;
|
|
158
162
|
refreshToken: string;
|
|
159
163
|
}>;
|
|
160
|
-
generateAccessToken(user: User): Promise<string>;
|
|
164
|
+
generateAccessToken(user: User, sessionId?: string): Promise<string>;
|
|
161
165
|
generateRefreshToken(user: User, previousRefreshToken?: string): Promise<string>;
|
|
162
166
|
refreshTokens(refreshTokenDto: RefreshTokenDto): Promise<{
|
|
163
167
|
accessToken: string;
|
|
@@ -224,6 +228,7 @@ export declare class AuthenticationService {
|
|
|
224
228
|
};
|
|
225
229
|
}>;
|
|
226
230
|
private isPasswordlessRegistrationEnabled;
|
|
231
|
+
private shouldPreventConcurrentLogins;
|
|
227
232
|
private checkAccountBlocked;
|
|
228
233
|
private incrementFailedAttempts;
|
|
229
234
|
private resetFailedAttempts;
|
|
@@ -239,7 +244,7 @@ export declare class AuthenticationService {
|
|
|
239
244
|
id: number;
|
|
240
245
|
roles: string[];
|
|
241
246
|
};
|
|
242
|
-
refreshToken:
|
|
247
|
+
refreshToken: string;
|
|
243
248
|
}>;
|
|
244
249
|
generateSsoCode(activeUser: ActiveUserData, rawAccessToken: string): Promise<{
|
|
245
250
|
ssoCode: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAY5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAO9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAEL,6BAA6B,EAC9B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAa3D,qBACa,qBAAqB;IAI9B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,sBAAsB;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAE5B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAEnC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IACpC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"authentication.service.d.ts","sourceRoot":"","sources":["../../src/services/authentication.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,7 @@ const uuid_1 = require("uuid");
|
|
|
30
30
|
const constants_1 = require("../constants");
|
|
31
31
|
const user_entity_1 = require("../entities/user.entity");
|
|
32
32
|
const interfaces_1 = require("../interfaces");
|
|
33
|
+
const active_session_storage_service_1 = require("./active-session-storage.service");
|
|
33
34
|
const hashing_service_1 = require("./hashing.service");
|
|
34
35
|
const refresh_token_ids_storage_service_1 = require("./refresh-token-ids-storage.service");
|
|
35
36
|
const sso_code_storage_service_1 = require("./sso-code-storage.service");
|
|
@@ -47,11 +48,12 @@ var LoginProvider;
|
|
|
47
48
|
LoginProvider["OTP"] = "otp";
|
|
48
49
|
})(LoginProvider || (LoginProvider = {}));
|
|
49
50
|
let AuthenticationService = AuthenticationService_1 = class AuthenticationService {
|
|
50
|
-
constructor(userService, userRepository, hashingService, jwtService, refreshTokenIdsStorage, httpService, mailServiceFactory, smsFactory, whatsAppFactory, eventEmitter, settingService, roleMetadataService, userActivityHistoryService, ssoCodeStorage, dataSource, solidRegistry) {
|
|
51
|
+
constructor(userService, userRepository, hashingService, jwtService, activeSessionStorage, refreshTokenIdsStorage, httpService, mailServiceFactory, smsFactory, whatsAppFactory, eventEmitter, settingService, roleMetadataService, userActivityHistoryService, ssoCodeStorage, dataSource, solidRegistry) {
|
|
51
52
|
this.userService = userService;
|
|
52
53
|
this.userRepository = userRepository;
|
|
53
54
|
this.hashingService = hashingService;
|
|
54
55
|
this.jwtService = jwtService;
|
|
56
|
+
this.activeSessionStorage = activeSessionStorage;
|
|
55
57
|
this.refreshTokenIdsStorage = refreshTokenIdsStorage;
|
|
56
58
|
this.httpService = httpService;
|
|
57
59
|
this.mailServiceFactory = mailServiceFactory;
|
|
@@ -635,13 +637,15 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
635
637
|
throw new common_1.BadRequestException(error_messages_1.ERROR_MESSAGES.PASSWORDLESS_REGISTRATION_DISABLED);
|
|
636
638
|
}
|
|
637
639
|
const type = this.resolveLoginType(signInDto);
|
|
638
|
-
const user = await this.
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
640
|
+
const user = await this.findUserForLoginOrNull(type, signInDto.identifier);
|
|
641
|
+
if (user) {
|
|
642
|
+
const dummyOtp = this.getDummyOtpForUser(user);
|
|
643
|
+
if (!dummyOtp) {
|
|
644
|
+
await this.assignLoginOtp(user, type);
|
|
645
|
+
await this.notifyUserOnOtpInititateLogin(user, type);
|
|
646
|
+
}
|
|
643
647
|
}
|
|
644
|
-
return this.buildLoginOtpResponse(
|
|
648
|
+
return this.buildLoginOtpResponse(type, signInDto.identifier, user);
|
|
645
649
|
}
|
|
646
650
|
resolveLoginType(signInDto) {
|
|
647
651
|
const setting = this.settingService.getConfigValue("passwordlessLoginValidateWhat");
|
|
@@ -674,6 +678,19 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
674
678
|
}
|
|
675
679
|
return user;
|
|
676
680
|
}
|
|
681
|
+
async findUserForLoginOrNull(type, identifier, options = {}) {
|
|
682
|
+
try {
|
|
683
|
+
return await this.findUserForLogin(type, identifier, options);
|
|
684
|
+
}
|
|
685
|
+
catch (error) {
|
|
686
|
+
if (error instanceof common_1.UnauthorizedException &&
|
|
687
|
+
(error.message === error_messages_1.ERROR_MESSAGES.USER_NOT_FOUND ||
|
|
688
|
+
error.message === error_messages_1.ERROR_MESSAGES.USER_INACTIVE)) {
|
|
689
|
+
return null;
|
|
690
|
+
}
|
|
691
|
+
throw error;
|
|
692
|
+
}
|
|
693
|
+
}
|
|
677
694
|
async assignLoginOtp(user, type) {
|
|
678
695
|
const { token, expiresAt } = await this.otp();
|
|
679
696
|
if (type === constants_1.PasswordlessLoginValidateWhatSources.EMAIL) {
|
|
@@ -693,15 +710,18 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
693
710
|
});
|
|
694
711
|
}
|
|
695
712
|
}
|
|
696
|
-
buildLoginOtpResponse(
|
|
697
|
-
const maskedIdentifier = type
|
|
698
|
-
? { email: this.maskEmail(user.email) }
|
|
699
|
-
: { mobile: this.maskMobile(user.mobile) };
|
|
713
|
+
buildLoginOtpResponse(type, identifier, user) {
|
|
714
|
+
const maskedIdentifier = this.buildMaskedLoginIdentifier(type, user?.email ?? user?.mobile ?? identifier);
|
|
700
715
|
return {
|
|
701
716
|
message: success_messages_1.SUCCESS_MESSAGES.OTP_SENT_SUCCESS_LOGIN,
|
|
702
717
|
user: maskedIdentifier,
|
|
703
718
|
};
|
|
704
719
|
}
|
|
720
|
+
buildMaskedLoginIdentifier(type, identifier) {
|
|
721
|
+
return type === constants_1.PasswordlessLoginValidateWhatSources.EMAIL
|
|
722
|
+
? { email: this.maskEmail(identifier) }
|
|
723
|
+
: { mobile: this.maskMobile(identifier) };
|
|
724
|
+
}
|
|
705
725
|
async notifyUserOnOtpInititateLogin(user, loginType) {
|
|
706
726
|
const companyLogo = await this.getCompanyLogo();
|
|
707
727
|
const dummyOtp = this.getDummyOtpForUser(user);
|
|
@@ -778,9 +798,12 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
778
798
|
type !== constants_1.PasswordlessLoginValidateWhatSources.MOBILE) {
|
|
779
799
|
throw new common_1.BadRequestException(error_messages_1.ERROR_MESSAGES.INVALID_VERIFICATION_TYPE);
|
|
780
800
|
}
|
|
781
|
-
const user = await this.
|
|
801
|
+
const user = await this.findUserForLoginOrNull(type, identifier, {
|
|
782
802
|
withRoles: true,
|
|
783
803
|
});
|
|
804
|
+
if (!user) {
|
|
805
|
+
throw new common_1.UnauthorizedException(error_messages_1.ERROR_MESSAGES.INVALID_OTP);
|
|
806
|
+
}
|
|
784
807
|
this.checkAccountBlocked(user);
|
|
785
808
|
const dummyOtp = this.getDummyOtpForUser(user);
|
|
786
809
|
if (dummyOtp) {
|
|
@@ -1024,8 +1047,17 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
1024
1047
|
}
|
|
1025
1048
|
}
|
|
1026
1049
|
async generateTokens(user) {
|
|
1050
|
+
const sessionId = this.shouldPreventConcurrentLogins()
|
|
1051
|
+
? (0, crypto_1.randomUUID)()
|
|
1052
|
+
: undefined;
|
|
1053
|
+
if (sessionId) {
|
|
1054
|
+
await this.activeSessionStorage.setActiveSession(user.id, sessionId);
|
|
1055
|
+
}
|
|
1056
|
+
else {
|
|
1057
|
+
await this.activeSessionStorage.clearActiveSession(user.id);
|
|
1058
|
+
}
|
|
1027
1059
|
const [accessToken, refreshToken] = await Promise.all([
|
|
1028
|
-
await this.generateAccessToken(user),
|
|
1060
|
+
await this.generateAccessToken(user, sessionId),
|
|
1029
1061
|
await this.generateRefreshToken(user),
|
|
1030
1062
|
]);
|
|
1031
1063
|
return {
|
|
@@ -1033,10 +1065,18 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
1033
1065
|
refreshToken,
|
|
1034
1066
|
};
|
|
1035
1067
|
}
|
|
1036
|
-
async generateAccessToken(user) {
|
|
1068
|
+
async generateAccessToken(user, sessionId) {
|
|
1037
1069
|
const userRoleNames = user.roles.map((role) => role.name);
|
|
1070
|
+
const resolvedSessionId = this.shouldPreventConcurrentLogins()
|
|
1071
|
+
? sessionId ?? (await this.activeSessionStorage.getActiveSession(user.id))
|
|
1072
|
+
: undefined;
|
|
1038
1073
|
const accessTokenTtl = this.settingService.getConfigValue("accessTokenTtl");
|
|
1039
|
-
const accessToken = await this.signToken(user.id, accessTokenTtl, {
|
|
1074
|
+
const accessToken = await this.signToken(user.id, accessTokenTtl, {
|
|
1075
|
+
username: user.username,
|
|
1076
|
+
email: user.email,
|
|
1077
|
+
roles: userRoleNames,
|
|
1078
|
+
...(resolvedSessionId ? { sessionId: resolvedSessionId } : {}),
|
|
1079
|
+
});
|
|
1040
1080
|
return accessToken;
|
|
1041
1081
|
}
|
|
1042
1082
|
async generateRefreshToken(user, previousRefreshToken) {
|
|
@@ -1353,6 +1393,9 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
1353
1393
|
async isPasswordlessRegistrationEnabled() {
|
|
1354
1394
|
return this.settingService.getConfigValue("passwordLessAuth");
|
|
1355
1395
|
}
|
|
1396
|
+
shouldPreventConcurrentLogins() {
|
|
1397
|
+
return (this.settingService.getConfigValue("preventConcurrentLogins") === true);
|
|
1398
|
+
}
|
|
1356
1399
|
checkAccountBlocked(user) {
|
|
1357
1400
|
const maxFailedAttempts = this.settingService.getConfigValue("maxFailedLoginAttempts");
|
|
1358
1401
|
if (maxFailedAttempts > 0 &&
|
|
@@ -1381,6 +1424,7 @@ let AuthenticationService = AuthenticationService_1 = class AuthenticationServic
|
|
|
1381
1424
|
}
|
|
1382
1425
|
const userId = payload.sub;
|
|
1383
1426
|
await this.refreshTokenIdsStorage.invalidate(userId);
|
|
1427
|
+
await this.activeSessionStorage.clearActiveSession(userId);
|
|
1384
1428
|
const user = await this.userRepository.findOne({
|
|
1385
1429
|
where: {
|
|
1386
1430
|
id: userId,
|
|
@@ -1460,11 +1504,12 @@ AuthenticationService.SIGNUP_DTO_KEYS = new Set([
|
|
|
1460
1504
|
]);
|
|
1461
1505
|
exports.AuthenticationService = AuthenticationService = AuthenticationService_1 = __decorate([
|
|
1462
1506
|
(0, common_1.Injectable)(),
|
|
1463
|
-
__param(
|
|
1507
|
+
__param(15, (0, typeorm_1.InjectDataSource)()),
|
|
1464
1508
|
__metadata("design:paramtypes", [user_service_1.UserService,
|
|
1465
1509
|
user_repository_1.UserRepository,
|
|
1466
1510
|
hashing_service_1.HashingService,
|
|
1467
1511
|
jwt_1.JwtService,
|
|
1512
|
+
active_session_storage_service_1.ActiveSessionStorageService,
|
|
1468
1513
|
refresh_token_ids_storage_service_1.RefreshTokenIdsStorageService,
|
|
1469
1514
|
axios_1.HttpService,
|
|
1470
1515
|
mail_factory_1.MailFactory,
|