@memberjunction/core-actions 2.80.1 → 2.82.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.
Files changed (25) hide show
  1. package/dist/custom/user-management/assign-user-roles.action.d.ts +12 -0
  2. package/dist/custom/user-management/assign-user-roles.action.d.ts.map +1 -0
  3. package/dist/custom/user-management/assign-user-roles.action.js +165 -0
  4. package/dist/custom/user-management/assign-user-roles.action.js.map +1 -0
  5. package/dist/custom/user-management/check-user-permission.action.d.ts +11 -0
  6. package/dist/custom/user-management/check-user-permission.action.d.ts.map +1 -0
  7. package/dist/custom/user-management/check-user-permission.action.js +146 -0
  8. package/dist/custom/user-management/check-user-permission.action.js.map +1 -0
  9. package/dist/custom/user-management/create-employee.action.d.ts +12 -0
  10. package/dist/custom/user-management/create-employee.action.d.ts.map +1 -0
  11. package/dist/custom/user-management/create-employee.action.js +139 -0
  12. package/dist/custom/user-management/create-employee.action.js.map +1 -0
  13. package/dist/custom/user-management/create-user.action.d.ts +12 -0
  14. package/dist/custom/user-management/create-user.action.d.ts.map +1 -0
  15. package/dist/custom/user-management/create-user.action.js +130 -0
  16. package/dist/custom/user-management/create-user.action.js.map +1 -0
  17. package/dist/custom/user-management/validate-email-unique.action.d.ts +11 -0
  18. package/dist/custom/user-management/validate-email-unique.action.d.ts.map +1 -0
  19. package/dist/custom/user-management/validate-email-unique.action.js +97 -0
  20. package/dist/custom/user-management/validate-email-unique.action.js.map +1 -0
  21. package/dist/index.d.ts +5 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +16 -0
  24. package/dist/index.js.map +1 -1
  25. package/package.json +11 -11
