@memberjunction/core-actions 2.112.0 → 2.113.1
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/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -11
- package/dist/config.js.map +1 -1
- package/dist/custom/ai/execute-ai-prompt.action.d.ts +2 -2
- package/dist/custom/ai/execute-ai-prompt.action.d.ts.map +1 -1
- package/dist/custom/ai/execute-ai-prompt.action.js +22 -22
- package/dist/custom/ai/execute-ai-prompt.action.js.map +1 -1
- package/dist/custom/ai/find-best-action.action.d.ts +53 -0
- package/dist/custom/ai/find-best-action.action.d.ts.map +1 -0
- package/dist/custom/ai/find-best-action.action.js +211 -0
- package/dist/custom/ai/find-best-action.action.js.map +1 -0
- package/dist/custom/ai/find-best-agent.action.d.ts +53 -0
- package/dist/custom/ai/find-best-agent.action.d.ts.map +1 -0
- package/dist/custom/ai/find-best-agent.action.js +195 -0
- package/dist/custom/ai/find-best-agent.action.js.map +1 -0
- package/dist/custom/ai/find-candidate-actions.action.d.ts +2 -2
- package/dist/custom/ai/find-candidate-actions.action.d.ts.map +1 -1
- package/dist/custom/ai/find-candidate-actions.action.js +21 -21
- package/dist/custom/ai/find-candidate-actions.action.js.map +1 -1
- package/dist/custom/ai/summarize-content.action.d.ts +2 -2
- package/dist/custom/ai/summarize-content.action.d.ts.map +1 -1
- package/dist/custom/ai/summarize-content.action.js +50 -51
- package/dist/custom/ai/summarize-content.action.js.map +1 -1
- package/dist/custom/code-execution/execute-code.action.d.ts.map +1 -1
- package/dist/custom/code-execution/execute-code.action.js +27 -27
- package/dist/custom/code-execution/execute-code.action.js.map +1 -1
- package/dist/custom/communication/send-single-message.action.d.ts.map +1 -1
- package/dist/custom/communication/send-single-message.action.js +21 -10
- package/dist/custom/communication/send-single-message.action.js.map +1 -1
- package/dist/custom/crud/base-record-mutation.action.d.ts +3 -3
- package/dist/custom/crud/base-record-mutation.action.d.ts.map +1 -1
- package/dist/custom/crud/base-record-mutation.action.js +32 -28
- package/dist/custom/crud/base-record-mutation.action.js.map +1 -1
- package/dist/custom/crud/update-record.action.d.ts +2 -2
- package/dist/custom/crud/update-record.action.d.ts.map +1 -1
- package/dist/custom/crud/update-record.action.js +7 -7
- package/dist/custom/crud/update-record.action.js.map +1 -1
- package/dist/custom/data/execute-research-query.action.d.ts +2 -2
- package/dist/custom/data/execute-research-query.action.d.ts.map +1 -1
- package/dist/custom/data/execute-research-query.action.js +56 -52
- package/dist/custom/data/execute-research-query.action.js.map +1 -1
- package/dist/custom/data/explore-database-schema.action.d.ts +2 -2
- package/dist/custom/data/explore-database-schema.action.d.ts.map +1 -1
- package/dist/custom/data/explore-database-schema.action.js +51 -50
- package/dist/custom/data/explore-database-schema.action.js.map +1 -1
- package/dist/custom/data/get-entity-details.action.d.ts +2 -2
- package/dist/custom/data/get-entity-details.action.d.ts.map +1 -1
- package/dist/custom/data/get-entity-details.action.js +39 -30
- package/dist/custom/data/get-entity-details.action.js.map +1 -1
- package/dist/custom/data/get-entity-list.action.d.ts +2 -2
- package/dist/custom/data/get-entity-list.action.d.ts.map +1 -1
- package/dist/custom/data/get-entity-list.action.js +25 -25
- package/dist/custom/data/get-entity-list.action.js.map +1 -1
- package/dist/custom/files/base-file-storage.action.d.ts +5 -5
- package/dist/custom/files/base-file-storage.action.d.ts.map +1 -1
- package/dist/custom/files/base-file-storage.action.js +12 -12
- package/dist/custom/files/base-file-storage.action.js.map +1 -1
- package/dist/custom/files/list-storage-providers.action.d.ts +2 -2
- package/dist/custom/files/list-storage-providers.action.d.ts.map +1 -1
- package/dist/custom/files/list-storage-providers.action.js +22 -22
- package/dist/custom/files/list-storage-providers.action.js.map +1 -1
- package/dist/custom/user-management/assign-user-roles.action.d.ts +1 -1
- package/dist/custom/user-management/assign-user-roles.action.d.ts.map +1 -1
- package/dist/custom/user-management/assign-user-roles.action.js +27 -29
- package/dist/custom/user-management/assign-user-roles.action.js.map +1 -1
- package/dist/custom/user-management/check-user-permission.action.d.ts +1 -1
- package/dist/custom/user-management/check-user-permission.action.d.ts.map +1 -1
- package/dist/custom/user-management/check-user-permission.action.js +26 -25
- package/dist/custom/user-management/check-user-permission.action.js.map +1 -1
- package/dist/custom/user-management/create-employee.action.d.ts +2 -2
- package/dist/custom/user-management/create-employee.action.d.ts.map +1 -1
- package/dist/custom/user-management/create-employee.action.js +25 -25
- package/dist/custom/user-management/create-employee.action.js.map +1 -1
- package/dist/custom/user-management/create-user.action.d.ts +2 -2
- package/dist/custom/user-management/create-user.action.d.ts.map +1 -1
- package/dist/custom/user-management/create-user.action.js +23 -23
- package/dist/custom/user-management/create-user.action.js.map +1 -1
- package/dist/custom/utilities/base-file-handler.d.ts +2 -2
- package/dist/custom/utilities/base-file-handler.d.ts.map +1 -1
- package/dist/custom/utilities/base-file-handler.js +11 -11
- package/dist/custom/utilities/base-file-handler.js.map +1 -1
- package/dist/custom/utilities/external-change-detection.action.d.ts +2 -2
- package/dist/custom/utilities/external-change-detection.action.d.ts.map +1 -1
- package/dist/custom/utilities/external-change-detection.action.js +11 -11
- package/dist/custom/utilities/external-change-detection.action.js.map +1 -1
- package/dist/custom/utilities/vectorize-entity.action.d.ts +2 -2
- package/dist/custom/utilities/vectorize-entity.action.d.ts.map +1 -1
- package/dist/custom/utilities/vectorize-entity.action.js +9 -9
- package/dist/custom/utilities/vectorize-entity.action.js.map +1 -1
- package/dist/generated/action_subclasses.d.ts +5 -5
- package/dist/generated/action_subclasses.d.ts.map +1 -1
- package/dist/generated/action_subclasses.js +64 -64
- package/dist/generated/action_subclasses.js.map +1 -1
- package/package.json +17 -16
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.LoadListStorageProvidersAction = exports.ListStorageProvidersAction = void 0;
|
|
10
10
|
const global_1 = require("@memberjunction/global");
|
|
11
11
|
const global_2 = require("@memberjunction/global");
|
|
12
|
-
const
|
|
12
|
+
const core_1 = require("@memberjunction/core");
|
|
13
13
|
const storage_1 = require("@memberjunction/storage");
|
|
14
14
|
const base_file_storage_action_1 = require("./base-file-storage.action");
|
|
15
15
|
const actions_1 = require("@memberjunction/actions");
|
|
@@ -53,23 +53,23 @@ const actions_1 = require("@memberjunction/actions");
|
|
|
53
53
|
let ListStorageProvidersAction = class ListStorageProvidersAction extends base_file_storage_action_1.BaseFileStorageAction {
|
|
54
54
|
async InternalRunAction(params) {
|
|
55
55
|
// Optional parameter to filter only providers that support search
|
|
56
|
-
const searchSupportedOnly = this.getBooleanParam(params,
|
|
56
|
+
const searchSupportedOnly = this.getBooleanParam(params, "searchsupportedonly", false);
|
|
57
57
|
try {
|
|
58
58
|
// Build filter for active providers, optionally filtering for search support
|
|
59
|
-
let extraFilter =
|
|
59
|
+
let extraFilter = "IsActive=1";
|
|
60
60
|
if (searchSupportedOnly) {
|
|
61
|
-
extraFilter +=
|
|
61
|
+
extraFilter += " AND SupportsSearch=1";
|
|
62
62
|
}
|
|
63
63
|
// Query for active file storage providers from database
|
|
64
|
-
const rv = new
|
|
64
|
+
const rv = new core_1.RunView();
|
|
65
65
|
const result = await rv.RunView({
|
|
66
66
|
EntityName: 'File Storage Providers',
|
|
67
67
|
ExtraFilter: extraFilter,
|
|
68
68
|
OrderBy: 'Priority, Name',
|
|
69
|
-
ResultType: 'entity_object'
|
|
69
|
+
ResultType: 'entity_object'
|
|
70
70
|
}, params.ContextUser);
|
|
71
71
|
if (!result.Success) {
|
|
72
|
-
return this.createErrorResult(`Failed to retrieve storage providers: ${result.ErrorMessage}`,
|
|
72
|
+
return this.createErrorResult(`Failed to retrieve storage providers: ${result.ErrorMessage}`, "QUERY_FAILED");
|
|
73
73
|
}
|
|
74
74
|
const dbProviders = result.Results || [];
|
|
75
75
|
const availableProviders = [];
|
|
@@ -93,7 +93,7 @@ let ListStorageProvidersAction = class ListStorageProvidersAction extends base_f
|
|
|
93
93
|
ServerDriverKey: provider.ServerDriverKey,
|
|
94
94
|
SupportsSearch: supportsSearch,
|
|
95
95
|
IsConfigured: isConfigured,
|
|
96
|
-
ConfigurationError: isConfigured ? undefined : 'Missing required configuration (API keys, credentials, etc.)'
|
|
96
|
+
ConfigurationError: isConfigured ? undefined : 'Missing required configuration (API keys, credentials, etc.)'
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
else {
|
|
@@ -104,7 +104,7 @@ let ListStorageProvidersAction = class ListStorageProvidersAction extends base_f
|
|
|
104
104
|
ServerDriverKey: provider.ServerDriverKey,
|
|
105
105
|
SupportsSearch: supportsSearch,
|
|
106
106
|
IsConfigured: false,
|
|
107
|
-
ConfigurationError: 'Provider not registered in class factory'
|
|
107
|
+
ConfigurationError: 'Provider not registered in class factory'
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
}
|
|
@@ -117,13 +117,13 @@ let ListStorageProvidersAction = class ListStorageProvidersAction extends base_f
|
|
|
117
117
|
ServerDriverKey: provider.ServerDriverKey,
|
|
118
118
|
SupportsSearch: supportsSearch,
|
|
119
119
|
IsConfigured: false,
|
|
120
|
-
ConfigurationError: `Instantiation failed: ${errorMessage}
|
|
120
|
+
ConfigurationError: `Instantiation failed: ${errorMessage}`
|
|
121
121
|
});
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
// Calculate counts
|
|
125
|
-
const configuredProviders = availableProviders.filter(
|
|
126
|
-
const searchSupportedCount = configuredProviders.filter(
|
|
125
|
+
const configuredProviders = availableProviders.filter(p => p.IsConfigured);
|
|
126
|
+
const searchSupportedCount = configuredProviders.filter(p => p.SupportsSearch).length;
|
|
127
127
|
const totalCount = availableProviders.length;
|
|
128
128
|
const configuredCount = configuredProviders.length;
|
|
129
129
|
// Create detailed result message with provider list
|
|
@@ -156,48 +156,48 @@ let ListStorageProvidersAction = class ListStorageProvidersAction extends base_f
|
|
|
156
156
|
{
|
|
157
157
|
Name: 'Providers',
|
|
158
158
|
Value: availableProviders,
|
|
159
|
-
Type: 'Output'
|
|
159
|
+
Type: 'Output'
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
162
|
Name: 'TotalCount',
|
|
163
163
|
Value: totalCount,
|
|
164
|
-
Type: 'Output'
|
|
164
|
+
Type: 'Output'
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
Name: 'ConfiguredCount',
|
|
168
168
|
Value: configuredCount,
|
|
169
|
-
Type: 'Output'
|
|
169
|
+
Type: 'Output'
|
|
170
170
|
},
|
|
171
171
|
{
|
|
172
172
|
Name: 'SearchSupportedCount',
|
|
173
173
|
Value: searchSupportedCount,
|
|
174
|
-
Type: 'Output'
|
|
175
|
-
}
|
|
174
|
+
Type: 'Output'
|
|
175
|
+
}
|
|
176
176
|
];
|
|
177
177
|
// Return results
|
|
178
178
|
return {
|
|
179
179
|
Success: true,
|
|
180
|
-
ResultCode:
|
|
180
|
+
ResultCode: "SUCCESS",
|
|
181
181
|
Message: message,
|
|
182
|
-
Params: outputParams
|
|
182
|
+
Params: outputParams
|
|
183
183
|
};
|
|
184
184
|
}
|
|
185
185
|
catch (error) {
|
|
186
186
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
187
|
-
return this.createErrorResult(`Failed to list storage providers: ${errorMessage}`,
|
|
187
|
+
return this.createErrorResult(`Failed to list storage providers: ${errorMessage}`, "LIST_FAILED");
|
|
188
188
|
}
|
|
189
189
|
}
|
|
190
190
|
};
|
|
191
191
|
exports.ListStorageProvidersAction = ListStorageProvidersAction;
|
|
192
192
|
exports.ListStorageProvidersAction = ListStorageProvidersAction = __decorate([
|
|
193
|
-
(0, global_1.RegisterClass)(actions_1.BaseAction,
|
|
193
|
+
(0, global_1.RegisterClass)(actions_1.BaseAction, "List Storage Providers")
|
|
194
194
|
], ListStorageProvidersAction);
|
|
195
195
|
/**
|
|
196
196
|
* Load function to ensure the class is registered and not tree-shaken
|
|
197
197
|
*/
|
|
198
198
|
function LoadListStorageProvidersAction() {
|
|
199
199
|
// This function call ensures the class decorator executes
|
|
200
|
-
global_2.MJGlobal.Instance.ClassFactory.GetRegistration(base_file_storage_action_1.BaseFileStorageAction,
|
|
200
|
+
global_2.MJGlobal.Instance.ClassFactory.GetRegistration(base_file_storage_action_1.BaseFileStorageAction, "List Storage Providers");
|
|
201
201
|
}
|
|
202
202
|
exports.LoadListStorageProvidersAction = LoadListStorageProvidersAction;
|
|
203
203
|
//# sourceMappingURL=list-storage-providers.action.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-storage-providers.action.js","sourceRoot":"","sources":["../../../src/custom/files/list-storage-providers.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,mDAAkD;AAClD
|
|
1
|
+
{"version":3,"file":"list-storage-providers.action.js","sourceRoot":"","sources":["../../../src/custom/files/list-storage-providers.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionResultSimple, RunActionParams } from
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
2
|
import { BaseAction } from '@memberjunction/actions';
|
|
3
3
|
/**
|
|
4
4
|
* Assigns one or more roles to a user by creating UserRole associations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assign-user-roles.action.d.ts","sourceRoot":"","sources":["../../../src/custom/user-management/assign-user-roles.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD;;;;GAIG;AACH,qBACa,qBAAsB,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"assign-user-roles.action.d.ts","sourceRoot":"","sources":["../../../src/custom/user-management/assign-user-roles.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD;;;;GAIG;AACH,qBACa,qBAAsB,SAAQ,UAAU;IAC3C,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAmJhF;AAED,wBAAgB,yBAAyB,SAExC"}
|
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.LoadAssignUserRolesAction = exports.AssignUserRolesAction = void 0;
|
|
10
10
|
const global_1 = require("@memberjunction/global");
|
|
11
11
|
const actions_1 = require("@memberjunction/actions");
|
|
12
|
-
const
|
|
12
|
+
const core_1 = require("@memberjunction/core");
|
|
13
13
|
const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
|
|
14
14
|
/**
|
|
15
15
|
* Assigns one or more roles to a user by creating UserRole associations.
|
|
@@ -20,15 +20,15 @@ let AssignUserRolesAction = class AssignUserRolesAction extends actions_1.BaseAc
|
|
|
20
20
|
async InternalRunAction(params) {
|
|
21
21
|
try {
|
|
22
22
|
// Extract parameters
|
|
23
|
-
const userID = params.Params.find(
|
|
24
|
-
const roleNamesParam = params.Params.find(
|
|
25
|
-
const roleNameParam = params.Params.find(
|
|
23
|
+
const userID = params.Params.find(p => p.Name === 'UserID')?.Value;
|
|
24
|
+
const roleNamesParam = params.Params.find(p => p.Name === 'RoleNames')?.Value;
|
|
25
|
+
const roleNameParam = params.Params.find(p => p.Name === 'RoleName')?.Value;
|
|
26
26
|
// Validate required fields
|
|
27
27
|
if (!userID) {
|
|
28
28
|
return {
|
|
29
29
|
Success: false,
|
|
30
30
|
ResultCode: 'VALIDATION_ERROR',
|
|
31
|
-
Message: 'UserID is required'
|
|
31
|
+
Message: 'UserID is required'
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
// Handle both single and multiple role inputs
|
|
@@ -55,28 +55,26 @@ let AssignUserRolesAction = class AssignUserRolesAction extends actions_1.BaseAc
|
|
|
55
55
|
return {
|
|
56
56
|
Success: false,
|
|
57
57
|
ResultCode: 'VALIDATION_ERROR',
|
|
58
|
-
Message: 'RoleNames or RoleName must be provided as a string or array'
|
|
58
|
+
Message: 'RoleNames or RoleName must be provided as a string or array'
|
|
59
59
|
};
|
|
60
60
|
}
|
|
61
|
-
const md = new
|
|
61
|
+
const md = new core_1.Metadata();
|
|
62
62
|
// Validate user exists - check UserCache first
|
|
63
63
|
// For newly created users, the cache might not be updated yet
|
|
64
|
-
const user = sqlserver_dataprovider_1.UserCache.Users?.find(
|
|
65
|
-
const existingRoleIDs = user?.UserRoles ? user.UserRoles.map(
|
|
64
|
+
const user = sqlserver_dataprovider_1.UserCache.Users?.find(u => u.ID === userID);
|
|
65
|
+
const existingRoleIDs = user?.UserRoles ? user.UserRoles.map(ur => ur.RoleID) : [];
|
|
66
66
|
// Get all roles and validate they exist using Metadata cache
|
|
67
67
|
const allRoles = md.Roles;
|
|
68
|
-
const foundRoles = roleNames
|
|
69
|
-
.
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const foundRoleNames = foundRoles.map((r) => r.Name);
|
|
74
|
-
const missingRoles = roleNames.filter((name) => !foundRoleNames.includes(name));
|
|
68
|
+
const foundRoles = roleNames.map(name => {
|
|
69
|
+
return allRoles.find(r => r.Name === name);
|
|
70
|
+
}).filter(r => r != null);
|
|
71
|
+
const foundRoleNames = foundRoles.map(r => r.Name);
|
|
72
|
+
const missingRoles = roleNames.filter(name => !foundRoleNames.includes(name));
|
|
75
73
|
if (missingRoles.length > 0) {
|
|
76
74
|
return {
|
|
77
75
|
Success: false,
|
|
78
76
|
ResultCode: 'ROLES_NOT_FOUND',
|
|
79
|
-
Message: `The following roles do not exist: ${missingRoles.join(', ')}
|
|
77
|
+
Message: `The following roles do not exist: ${missingRoles.join(', ')}`
|
|
80
78
|
};
|
|
81
79
|
}
|
|
82
80
|
// Process each role
|
|
@@ -97,7 +95,7 @@ let AssignUserRolesAction = class AssignUserRolesAction extends actions_1.BaseAc
|
|
|
97
95
|
assignedRoles.push({
|
|
98
96
|
roleID: role.ID,
|
|
99
97
|
roleName: role.Name,
|
|
100
|
-
userRoleID: userRole.ID
|
|
98
|
+
userRoleID: userRole.ID
|
|
101
99
|
});
|
|
102
100
|
}
|
|
103
101
|
else {
|
|
@@ -111,7 +109,7 @@ let AssignUserRolesAction = class AssignUserRolesAction extends actions_1.BaseAc
|
|
|
111
109
|
// Prepare result
|
|
112
110
|
let message = '';
|
|
113
111
|
if (assignedRoles.length > 0) {
|
|
114
|
-
message += `Successfully assigned ${assignedRoles.length} role(s): ${assignedRoles.map(
|
|
112
|
+
message += `Successfully assigned ${assignedRoles.length} role(s): ${assignedRoles.map(r => r.roleName).join(', ')}. `;
|
|
115
113
|
}
|
|
116
114
|
if (skippedRoles.length > 0) {
|
|
117
115
|
message += `Skipped ${skippedRoles.length} already assigned role(s): ${skippedRoles.join(', ')}. `;
|
|
@@ -122,43 +120,43 @@ let AssignUserRolesAction = class AssignUserRolesAction extends actions_1.BaseAc
|
|
|
122
120
|
// Add output parameters
|
|
123
121
|
params.Params.push({
|
|
124
122
|
Name: 'AssignedRoleIDs',
|
|
125
|
-
Value: assignedRoles.map(
|
|
126
|
-
Type: 'Output'
|
|
123
|
+
Value: assignedRoles.map(r => r.roleID),
|
|
124
|
+
Type: 'Output'
|
|
127
125
|
});
|
|
128
126
|
params.Params.push({
|
|
129
127
|
Name: 'AssignedUserRoleIDs',
|
|
130
|
-
Value: assignedRoles.map(
|
|
131
|
-
Type: 'Output'
|
|
128
|
+
Value: assignedRoles.map(r => r.userRoleID),
|
|
129
|
+
Type: 'Output'
|
|
132
130
|
});
|
|
133
131
|
params.Params.push({
|
|
134
132
|
Name: 'AssignedRoleNames',
|
|
135
|
-
Value: assignedRoles.map(
|
|
136
|
-
Type: 'Output'
|
|
133
|
+
Value: assignedRoles.map(r => r.roleName),
|
|
134
|
+
Type: 'Output'
|
|
137
135
|
});
|
|
138
136
|
params.Params.push({
|
|
139
137
|
Name: 'AssignedCount',
|
|
140
138
|
Value: assignedRoles.length,
|
|
141
|
-
Type: 'Output'
|
|
139
|
+
Type: 'Output'
|
|
142
140
|
});
|
|
143
141
|
return {
|
|
144
142
|
Success: errors.length === 0 && (assignedRoles.length > 0 || skippedRoles.length > 0),
|
|
145
143
|
ResultCode: errors.length > 0 ? 'PARTIAL_SUCCESS' : 'SUCCESS',
|
|
146
144
|
Message: message.trim(),
|
|
147
|
-
Params: params.Params
|
|
145
|
+
Params: params.Params
|
|
148
146
|
};
|
|
149
147
|
}
|
|
150
148
|
catch (e) {
|
|
151
149
|
return {
|
|
152
150
|
Success: false,
|
|
153
151
|
ResultCode: 'FAILED',
|
|
154
|
-
Message: `Error assigning user roles: ${e.message}
|
|
152
|
+
Message: `Error assigning user roles: ${e.message}`
|
|
155
153
|
};
|
|
156
154
|
}
|
|
157
155
|
}
|
|
158
156
|
};
|
|
159
157
|
exports.AssignUserRolesAction = AssignUserRolesAction;
|
|
160
158
|
exports.AssignUserRolesAction = AssignUserRolesAction = __decorate([
|
|
161
|
-
(0, global_1.RegisterClass)(actions_1.BaseAction,
|
|
159
|
+
(0, global_1.RegisterClass)(actions_1.BaseAction, "AssignUserRolesAction")
|
|
162
160
|
], AssignUserRolesAction);
|
|
163
161
|
function LoadAssignUserRolesAction() {
|
|
164
162
|
// Prevent tree shaking
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assign-user-roles.action.js","sourceRoot":"","sources":["../../../src/custom/user-management/assign-user-roles.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,qDAAqD;AACrD
|
|
1
|
+
{"version":3,"file":"assign-user-roles.action.js","sourceRoot":"","sources":["../../../src/custom/user-management/assign-user-roles.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionResultSimple, RunActionParams } from
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
2
|
import { BaseAction } from '@memberjunction/actions';
|
|
3
3
|
/**
|
|
4
4
|
* Verifies if the current user has a specific role or permission to perform administrative tasks.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-user-permission.action.d.ts","sourceRoot":"","sources":["../../../src/custom/user-management/check-user-permission.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;GAGG;AACH,qBACa,yBAA0B,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"check-user-permission.action.d.ts","sourceRoot":"","sources":["../../../src/custom/user-management/check-user-permission.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAIrD;;;GAGG;AACH,qBACa,yBAA0B,SAAQ,UAAU;IAC/C,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA6IhF;AAED,wBAAgB,6BAA6B,SAE5C"}
|
|
@@ -9,7 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.LoadCheckUserPermissionAction = exports.CheckUserPermissionAction = void 0;
|
|
10
10
|
const global_1 = require("@memberjunction/global");
|
|
11
11
|
const actions_1 = require("@memberjunction/actions");
|
|
12
|
-
const
|
|
12
|
+
const core_1 = require("@memberjunction/core");
|
|
13
13
|
const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
|
|
14
14
|
/**
|
|
15
15
|
* Verifies if the current user has a specific role or permission to perform administrative tasks.
|
|
@@ -19,14 +19,14 @@ let CheckUserPermissionAction = class CheckUserPermissionAction extends actions_
|
|
|
19
19
|
async InternalRunAction(params) {
|
|
20
20
|
try {
|
|
21
21
|
// Extract parameters
|
|
22
|
-
const permissionType = params.Params.find(
|
|
23
|
-
const permissionName = params.Params.find(
|
|
24
|
-
const userID = params.Params.find(
|
|
22
|
+
const permissionType = params.Params.find(p => p.Name === 'PermissionType')?.Value || 'Role';
|
|
23
|
+
const permissionName = params.Params.find(p => p.Name === 'PermissionName')?.Value;
|
|
24
|
+
const userID = params.Params.find(p => p.Name === 'UserID')?.Value || params.ContextUser?.ID;
|
|
25
25
|
if (!permissionName) {
|
|
26
26
|
return {
|
|
27
27
|
Success: false,
|
|
28
28
|
ResultCode: 'VALIDATION_ERROR',
|
|
29
|
-
Message: 'PermissionName parameter is required'
|
|
29
|
+
Message: 'PermissionName parameter is required'
|
|
30
30
|
};
|
|
31
31
|
}
|
|
32
32
|
// Validate permission type
|
|
@@ -35,7 +35,7 @@ let CheckUserPermissionAction = class CheckUserPermissionAction extends actions_
|
|
|
35
35
|
return {
|
|
36
36
|
Success: false,
|
|
37
37
|
ResultCode: 'INVALID_PERMISSION_TYPE',
|
|
38
|
-
Message: `Invalid permission type. Must be one of: ${validTypes.join(', ')}
|
|
38
|
+
Message: `Invalid permission type. Must be one of: ${validTypes.join(', ')}`
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
const currentUser = params.ContextUser;
|
|
@@ -43,7 +43,7 @@ let CheckUserPermissionAction = class CheckUserPermissionAction extends actions_
|
|
|
43
43
|
return {
|
|
44
44
|
Success: false,
|
|
45
45
|
ResultCode: 'PERMISSION_DENIED',
|
|
46
|
-
Message: 'No authenticated user context found and no UserID provided'
|
|
46
|
+
Message: 'No authenticated user context found and no UserID provided'
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
49
|
let hasPermission = false;
|
|
@@ -52,54 +52,55 @@ let CheckUserPermissionAction = class CheckUserPermissionAction extends actions_
|
|
|
52
52
|
switch (permissionType) {
|
|
53
53
|
case 'Role':
|
|
54
54
|
// Get user's roles from UserCache
|
|
55
|
-
const cachedUser = sqlserver_dataprovider_1.UserCache.Users?.find(
|
|
55
|
+
const cachedUser = sqlserver_dataprovider_1.UserCache.Users?.find(u => u.ID === userID);
|
|
56
56
|
if (cachedUser && cachedUser.UserRoles) {
|
|
57
|
-
cachedUser.UserRoles.forEach(
|
|
58
|
-
hasPermission = cachedUser.UserRoles.some(
|
|
57
|
+
cachedUser.UserRoles.forEach(ur => userRoles.push(ur.Role));
|
|
58
|
+
hasPermission = cachedUser.UserRoles.some(ur => ur.Role === permissionName);
|
|
59
59
|
}
|
|
60
60
|
break;
|
|
61
61
|
case 'Authorization':
|
|
62
62
|
// Check authorization roles
|
|
63
|
-
const authRv = new
|
|
63
|
+
const authRv = new core_1.RunView();
|
|
64
64
|
const authResult = await authRv.RunView({
|
|
65
65
|
EntityName: 'Authorization Roles',
|
|
66
|
-
ExtraFilter: `RoleID IN (SELECT RoleID FROM ${
|
|
67
|
-
ResultType: 'simple'
|
|
66
|
+
ExtraFilter: `RoleID IN (SELECT RoleID FROM ${core_1.Metadata.Provider.ConfigData.MJCoreSchemaName}.vwUserRoles WHERE UserID='${userID}') AND AuthorizationID IN (SELECT ID FROM ${core_1.Metadata.Provider.ConfigData.MJCoreSchemaName}.vwAuthorizations WHERE Name='${permissionName}')`,
|
|
67
|
+
ResultType: 'simple'
|
|
68
68
|
}, currentUser);
|
|
69
69
|
hasPermission = authResult.Success && authResult.Results && authResult.Results.length > 0;
|
|
70
70
|
break;
|
|
71
71
|
case 'EntityPermission':
|
|
72
72
|
// Use the Metadata API to check entity permissions properly
|
|
73
|
-
const md = new
|
|
73
|
+
const md = new core_1.Metadata();
|
|
74
74
|
const entityInfo = md.EntityByName(permissionName);
|
|
75
75
|
if (!entityInfo) {
|
|
76
76
|
return {
|
|
77
77
|
Success: false,
|
|
78
78
|
ResultCode: 'ENTITY_NOT_FOUND',
|
|
79
|
-
Message: `Entity '${permissionName}' not found
|
|
79
|
+
Message: `Entity '${permissionName}' not found`
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
82
|
// Get user permissions for this entity - Note: MJCore has typo in method name
|
|
83
83
|
const userPermissions = entityInfo.GetUserPermisions(currentUser);
|
|
84
84
|
// For EntityPermission, check if user has any permission (for HasPermission output)
|
|
85
|
-
hasPermission = userPermissions.CanCreate || userPermissions.CanRead ||
|
|
85
|
+
hasPermission = userPermissions.CanCreate || userPermissions.CanRead ||
|
|
86
|
+
userPermissions.CanUpdate || userPermissions.CanDelete;
|
|
86
87
|
// Add all CRUD permissions as output parameters
|
|
87
88
|
params.Params.push({
|
|
88
89
|
Name: 'CanCreate',
|
|
89
90
|
Value: userPermissions.CanCreate,
|
|
90
|
-
Type: 'Output'
|
|
91
|
+
Type: 'Output'
|
|
91
92
|
}, {
|
|
92
93
|
Name: 'CanUpdate',
|
|
93
94
|
Value: userPermissions.CanUpdate,
|
|
94
|
-
Type: 'Output'
|
|
95
|
+
Type: 'Output'
|
|
95
96
|
}, {
|
|
96
97
|
Name: 'CanRead',
|
|
97
98
|
Value: userPermissions.CanRead,
|
|
98
|
-
Type: 'Output'
|
|
99
|
+
Type: 'Output'
|
|
99
100
|
}, {
|
|
100
101
|
Name: 'CanDelete',
|
|
101
102
|
Value: userPermissions.CanDelete,
|
|
102
|
-
Type: 'Output'
|
|
103
|
+
Type: 'Output'
|
|
103
104
|
});
|
|
104
105
|
break;
|
|
105
106
|
}
|
|
@@ -107,13 +108,13 @@ let CheckUserPermissionAction = class CheckUserPermissionAction extends actions_
|
|
|
107
108
|
params.Params.push({
|
|
108
109
|
Name: 'HasPermission',
|
|
109
110
|
Value: hasPermission,
|
|
110
|
-
Type: 'Output'
|
|
111
|
+
Type: 'Output'
|
|
111
112
|
});
|
|
112
113
|
if (userRoles.length > 0) {
|
|
113
114
|
params.Params.push({
|
|
114
115
|
Name: 'UserRoles',
|
|
115
116
|
Value: userRoles,
|
|
116
|
-
Type: 'Output'
|
|
117
|
+
Type: 'Output'
|
|
117
118
|
});
|
|
118
119
|
}
|
|
119
120
|
return {
|
|
@@ -122,21 +123,21 @@ let CheckUserPermissionAction = class CheckUserPermissionAction extends actions_
|
|
|
122
123
|
Message: hasPermission
|
|
123
124
|
? `User has required ${permissionType}: ${permissionName}`
|
|
124
125
|
: `User does not have required ${permissionType}: ${permissionName}`,
|
|
125
|
-
Params: params.Params
|
|
126
|
+
Params: params.Params
|
|
126
127
|
};
|
|
127
128
|
}
|
|
128
129
|
catch (e) {
|
|
129
130
|
return {
|
|
130
131
|
Success: false,
|
|
131
132
|
ResultCode: 'FAILED',
|
|
132
|
-
Message: `Error checking user permission: ${e.message}
|
|
133
|
+
Message: `Error checking user permission: ${e.message}`
|
|
133
134
|
};
|
|
134
135
|
}
|
|
135
136
|
}
|
|
136
137
|
};
|
|
137
138
|
exports.CheckUserPermissionAction = CheckUserPermissionAction;
|
|
138
139
|
exports.CheckUserPermissionAction = CheckUserPermissionAction = __decorate([
|
|
139
|
-
(0, global_1.RegisterClass)(actions_1.BaseAction,
|
|
140
|
+
(0, global_1.RegisterClass)(actions_1.BaseAction, "CheckUserPermissionAction")
|
|
140
141
|
], CheckUserPermissionAction);
|
|
141
142
|
function LoadCheckUserPermissionAction() {
|
|
142
143
|
// Prevent tree shaking
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-user-permission.action.js","sourceRoot":"","sources":["../../../src/custom/user-management/check-user-permission.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,qDAAqD;AACrD
|
|
1
|
+
{"version":3,"file":"check-user-permission.action.js","sourceRoot":"","sources":["../../../src/custom/user-management/check-user-permission.action.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ActionResultSimple, RunActionParams } from
|
|
2
|
-
import { CreateRecordAction } from
|
|
1
|
+
import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
|
|
2
|
+
import { CreateRecordAction } from "../crud/create-record.action";
|
|
3
3
|
/**
|
|
4
4
|
* Creates a new employee record in the MemberJunction system.
|
|
5
5
|
* This action extends CreateRecordAction to leverage existing record creation functionality
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-employee.action.d.ts","sourceRoot":"","sources":["../../../src/custom/user-management/create-employee.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIlE;;;;GAIG;AACH,qBACa,oBAAqB,SAAQ,kBAAkB;
|
|
1
|
+
{"version":3,"file":"create-employee.action.d.ts","sourceRoot":"","sources":["../../../src/custom/user-management/create-employee.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAIlE;;;;GAIG;AACH,qBACa,oBAAqB,SAAQ,kBAAkB;IAClD,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0HhF;AAED,wBAAgB,wBAAwB,SAEvC"}
|