@@ -0,0 +1,12 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from '@memberjunction/actions';
3
+ /**
4
+ * Assigns one or more roles to a user by creating UserRole associations.
5
+ * This action accepts either a single role name or an array of role names.
6
+ * It gracefully handles both cases and assigns all specified roles to the user.
7
+ */
8
+ export declare class AssignUserRolesAction extends BaseAction {
9
+ InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
10
+ }
11
+ export declare function LoadAssignUserRolesAction(): void;
12
+ //# sourceMappingURL=assign-user-roles.action.d.ts.map
@@ -0,0 +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;IAC3C,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAmJhF;AAED,wBAAgB,yBAAyB,SAExC"}
@@ -0,0 +1,165 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadAssignUserRolesAction = exports.AssignUserRolesAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const core_1 = require("@memberjunction/core");
13
+ const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
14
+ /**
15
+ * Assigns one or more roles to a user by creating UserRole associations.
16
+ * This action accepts either a single role name or an array of role names.
17
+ * It gracefully handles both cases and assigns all specified roles to the user.
18
+ */
19
+ let AssignUserRolesAction = class AssignUserRolesAction extends actions_1.BaseAction {
20
+ async InternalRunAction(params) {
21
+ try {
22
+ // Extract parameters
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
+ // Validate required fields
27
+ if (!userID) {
28
+ return {
29
+ Success: false,
30
+ ResultCode: 'VALIDATION_ERROR',
31
+ Message: 'UserID is required'
32
+ };
33
+ }
34
+ // Handle both single and multiple role inputs
35
+ let roleNames = [];
36
+ if (roleNamesParam) {
37
+ // If RoleNames is provided, use it
38
+ if (Array.isArray(roleNamesParam)) {
39
+ roleNames = roleNamesParam;
40
+ }
41
+ else if (typeof roleNamesParam === 'string') {
42
+ roleNames = [roleNamesParam];
43
+ }
44
+ }
45
+ else if (roleNameParam) {
46
+ // If RoleName (singular) is provided, use it
47
+ if (Array.isArray(roleNameParam)) {
48
+ roleNames = roleNameParam;
49
+ }
50
+ else if (typeof roleNameParam === 'string') {
51
+ roleNames = [roleNameParam];
52
+ }
53
+ }
54
+ if (roleNames.length === 0) {
55
+ return {
56
+ Success: false,
57
+ ResultCode: 'VALIDATION_ERROR',
58
+ Message: 'RoleNames or RoleName must be provided as a string or array'
59
+ };
60
+ }
61
+ const md = new core_1.Metadata();
62
+ // Validate user exists - check UserCache first
63
+ // For newly created users, the cache might not be updated yet
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
+ // Get all roles and validate they exist using Metadata cache
67
+ const allRoles = md.Roles;
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));
73
+ if (missingRoles.length > 0) {
74
+ return {
75
+ Success: false,
76
+ ResultCode: 'ROLES_NOT_FOUND',
77
+ Message: `The following roles do not exist: ${missingRoles.join(', ')}`
78
+ };
79
+ }
80
+ // Process each role
81
+ const assignedRoles = [];
82
+ const skippedRoles = [];
83
+ const errors = [];
84
+ for (const role of foundRoles) {
85
+ if (existingRoleIDs.includes(role.ID)) {
86
+ skippedRoles.push(role.Name);
87
+ continue;
88
+ }
89
+ try {
90
+ // Create UserRole entity
91
+ const userRole = await md.GetEntityObject('User Roles', params.ContextUser);
92
+ userRole.UserID = userID;
93
+ userRole.RoleID = role.ID;
94
+ if (await userRole.Save()) {
95
+ assignedRoles.push({
96
+ roleID: role.ID,
97
+ roleName: role.Name,
98
+ userRoleID: userRole.ID
99
+ });
100
+ }
101
+ else {
102
+ errors.push(`Failed to assign role '${role.Name}'`);
103
+ }
104
+ }
105
+ catch (e) {
106
+ errors.push(`Error assigning role '${role.Name}': ${e.message}`);
107
+ }
108
+ }
109
+ // Prepare result
110
+ let message = '';
111
+ if (assignedRoles.length > 0) {
112
+ message += `Successfully assigned ${assignedRoles.length} role(s): ${assignedRoles.map(r => r.roleName).join(', ')}. `;
113
+ }
114
+ if (skippedRoles.length > 0) {
115
+ message += `Skipped ${skippedRoles.length} already assigned role(s): ${skippedRoles.join(', ')}. `;
116
+ }
117
+ if (errors.length > 0) {
118
+ message += `Errors: ${errors.join('; ')}`;
119
+ }
120
+ // Add output parameters
121
+ params.Params.push({
122
+ Name: 'AssignedRoleIDs',
123
+ Value: assignedRoles.map(r => r.roleID),
124
+ Type: 'Output'
125
+ });
126
+ params.Params.push({
127
+ Name: 'AssignedUserRoleIDs',
128
+ Value: assignedRoles.map(r => r.userRoleID),
129
+ Type: 'Output'
130
+ });
131
+ params.Params.push({
132
+ Name: 'AssignedRoleNames',
133
+ Value: assignedRoles.map(r => r.roleName),
134
+ Type: 'Output'
135
+ });
136
+ params.Params.push({
137
+ Name: 'AssignedCount',
138
+ Value: assignedRoles.length,
139
+ Type: 'Output'
140
+ });
141
+ return {
142
+ Success: errors.length === 0 && (assignedRoles.length > 0 || skippedRoles.length > 0),
143
+ ResultCode: errors.length > 0 ? 'PARTIAL_SUCCESS' : 'SUCCESS',
144
+ Message: message.trim(),
145
+ Params: params.Params
146
+ };
147
+ }
148
+ catch (e) {
149
+ return {
150
+ Success: false,
151
+ ResultCode: 'FAILED',
152
+ Message: `Error assigning user roles: ${e.message}`
153
+ };
154
+ }
155
+ }
156
+ };
157
+ exports.AssignUserRolesAction = AssignUserRolesAction;
158
+ exports.AssignUserRolesAction = AssignUserRolesAction = __decorate([
159
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "AssignUserRolesAction")
160
+ ], AssignUserRolesAction);
161
+ function LoadAssignUserRolesAction() {
162
+ // Prevent tree shaking
163
+ }
164
+ exports.LoadAssignUserRolesAction = LoadAssignUserRolesAction;
165
+ //# sourceMappingURL=assign-user-roles.action.js.map
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,11 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from '@memberjunction/actions';
3
+ /**
4
+ * Verifies if the current user has a specific role or permission to perform administrative tasks.
5
+ * Supports checking for roles, authorizations, or entity permissions.
6
+ */
7
+ export declare class CheckUserPermissionAction extends BaseAction {
8
+ InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
9
+ }
10
+ export declare function LoadCheckUserPermissionAction(): void;
11
+ //# sourceMappingURL=check-user-permission.action.d.ts.map
@@ -0,0 +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;IAC/C,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA6IhF;AAED,wBAAgB,6BAA6B,SAE5C"}
@@ -0,0 +1,146 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadCheckUserPermissionAction = exports.CheckUserPermissionAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const core_1 = require("@memberjunction/core");
13
+ const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
14
+ /**
15
+ * Verifies if the current user has a specific role or permission to perform administrative tasks.
16
+ * Supports checking for roles, authorizations, or entity permissions.
17
+ */
18
+ let CheckUserPermissionAction = class CheckUserPermissionAction extends actions_1.BaseAction {
19
+ async InternalRunAction(params) {
20
+ try {
21
+ // Extract parameters
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
+ if (!permissionName) {
26
+ return {
27
+ Success: false,
28
+ ResultCode: 'VALIDATION_ERROR',
29
+ Message: 'PermissionName parameter is required'
30
+ };
31
+ }
32
+ // Validate permission type
33
+ const validTypes = ['Role', 'Authorization', 'EntityPermission'];
34
+ if (!validTypes.includes(permissionType)) {
35
+ return {
36
+ Success: false,
37
+ ResultCode: 'INVALID_PERMISSION_TYPE',
38
+ Message: `Invalid permission type. Must be one of: ${validTypes.join(', ')}`
39
+ };
40
+ }
41
+ const currentUser = params.ContextUser;
42
+ if (!currentUser && !userID) {
43
+ return {
44
+ Success: false,
45
+ ResultCode: 'PERMISSION_DENIED',
46
+ Message: 'No authenticated user context found and no UserID provided'
47
+ };
48
+ }
49
+ let hasPermission = false;
50
+ const userRoles = [];
51
+ // Check based on permission type
52
+ switch (permissionType) {
53
+ case 'Role':
54
+ // Get user's roles from UserCache
55
+ const cachedUser = sqlserver_dataprovider_1.UserCache.Users?.find(u => u.ID === userID);
56
+ if (cachedUser && cachedUser.UserRoles) {
57
+ cachedUser.UserRoles.forEach(ur => userRoles.push(ur.Role));
58
+ hasPermission = cachedUser.UserRoles.some(ur => ur.Role === permissionName);
59
+ }
60
+ break;
61
+ case 'Authorization':
62
+ // Check authorization roles
63
+ const authRv = new core_1.RunView();
64
+ const authResult = await authRv.RunView({
65
+ EntityName: 'Authorization Roles',
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
+ }, currentUser);
69
+ hasPermission = authResult.Success && authResult.Results && authResult.Results.length > 0;
70
+ break;
71
+ case 'EntityPermission':
72
+ // Use the Metadata API to check entity permissions properly
73
+ const md = new core_1.Metadata();
74
+ const entityInfo = md.EntityByName(permissionName);
75
+ if (!entityInfo) {
76
+ return {
77
+ Success: false,
78
+ ResultCode: 'ENTITY_NOT_FOUND',
79
+ Message: `Entity '${permissionName}' not found`
80
+ };
81
+ }
82
+ // Get user permissions for this entity - Note: MJCore has typo in method name
83
+ const userPermissions = entityInfo.GetUserPermisions(currentUser);
84
+ // For EntityPermission, check if user has any permission (for HasPermission output)
85
+ hasPermission = userPermissions.CanCreate || userPermissions.CanRead ||
86
+ userPermissions.CanUpdate || userPermissions.CanDelete;
87
+ // Add all CRUD permissions as output parameters
88
+ params.Params.push({
89
+ Name: 'CanCreate',
90
+ Value: userPermissions.CanCreate,
91
+ Type: 'Output'
92
+ }, {
93
+ Name: 'CanUpdate',
94
+ Value: userPermissions.CanUpdate,
95
+ Type: 'Output'
96
+ }, {
97
+ Name: 'CanRead',
98
+ Value: userPermissions.CanRead,
99
+ Type: 'Output'
100
+ }, {
101
+ Name: 'CanDelete',
102
+ Value: userPermissions.CanDelete,
103
+ Type: 'Output'
104
+ });
105
+ break;
106
+ }
107
+ // Add output parameters
108
+ params.Params.push({
109
+ Name: 'HasPermission',
110
+ Value: hasPermission,
111
+ Type: 'Output'
112
+ });
113
+ if (userRoles.length > 0) {
114
+ params.Params.push({
115
+ Name: 'UserRoles',
116
+ Value: userRoles,
117
+ Type: 'Output'
118
+ });
119
+ }
120
+ return {
121
+ Success: true,
122
+ ResultCode: hasPermission ? 'SUCCESS' : 'PERMISSION_DENIED',
123
+ Message: hasPermission
124
+ ? `User has required ${permissionType}: ${permissionName}`
125
+ : `User does not have required ${permissionType}: ${permissionName}`,
126
+ Params: params.Params
127
+ };
128
+ }
129
+ catch (e) {
130
+ return {
131
+ Success: false,
132
+ ResultCode: 'FAILED',
133
+ Message: `Error checking user permission: ${e.message}`
134
+ };
135
+ }
136
+ }
137
+ };
138
+ exports.CheckUserPermissionAction = CheckUserPermissionAction;
139
+ exports.CheckUserPermissionAction = CheckUserPermissionAction = __decorate([
140
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "CheckUserPermissionAction")
141
+ ], CheckUserPermissionAction);
142
+ function LoadCheckUserPermissionAction() {
143
+ // Prevent tree shaking
144
+ }
145
+ exports.LoadCheckUserPermissionAction = LoadCheckUserPermissionAction;
146
+ //# sourceMappingURL=check-user-permission.action.js.map
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,12 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { CreateRecordAction } from "../crud/create-record.action";
3
+ /**
4
+ * Creates a new employee record in the MemberJunction system.
5
+ * This action extends CreateRecordAction to leverage existing record creation functionality
6
+ * while adding employee-specific validation and business logic.
7
+ */
8
+ export declare class CreateEmployeeAction extends CreateRecordAction {
9
+ InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
10
+ }
11
+ export declare function LoadCreateEmployeeAction(): void;
12
+ //# sourceMappingURL=create-employee.action.d.ts.map
@@ -0,0 +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;IAClD,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0HhF;AAED,wBAAgB,wBAAwB,SAEvC"}
@@ -0,0 +1,139 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadCreateEmployeeAction = exports.CreateEmployeeAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const create_record_action_1 = require("../crud/create-record.action");
12
+ const actions_1 = require("@memberjunction/actions");
13
+ const core_1 = require("@memberjunction/core");
14
+ /**
15
+ * Creates a new employee record in the MemberJunction system.
16
+ * This action extends CreateRecordAction to leverage existing record creation functionality
17
+ * while adding employee-specific validation and business logic.
18
+ */
19
+ let CreateEmployeeAction = class CreateEmployeeAction extends create_record_action_1.CreateRecordAction {
20
+ async InternalRunAction(params) {
21
+ try {
22
+ // Extract employee-specific parameters
23
+ const email = params.Params.find(p => p.Name === 'Email')?.Value;
24
+ const firstName = params.Params.find(p => p.Name === 'FirstName')?.Value;
25
+ const lastName = params.Params.find(p => p.Name === 'LastName')?.Value;
26
+ const title = params.Params.find(p => p.Name === 'Title')?.Value;
27
+ const phone = params.Params.find(p => p.Name === 'Phone')?.Value;
28
+ const companyID = params.Params.find(p => p.Name === 'CompanyID')?.Value;
29
+ const supervisorID = params.Params.find(p => p.Name === 'SupervisorID')?.Value;
30
+ const active = params.Params.find(p => p.Name === 'Active')?.Value !== false;
31
+ // Validate required fields
32
+ if (!email || !firstName || !lastName || !companyID) {
33
+ return {
34
+ Success: false,
35
+ ResultCode: 'VALIDATION_ERROR',
36
+ Message: 'Email, FirstName, LastName, and CompanyID are required'
37
+ };
38
+ }
39
+ const rv = new core_1.RunView();
40
+ // Check if email already exists for another employee
41
+ const existingEmployee = await rv.RunView({
42
+ EntityName: 'Employees',
43
+ ExtraFilter: `Email='${email.replace(/'/g, "''")}'`,
44
+ ResultType: 'simple'
45
+ }, params.ContextUser);
46
+ if (existingEmployee.Success && existingEmployee.Results && existingEmployee.Results.length > 0) {
47
+ return {
48
+ Success: false,
49
+ ResultCode: 'EMAIL_EXISTS',
50
+ Message: `Email address '${email}' already exists for another employee`
51
+ };
52
+ }
53
+ // Validate company exists
54
+ const companyCheck = await rv.RunView({
55
+ EntityName: 'Companies',
56
+ ExtraFilter: `ID='${companyID}'`,
57
+ ResultType: 'simple'
58
+ }, params.ContextUser);
59
+ if (!companyCheck.Success || !companyCheck.Results || companyCheck.Results.length === 0) {
60
+ return {
61
+ Success: false,
62
+ ResultCode: 'INVALID_COMPANY',
63
+ Message: `Company ID '${companyID}' does not exist`
64
+ };
65
+ }
66
+ // Validate supervisor if provided
67
+ if (supervisorID) {
68
+ const supervisorCheck = await rv.RunView({
69
+ EntityName: 'Employees',
70
+ ExtraFilter: `ID='${supervisorID}'`,
71
+ ResultType: 'simple'
72
+ }, params.ContextUser);
73
+ if (!supervisorCheck.Success || !supervisorCheck.Results || supervisorCheck.Results.length === 0) {
74
+ return {
75
+ Success: false,
76
+ ResultCode: 'INVALID_SUPERVISOR',
77
+ Message: `Supervisor ID '${supervisorID}' does not exist`
78
+ };
79
+ }
80
+ }
81
+ // Prepare fields for base CreateRecordAction
82
+ const fields = {
83
+ FirstName: firstName,
84
+ LastName: lastName,
85
+ Email: email,
86
+ CompanyID: companyID,
87
+ Active: active
88
+ };
89
+ if (title)
90
+ fields.Title = title;
91
+ if (phone)
92
+ fields.Phone = phone;
93
+ if (supervisorID)
94
+ fields.SupervisorID = supervisorID;
95
+ // Transform parameters to match CreateRecordAction format
96
+ const createParams = {
97
+ ...params,
98
+ Params: [
99
+ { Name: 'EntityName', Value: 'Employees', Type: 'Input' },
100
+ { Name: 'Fields', Value: fields, Type: 'Input' }
101
+ ]
102
+ };
103
+ // Call parent CreateRecordAction
104
+ const result = await super.InternalRunAction(createParams);
105
+ if (result.Success) {
106
+ // Extract the created employee ID
107
+ const primaryKey = result.Params?.find(p => p.Name === 'PrimaryKey')?.Value;
108
+ if (primaryKey) {
109
+ params.Params.push({
110
+ Name: 'EmployeeID',
111
+ Value: primaryKey.ID,
112
+ Type: 'Output'
113
+ });
114
+ }
115
+ return {
116
+ ...result,
117
+ Params: params.Params
118
+ };
119
+ }
120
+ return result;
121
+ }
122
+ catch (e) {
123
+ return {
124
+ Success: false,
125
+ ResultCode: 'FAILED',
126
+ Message: `Error creating employee: ${e.message}`
127
+ };
128
+ }
129
+ }
130
+ };
131
+ exports.CreateEmployeeAction = CreateEmployeeAction;
132
+ exports.CreateEmployeeAction = CreateEmployeeAction = __decorate([
133
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "CreateEmployeeAction")
134
+ ], CreateEmployeeAction);
135
+ function LoadCreateEmployeeAction() {
136
+ // Prevent tree shaking
137
+ }
138
+ exports.LoadCreateEmployeeAction = LoadCreateEmployeeAction;
139
+ //# sourceMappingURL=create-employee.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-employee.action.js","sourceRoot":"","sources":["../../../src/custom/user-management/create-employee.action.ts"],"names":[],"mappings":";;;;;;;;;AACA,mDAAuD;AACvD,uEAAkE;AAClE,qDAAqD;AACrD,+CAA+C;AAE/C;;;;GAIG;AAEI,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,yCAAkB;IACxD,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QAC3C,IAAI,CAAC;YACD,uCAAuC;YACvC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,KAAe,CAAC;YAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,KAAe,CAAC;YACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,KAAe,CAAC;YACjF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,KAAe,CAAC;YAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,KAAe,CAAC;YAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,EAAE,KAAe,CAAC;YACnF,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,EAAE,KAAe,CAAC;YACzF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,KAAK,KAAK,KAAK,CAAC;YAE7E,2BAA2B;YAC3B,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClD,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,kBAAkB;oBAC9B,OAAO,EAAE,wDAAwD;iBACpE,CAAC;YACN,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,cAAO,EAAE,CAAC;YAEzB,qDAAqD;YACrD,MAAM,gBAAgB,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;gBACtC,UAAU,EAAE,WAAW;gBACvB,WAAW,EAAE,UAAU,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG;gBACnD,UAAU,EAAE,QAAQ;aACvB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAEvB,IAAI,gBAAgB,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9F,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,cAAc;oBAC1B,OAAO,EAAE,kBAAkB,KAAK,uCAAuC;iBAC1E,CAAC;YACN,CAAC;YAED,0BAA0B;YAC1B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;gBAClC,UAAU,EAAE,WAAW;gBACvB,WAAW,EAAE,OAAO,SAAS,GAAG;gBAChC,UAAU,EAAE,QAAQ;aACvB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;YAEvB,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtF,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,iBAAiB;oBAC7B,OAAO,EAAE,eAAe,SAAS,kBAAkB;iBACtD,CAAC;YACN,CAAC;YAED,kCAAkC;YAClC,IAAI,YAAY,EAAE,CAAC;gBACf,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC;oBACrC,UAAU,EAAE,WAAW;oBACvB,WAAW,EAAE,OAAO,YAAY,GAAG;oBACnC,UAAU,EAAE,QAAQ;iBACvB,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBAEvB,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/F,OAAO;wBACH,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,oBAAoB;wBAChC,OAAO,EAAE,kBAAkB,YAAY,kBAAkB;qBAC5D,CAAC;gBACN,CAAC;YACL,CAAC;YAED,6CAA6C;YAC7C,MAAM,MAAM,GAAwB;gBAChC,SAAS,EAAE,SAAS;gBACpB,QAAQ,EAAE,QAAQ;gBAClB,KAAK,EAAE,KAAK;gBACZ,SAAS,EAAE,SAAS;gBACpB,MAAM,EAAE,MAAM;aACjB,CAAC;YAEF,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAChC,IAAI,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAChC,IAAI,YAAY;gBAAE,MAAM,CAAC,YAAY,GAAG,YAAY,CAAC;YAErD,0DAA0D;YAC1D,MAAM,YAAY,GAAoB;gBAClC,GAAG,MAAM;gBACT,MAAM,EAAE;oBACJ,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;oBACzD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;iBACnD;aACJ,CAAC;YAEF,iCAAiC;YACjC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;YAE3D,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,kCAAkC;gBAClC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,KAA4B,CAAC;gBACnG,IAAI,UAAU,EAAE,CAAC;oBACb,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;wBACf,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,UAAU,CAAC,EAAE;wBACpB,IAAI,EAAE,QAAQ;qBACjB,CAAC,CAAC;gBACP,CAAC;gBAED,OAAO;oBACH,GAAG,MAAM;oBACT,MAAM,EAAE,MAAM,CAAC,MAAM;iBACxB,CAAC;YACN,CAAC;YAED,OAAO,MAAM,CAAC;QAElB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE,QAAQ;gBACpB,OAAO,EAAE,4BAA4B,CAAC,CAAC,OAAO,EAAE;aACnD,CAAC;QACN,CAAC;IACL,CAAC;CACJ,CAAA;AA3HY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,sBAAa,EAAC,oBAAU,EAAE,sBAAsB,CAAC;GACrC,oBAAoB,CA2HhC;AAED,SAAgB,wBAAwB;IACpC,uBAAuB;AAC3B,CAAC;AAFD,4DAEC"}
@@ -0,0 +1,12 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { CreateRecordAction } from "../crud/create-record.action";
3
+ /**
4
+ * Creates a new user in the MemberJunction system with validation and optional employee linking.
5
+ * This action extends CreateRecordAction to leverage existing record creation functionality
6
+ * while adding user-specific validation and business logic.
7
+ */
8
+ export declare class CreateUserAction extends CreateRecordAction {
9
+ InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
10
+ }
11
+ export declare function LoadCreateUserAction(): void;
12
+ //# sourceMappingURL=create-user.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-user.action.d.ts","sourceRoot":"","sources":["../../../src/custom/user-management/create-user.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKlE;;;;GAIG;AACH,qBACa,gBAAiB,SAAQ,kBAAkB;IAC9C,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiHhF;AAED,wBAAgB,oBAAoB,SAEnC"}
@@ -0,0 +1,130 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadCreateUserAction = exports.CreateUserAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const create_record_action_1 = require("../crud/create-record.action");
12
+ const actions_1 = require("@memberjunction/actions");
13
+ const core_1 = require("@memberjunction/core");
14
+ const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
15
+ /**
16
+ * Creates a new user in the MemberJunction system with validation and optional employee linking.
17
+ * This action extends CreateRecordAction to leverage existing record creation functionality
18
+ * while adding user-specific validation and business logic.
19
+ */
20
+ let CreateUserAction = class CreateUserAction extends create_record_action_1.CreateRecordAction {
21
+ async InternalRunAction(params) {
22
+ try {
23
+ // Extract user-specific parameters
24
+ const email = params.Params.find(p => p.Name === 'Email')?.Value;
25
+ const firstName = params.Params.find(p => p.Name === 'FirstName')?.Value;
26
+ const lastName = params.Params.find(p => p.Name === 'LastName')?.Value;
27
+ const title = params.Params.find(p => p.Name === 'Title')?.Value;
28
+ const type = params.Params.find(p => p.Name === 'Type')?.Value || 'User';
29
+ const isActive = params.Params.find(p => p.Name === 'IsActive')?.Value !== false;
30
+ const employeeID = params.Params.find(p => p.Name === 'EmployeeID')?.Value;
31
+ // Validate required fields
32
+ if (!email || !firstName || !lastName) {
33
+ return {
34
+ Success: false,
35
+ ResultCode: 'VALIDATION_ERROR',
36
+ Message: 'Email, FirstName, and LastName are required'
37
+ };
38
+ }
39
+ // Check if email already exists using UserCache
40
+ const existingUser = sqlserver_dataprovider_1.UserCache.Users?.find(u => u.Email?.toLowerCase() === email.toLowerCase());
41
+ if (existingUser) {
42
+ return {
43
+ Success: false,
44
+ ResultCode: 'EMAIL_EXISTS',
45
+ Message: `Email address '${email}' already exists in the system`
46
+ };
47
+ }
48
+ // Validate employee ID if provided
49
+ if (employeeID) {
50
+ const rv = new core_1.RunView();
51
+ const employeeCheck = await rv.RunView({
52
+ EntityName: 'Employees',
53
+ ExtraFilter: `ID='${employeeID}'`,
54
+ ResultType: 'simple'
55
+ }, params.ContextUser);
56
+ if (!employeeCheck.Success || !employeeCheck.Results || employeeCheck.Results.length === 0) {
57
+ return {
58
+ Success: false,
59
+ ResultCode: 'INVALID_EMPLOYEE',
60
+ Message: `Employee ID '${employeeID}' does not exist`
61
+ };
62
+ }
63
+ }
64
+ // Prepare fields for base CreateRecordAction
65
+ const fields = {
66
+ FirstName: firstName,
67
+ LastName: lastName,
68
+ Email: email,
69
+ Name: `${firstName} ${lastName}`,
70
+ Type: type,
71
+ IsActive: isActive
72
+ };
73
+ if (title)
74
+ fields.Title = title;
75
+ if (employeeID) {
76
+ fields.EmployeeID = employeeID;
77
+ fields.LinkedRecordType = 'Employee';
78
+ fields.LinkedEntityID = '@lookup:Entities.Name=Employees';
79
+ fields.LinkedEntityRecordID = employeeID;
80
+ }
81
+ // Transform parameters to match CreateRecordAction format
82
+ const createParams = {
83
+ ...params,
84
+ Params: [
85
+ { Name: 'EntityName', Value: 'Users', Type: 'Input' },
86
+ { Name: 'Fields', Value: fields, Type: 'Input' }
87
+ ]
88
+ };
89
+ // Call parent CreateRecordAction
90
+ const result = await super.InternalRunAction(createParams);
91
+ if (result.Success) {
92
+ // Extract the created user ID and add user-specific output parameters
93
+ const primaryKey = result.Params?.find(p => p.Name === 'PrimaryKey')?.Value;
94
+ if (primaryKey) {
95
+ params.Params.push({
96
+ Name: 'UserID',
97
+ Value: primaryKey.ID,
98
+ Type: 'Output'
99
+ });
100
+ params.Params.push({
101
+ Name: 'Name',
102
+ Value: fields.Name,
103
+ Type: 'Output'
104
+ });
105
+ }
106
+ return {
107
+ ...result,
108
+ Params: params.Params
109
+ };
110
+ }
111
+ return result;
112
+ }
113
+ catch (e) {
114
+ return {
115
+ Success: false,
116
+ ResultCode: 'FAILED',
117
+ Message: `Error creating user: ${e.message}`
118
+ };
119
+ }
120
+ }
121
+ };
122
+ exports.CreateUserAction = CreateUserAction;
123
+ exports.CreateUserAction = CreateUserAction = __decorate([
124
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "CreateUserAction")
125
+ ], CreateUserAction);
126
+ function LoadCreateUserAction() {
127
+ // Prevent tree shaking
128
+ }
129
+ exports.LoadCreateUserAction = LoadCreateUserAction;
130
+ //# sourceMappingURL=create-user.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-user.action.js","sourceRoot":"","sources":["../../../src/custom/user-management/create-user.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from '@memberjunction/actions';
3
+ /**
4
+ * Validates that an email address is not already in use by another user in the system.
5
+ * Returns information about any existing user with the same email.
6
+ */
7
+ export declare class ValidateEmailUniqueAction extends BaseAction {
8
+ InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
9
+ }
10
+ export declare function LoadValidateEmailUniqueAction(): void;
11
+ //# sourceMappingURL=validate-email-unique.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-email-unique.action.d.ts","sourceRoot":"","sources":["../../../src/custom/user-management/validate-email-unique.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD;;;GAGG;AACH,qBACa,yBAA0B,SAAQ,UAAU;IAC/C,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAiFhF;AAED,wBAAgB,6BAA6B,SAE5C"}
@@ -0,0 +1,97 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.LoadValidateEmailUniqueAction = exports.ValidateEmailUniqueAction = void 0;
10
+ const global_1 = require("@memberjunction/global");
11
+ const actions_1 = require("@memberjunction/actions");
12
+ const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
13
+ /**
14
+ * Validates that an email address is not already in use by another user in the system.
15
+ * Returns information about any existing user with the same email.
16
+ */
17
+ let ValidateEmailUniqueAction = class ValidateEmailUniqueAction extends actions_1.BaseAction {
18
+ async InternalRunAction(params) {
19
+ console.log('VALIDATE EMAIL UNIQUE ACTION - InternalRunAction called with params:', {
20
+ paramCount: params.Params.length,
21
+ params: params.Params.map(p => ({ Name: p.Name, Value: p.Value, Type: p.Type })),
22
+ contextUser: params.ContextUser?.Email
23
+ });
24
+ try {
25
+ // Extract email parameter
26
+ const email = params.Params.find(p => p.Name === 'Email')?.Value;
27
+ if (!email) {
28
+ return {
29
+ Success: false,
30
+ ResultCode: 'VALIDATION_ERROR',
31
+ Message: 'Email parameter is required'
32
+ };
33
+ }
34
+ // Basic email format validation
35
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
36
+ if (!emailRegex.test(email)) {
37
+ return {
38
+ Success: false,
39
+ ResultCode: 'INVALID_EMAIL_FORMAT',
40
+ Message: 'Invalid email address format'
41
+ };
42
+ }
43
+ // Check if email exists in UserCache
44
+ const existingUser = sqlserver_dataprovider_1.UserCache.Users?.find(u => u.Email?.toLowerCase() === email.toLowerCase());
45
+ let isUnique = true;
46
+ let existingUserID = null;
47
+ let existingUserName = null;
48
+ if (existingUser) {
49
+ isUnique = false;
50
+ existingUserID = existingUser.ID;
51
+ existingUserName = existingUser.Name;
52
+ }
53
+ // Add output parameters
54
+ params.Params.push({
55
+ Name: 'IsUnique',
56
+ Value: isUnique,
57
+ Type: 'Output'
58
+ });
59
+ if (!isUnique && existingUserID) {
60
+ params.Params.push({
61
+ Name: 'ExistingUserID',
62
+ Value: existingUserID,
63
+ Type: 'Output'
64
+ });
65
+ params.Params.push({
66
+ Name: 'ExistingUserName',
67
+ Value: existingUserName,
68
+ Type: 'Output'
69
+ });
70
+ }
71
+ return {
72
+ Success: true,
73
+ ResultCode: 'SUCCESS',
74
+ Message: isUnique
75
+ ? `Email '${email}' is available`
76
+ : `Email '${email}' is already in use by ${existingUserName}`,
77
+ Params: params.Params
78
+ };
79
+ }
80
+ catch (e) {
81
+ return {
82
+ Success: false,
83
+ ResultCode: 'FAILED',
84
+ Message: `Error validating email: ${e.message}`
85
+ };
86
+ }
87
+ }
88
+ };
89
+ exports.ValidateEmailUniqueAction = ValidateEmailUniqueAction;
90
+ exports.ValidateEmailUniqueAction = ValidateEmailUniqueAction = __decorate([
91
+ (0, global_1.RegisterClass)(actions_1.BaseAction, "ValidateEmailUniqueAction")
92
+ ], ValidateEmailUniqueAction);
93
+ function LoadValidateEmailUniqueAction() {
94
+ // Prevent tree shaking
95
+ }
96
+ exports.LoadValidateEmailUniqueAction = LoadValidateEmailUniqueAction;
97
+ //# sourceMappingURL=validate-email-unique.action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-email-unique.action.js","sourceRoot":"","sources":["../../../src/custom/user-management/validate-email-unique.action.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -43,5 +43,10 @@ export * from './custom/workflow/parallel-execute.action';
43
43
  export * from './custom/workflow/retry.action';
44
44
  export * from './custom/workflow/delay.action';
45
45
  export * from './custom/ai/execute-ai-prompt.action';
46
+ export * from './custom/user-management/check-user-permission.action';
47
+ export * from './custom/user-management/create-user.action';
48
+ export * from './custom/user-management/create-employee.action';
49
+ export * from './custom/user-management/assign-user-roles.action';
50
+ export * from './custom/user-management/validate-email-unique.action';
46
51
  export declare function LoadAllCoreActions(): void;
47
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAG9C,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,mCAAmC,CAAC;AAGlD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AAGjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAG7D,cAAc,4CAA4C,CAAC;AAG3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,sCAAsC,CAAC;AAkDrD,wBAAgB,kBAAkB,SAgDjC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAG9C,cAAc,mDAAmD,CAAC;AAClE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,6CAA6C,CAAC;AAG5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AAGnD,cAAc,kCAAkC,CAAC;AACjD,cAAc,sCAAsC,CAAC;AACrD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,sCAAsC,CAAC;AACrD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oDAAoD,CAAC;AACnE,cAAc,0CAA0C,CAAC;AACzD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,mCAAmC,CAAC;AAGlD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sCAAsC,CAAC;AACrD,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAG3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AAGjD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,oCAAoC,CAAC;AACnD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,wCAAwC,CAAC;AACvD,cAAc,8CAA8C,CAAC;AAG7D,cAAc,4CAA4C,CAAC;AAG3D,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,sCAAsC,CAAC;AAGrD,cAAc,uDAAuD,CAAC;AACtE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,mDAAmD,CAAC;AAClE,cAAc,uDAAuD,CAAC;AAuDtE,wBAAgB,kBAAkB,SAqDjC"}
package/dist/index.js CHANGED
@@ -71,6 +71,12 @@ __exportStar(require("./custom/workflow/retry.action"), exports);
71
71
  __exportStar(require("./custom/workflow/delay.action"), exports);
72
72
  // AI Actions
73
73
  __exportStar(require("./custom/ai/execute-ai-prompt.action"), exports);
74
+ // User Management Actions
75
+ __exportStar(require("./custom/user-management/check-user-permission.action"), exports);
76
+ __exportStar(require("./custom/user-management/create-user.action"), exports);
77
+ __exportStar(require("./custom/user-management/create-employee.action"), exports);
78
+ __exportStar(require("./custom/user-management/assign-user-roles.action"), exports);
79
+ __exportStar(require("./custom/user-management/validate-email-unique.action"), exports);
74
80
  // Import Load functions to prevent tree shaking of @RegisterClass decorators
75
81
  const send_single_message_action_1 = require("./custom/communication/send-single-message.action");
76
82
  const slack_webhook_action_1 = require("./custom/communication/slack-webhook.action");
@@ -116,6 +122,11 @@ const parallel_execute_action_1 = require("./custom/workflow/parallel-execute.ac
116
122
  const retry_action_1 = require("./custom/workflow/retry.action");
117
123
  const delay_action_1 = require("./custom/workflow/delay.action");
118
124
  const execute_ai_prompt_action_1 = require("./custom/ai/execute-ai-prompt.action");
125
+ const check_user_permission_action_1 = require("./custom/user-management/check-user-permission.action");
126
+ const create_user_action_1 = require("./custom/user-management/create-user.action");
127
+ const create_employee_action_1 = require("./custom/user-management/create-employee.action");
128
+ const assign_user_roles_action_1 = require("./custom/user-management/assign-user-roles.action");
129
+ const validate_email_unique_action_1 = require("./custom/user-management/validate-email-unique.action");
119
130
  const action_subclasses_1 = require("./generated/action_subclasses");
120
131
  const core_entities_server_1 = require("@memberjunction/core-entities-server");
121
132
  function LoadAllCoreActions() {
@@ -166,6 +177,11 @@ function LoadAllCoreActions() {
166
177
  (0, retry_action_1.LoadRetryAction)();
167
178
  (0, delay_action_1.LoadDelayAction)();
168
179
  (0, execute_ai_prompt_action_1.LoadExecuteAIPromptAction)();
180
+ (0, check_user_permission_action_1.LoadCheckUserPermissionAction)();
181
+ (0, create_user_action_1.LoadCreateUserAction)();
182
+ (0, create_employee_action_1.LoadCreateEmployeeAction)();
183
+ (0, assign_user_roles_action_1.LoadAssignUserRolesAction)();
184
+ (0, validate_email_unique_action_1.LoadValidateEmailUniqueAction)();
169
185
  }
170
186
  exports.LoadAllCoreActions = LoadAllCoreActions;
171
187
  // ensure that the core entities server sub-classes are loaded and not tree-shaken out
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gEAA8C;AAE9C,wBAAwB;AACxB,oFAAkE;AAClE,8EAA4D;AAC5D,8EAA4D;AAE5D,eAAe;AACf,qEAAmD;AACnD,kEAAgD;AAChD,qEAAmD;AACnD,qEAAmD;AAEnD,eAAe;AACf,mEAAiD;AACjD,uEAAqD;AACrD,4EAA0D;AAC1D,uEAAqD;AACrD,qEAAmD;AACnD,sEAAoD;AAEpD,kBAAkB;AAClB,6EAA2D;AAC3D,qFAAmE;AACnE,2EAAyD;AACzD,+EAA6D;AAC7D,sFAAoE;AACpE,oEAAkD;AAElD,cAAc;AACd,iEAA+C;AAC/C,uEAAqD;AACrD,yEAAuD;AACvD,6EAA2D;AAE3D,8BAA8B;AAC9B,kEAAgD;AAChD,sEAAoD;AACpD,kEAAgD;AAChD,sEAAoD;AACpD,mEAAiD;AAEjD,yBAAyB;AACzB,sEAAoD;AACpD,sEAAoD;AACpD,qEAAmD;AACnD,qEAAmD;AACnD,sEAAoD;AAEpD,sBAAsB;AACtB,2EAAyD;AACzD,4EAA0D;AAC1D,yEAAuD;AACvD,+EAA6D;AAE7D,mBAAmB;AACnB,6EAA2D;AAE3D,2BAA2B;AAC3B,uEAAqD;AACrD,gEAA8C;AAC9C,4EAA0D;AAC1D,iEAA+C;AAC/C,iEAA+C;AAE/C,aAAa;AACb,uEAAqD;AAErD,0BAA0B;AAC1B,wFAAsE;AACtE,8EAA4D;AAC5D,kFAAgE;AAChE,oFAAkE;AAClE,wFAAsE;AAEtE,6EAA6E;AAC7E,kGAAgG;AAChG,sFAAqF;AACrF,sFAAqF;AACrF,6EAA4E;AAC5E,uEAAsE;AACtE,6EAA4E;AAC5E,6EAA4E;AAC5E,yEAAwE;AACxE,iFAA+E;AAC/E,2FAA0F;AAC1F,iFAAgF;AAChF,6EAA4E;AAC5E,+EAA8E;AAC9E,wFAAuF;AACvF,wGAAsG;AACtG,oFAAmF;AACnF,4FAA0F;AAC1F,0GAAwG;AACxG,sEAAqE;AACrE,sEAAqE;AACrE,kFAAgF;AAChF,sFAAoF;AACpF,8FAA4F;AAC5F,uEAAsE;AACtE,+EAA8E;AAC9E,uEAAsE;AACtE,+EAA8E;AAC9E,yEAAwE;AACxE,8EAA6E;AAC7E,8EAA6E;AAC7E,4EAA2E;AAC3E,4EAA2E;AAC3E,8EAA6E;AAC7E,kFAAiF;AACjF,oFAAmF;AACnF,8EAA6E;AAC7E,0FAAwF;AACxF,yFAAwF;AACxF,6EAA6E;AAC7E,+DAA+D;AAC/D,uFAAsF;AACtF,iEAAiE;AACjE,iEAAiE;AACjE,mFAAiF;AACjF,wGAAsG;AACtG,oFAAmF;AACnF,4FAA2F;AAC3F,gGAA8F;AAC9F,wGAAsG;AACtG,qEAAqE;AACrE,+EAAwF;AAExF,SAAgB,kBAAkB;IAC9B,IAAA,wCAAoB,GAAE,CAAA;IACtB,sEAAsE;IACtE,8DAA8D;IAC9D,IAAA,wDAA2B,GAAE,CAAC;IAC9B,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,uCAAmB,GAAE,CAAC;IACtB,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,yCAAoB,GAAE,CAAC;IACvB,IAAA,gDAAuB,GAAE,CAAC;IAC1B,IAAA,2DAA6B,GAAE,CAAC;IAChC,IAAA,iDAAwB,GAAE,CAAC;IAC3B,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,+CAAuB,GAAE,CAAC;IAC1B,IAAA,mDAAyB,GAAE,CAAC;IAC5B,IAAA,kEAAgC,GAAE,CAAC;IACnC,IAAA,+CAAuB,GAAE,CAAC;IAC1B,IAAA,sDAA0B,GAAE,CAAC;IAC7B,IAAA,oEAAiC,GAAE,CAAC;IACpC,IAAA,iCAAgB,GAAE,CAAC;IACnB,IAAA,uCAAmB,GAAE,CAAC;IACtB,IAAA,kDAAwB,GAAE,CAAC;IAC3B,IAAA,sDAA0B,GAAE,CAAC;IAC7B,IAAA,8DAA8B,GAAE,CAAC;IACjC,IAAA,uCAAmB,GAAE,CAAC;IACtB,IAAA,+CAAuB,GAAE,CAAC;IAC1B,IAAA,uCAAmB,GAAE,CAAC;IACtB,IAAA,+CAAuB,GAAE,CAAC;IAC1B,IAAA,yCAAoB,GAAE,CAAC;IACvB,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,2CAAqB,GAAE,CAAC;IACxB,IAAA,2CAAqB,GAAE,CAAC;IACxB,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,2CAAqB,GAAE,CAAC;IACxB,IAAA,6CAAsB,GAAE,CAAC;IACzB,IAAA,uCAAmB,GAAE,CAAC;IACtB,IAAA,kDAAwB,GAAE,CAAC;IAC3B,IAAA,qDAA0B,GAAE,CAAC;IAC7B,IAAA,0CAAqB,GAAE,CAAC;IACxB,IAAA,4BAAc,GAAE,CAAC;IACjB,IAAA,mDAAyB,GAAE,CAAC;IAC5B,IAAA,8BAAe,GAAE,CAAC;IAClB,IAAA,8BAAe,GAAE,CAAC;IAClB,IAAA,oDAAyB,GAAE,CAAC;IAC5B,IAAA,4DAA6B,GAAE,CAAC;IAChC,IAAA,yCAAoB,GAAE,CAAC;IACvB,IAAA,iDAAwB,GAAE,CAAC;IAC3B,IAAA,oDAAyB,GAAE,CAAC;IAC5B,IAAA,4DAA6B,GAAE,CAAC;AACpC,CAAC;AArDD,gDAqDC;AAED,sFAAsF;AACtF,IAAA,uDAAgC,GAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/core-actions",
3
- "version": "2.80.1",
3
+ "version": "2.82.0",
4
4
  "description": "Library of generated and custom actions for the core MemberJunction framework. This library is maintained by MemberJunction and includes actions for use within the framework itself.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,16 +19,16 @@
19
19
  "typescript": "^5.4.5"
20
20
  },
21
21
  "dependencies": {
22
- "@memberjunction/global": "2.80.1",
23
- "@memberjunction/core": "2.80.1",
24
- "@memberjunction/core-entities": "2.80.1",
25
- "@memberjunction/core-entities-server": "2.80.1",
26
- "@memberjunction/ai-core-plus": "2.80.1",
27
- "@memberjunction/actions": "2.80.1",
28
- "@memberjunction/communication-engine": "2.80.1",
29
- "@memberjunction/external-change-detection": "2.80.1",
30
- "@memberjunction/ai-vector-sync": "2.80.1",
31
- "@memberjunction/content-autotagging": "2.80.1",
22
+ "@memberjunction/global": "2.82.0",
23
+ "@memberjunction/core": "2.82.0",
24
+ "@memberjunction/core-entities": "2.82.0",
25
+ "@memberjunction/core-entities-server": "2.82.0",
26
+ "@memberjunction/ai-core-plus": "2.82.0",
27
+ "@memberjunction/actions": "2.82.0",
28
+ "@memberjunction/communication-engine": "2.82.0",
29
+ "@memberjunction/external-change-detection": "2.82.0",
30
+ "@memberjunction/ai-vector-sync": "2.82.0",
31
+ "@memberjunction/content-autotagging": "2.82.0",
32
32
  "axios": "^1.6.8",
33
33
  "rxjs": "^7.8.1",
34
34
  "nunjucks": "^3.2.4",