@memberjunction/core-entities 2.7.0 → 2.8.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.
@@ -0,0 +1,53 @@
1
+ import { BaseEngine, UserInfo } from "@memberjunction/core";
2
+ import { ResourcePermissionEntity, ResourceTypeEntity } from "../../generated/entity_subclasses";
3
+ /**
4
+ * Resource Permission Engine is used for accessing metadata about permissions for resources and also determining if a user has access to a resource and at what level.
5
+ */
6
+ export declare class ResourcePermissionEngine extends BaseEngine<ResourcePermissionEngine> {
7
+ /**
8
+ * Returns the global instance of the class. This is a singleton class, so there is only one instance of it in the application. Do not directly create new instances of it, always use this method to get the instance.
9
+ */
10
+ static get Instance(): ResourcePermissionEngine;
11
+ private _Permissions;
12
+ private _ResourceTypes;
13
+ Config(forceRefresh?: boolean, contextUser?: UserInfo): Promise<void>;
14
+ get ResourceTypes(): ResourceTypeEntity[];
15
+ get Permissions(): ResourcePermissionEntity[];
16
+ /**
17
+ * Convenience method to find all of the permissions for a given Resource Type and Resource Record ID, no additional filtering takes place in this method regarding
18
+ * the status or level of the permission.
19
+ * @param ResourceTypeID
20
+ * @param ResourceRecordID
21
+ * @returns
22
+ */
23
+ GetResourcePermissions(ResourceTypeID: string, ResourceRecordID: string): ResourcePermissionEntity[];
24
+ /**
25
+ * Determines the highest level of resource permission a user has for a specific resource.
26
+ * This function checks both user-specific permissions and permissions assigned through roles
27
+ * and returns the highest level of permission ('View', 'Edit', 'Owner', or `null` if no permission is found).
28
+ * Note: This only returns ResourcePermissionEntity objects that have Status === Approved.
29
+ *
30
+ * @param {string} ResourceTypeID - The ID of the resource type (e.g., document, project).
31
+ * @param {string} ResourceRecordID - The ID of the specific resource record.
32
+ * @param {UserInfo} user - The user object containing user details, including roles and ID.
33
+ *
34
+ * @returns {'View' | 'Edit' | 'Owner' | null} - The highest permission level the user has for the resource,
35
+ * or `null` if no permission exists.
36
+ *
37
+ * Permission Levels:
38
+ * - 'Owner': Full control over the resource.
39
+ * - 'Edit': Can modify the resource.
40
+ * - 'View': Can only view the resource.
41
+ * - `null`: No permissions found for the user on this resource.
42
+ */
43
+ GetUserResourcePermissionLevel(ResourceTypeID: string, ResourceRecordID: string, user: UserInfo): 'View' | 'Edit' | 'Owner' | null;
44
+ /**
45
+ * Returns all the permissions a user has for a specific resource type based on both their user-specific permissions and permissions assigned through roles.
46
+ * This only returns ResourcePermissionEntity objects that have Status === Approved.
47
+ * @param user
48
+ * @param ResourceTypeID
49
+ * @returns
50
+ */
51
+ GetUserAvailableResources(user: UserInfo, ResourceTypeID?: string): ResourcePermissionEntity[];
52
+ }
53
+ //# sourceMappingURL=ResourcePermissionEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourcePermissionEngine.d.ts","sourceRoot":"","sources":["../../../src/custom/ResourcePermissions/ResourcePermissionEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA4B,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEjG;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,UAAU,CAAC,wBAAwB,CAAC;IAC9E;;OAEG;IACH,WAAkB,QAAQ,IAAI,wBAAwB,CAErD;IAED,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,cAAc,CAEpB;IACW,MAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,QAAQ;IAiBlE,IAAW,aAAa,IAAI,kBAAkB,EAAE,CAE/C;IAED,IAAW,WAAW,IAAI,wBAAwB,EAAE,CAEnD;IAGD;;;;;;OAMG;IACI,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,wBAAwB,EAAE;IAI3G;;;;;;;;;;;;;;;;;;OAkBG;IACI,8BAA8B,CACjC,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,QAAQ,GACf,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI;IAiCnC;;;;;;OAMG;IACI,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,wBAAwB,EAAE;CAsCxG"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ResourcePermissionEngine = void 0;
4
+ const core_1 = require("@memberjunction/core");
5
+ /**
6
+ * Resource Permission Engine is used for accessing metadata about permissions for resources and also determining if a user has access to a resource and at what level.
7
+ */
8
+ class ResourcePermissionEngine extends core_1.BaseEngine {
9
+ /**
10
+ * Returns the global instance of the class. This is a singleton class, so there is only one instance of it in the application. Do not directly create new instances of it, always use this method to get the instance.
11
+ */
12
+ static get Instance() {
13
+ return super.getInstance();
14
+ }
15
+ async Config(forceRefresh, contextUser) {
16
+ const c = [
17
+ {
18
+ Type: 'entity',
19
+ EntityName: 'Resource Permissions',
20
+ PropertyName: "_Permissions"
21
+ },
22
+ {
23
+ Type: 'dataset',
24
+ DatasetName: 'ResourceTypes',
25
+ PropertyName: "_ResourceTypes",
26
+ DatasetResultHandling: "single_property"
27
+ }
28
+ ];
29
+ await this.Load(c, forceRefresh, contextUser);
30
+ }
31
+ get ResourceTypes() {
32
+ return this._ResourceTypes.ResourceTypes;
33
+ }
34
+ get Permissions() {
35
+ return this._Permissions;
36
+ }
37
+ /**
38
+ * Convenience method to find all of the permissions for a given Resource Type and Resource Record ID, no additional filtering takes place in this method regarding
39
+ * the status or level of the permission.
40
+ * @param ResourceTypeID
41
+ * @param ResourceRecordID
42
+ * @returns
43
+ */
44
+ GetResourcePermissions(ResourceTypeID, ResourceRecordID) {
45
+ return this.Permissions.filter((r) => r.ResourceTypeID === ResourceTypeID && r.ResourceRecordID === ResourceRecordID);
46
+ }
47
+ /**
48
+ * Determines the highest level of resource permission a user has for a specific resource.
49
+ * This function checks both user-specific permissions and permissions assigned through roles
50
+ * and returns the highest level of permission ('View', 'Edit', 'Owner', or `null` if no permission is found).
51
+ * Note: This only returns ResourcePermissionEntity objects that have Status === Approved.
52
+ *
53
+ * @param {string} ResourceTypeID - The ID of the resource type (e.g., document, project).
54
+ * @param {string} ResourceRecordID - The ID of the specific resource record.
55
+ * @param {UserInfo} user - The user object containing user details, including roles and ID.
56
+ *
57
+ * @returns {'View' | 'Edit' | 'Owner' | null} - The highest permission level the user has for the resource,
58
+ * or `null` if no permission exists.
59
+ *
60
+ * Permission Levels:
61
+ * - 'Owner': Full control over the resource.
62
+ * - 'Edit': Can modify the resource.
63
+ * - 'View': Can only view the resource.
64
+ * - `null`: No permissions found for the user on this resource.
65
+ */
66
+ GetUserResourcePermissionLevel(ResourceTypeID, ResourceRecordID, user) {
67
+ // Get all permissions for the specified resource
68
+ const allPermissions = this.GetResourcePermissions(ResourceTypeID, ResourceRecordID);
69
+ // Filter permissions specifically granted to the user
70
+ const userPermissions = allPermissions.filter((p) => p.Type === 'User' && p.UserID === user.ID);
71
+ // Filter permissions granted through roles the user belongs to
72
+ const rolePermissions = allPermissions.filter((p) => p.Type === 'Role' &&
73
+ user.UserRoles.find(ur => ur.RoleID === p.RoleID) !== undefined);
74
+ // Combine user-specific permissions and role-based permissions
75
+ const allPermissionsForUser = userPermissions.concat(rolePermissions);
76
+ const approvedPermissionsForUser = allPermissionsForUser.filter((p) => p.Status === 'Approved');
77
+ // If no permissions are found, return null
78
+ if (approvedPermissionsForUser.length === 0) {
79
+ return null;
80
+ }
81
+ else {
82
+ // Reduce permissions to find the highest permission level ('Owner' > 'Edit' > 'View')
83
+ return approvedPermissionsForUser.reduce((prev, current) => {
84
+ if (current.PermissionLevel === 'Owner') {
85
+ return 'Owner'; // 'Owner' has the highest priority
86
+ }
87
+ else if (current.PermissionLevel === 'Edit' && (prev === 'View' || prev === null)) {
88
+ return 'Edit'; // 'Edit' has a higher priority than 'View'
89
+ }
90
+ else {
91
+ return prev; // Keep the previous lower priority permission ('View' or null)
92
+ }
93
+ }, 'View');
94
+ }
95
+ }
96
+ /**
97
+ * Returns all the permissions a user has for a specific resource type based on both their user-specific permissions and permissions assigned through roles.
98
+ * This only returns ResourcePermissionEntity objects that have Status === Approved.
99
+ * @param user
100
+ * @param ResourceTypeID
101
+ * @returns
102
+ */
103
+ GetUserAvailableResources(user, ResourceTypeID) {
104
+ let rolePermissions = this.Permissions.filter((r) => r.Type === 'Role' && user.UserRoles.find(ur => ur.RoleID === r.RoleID) !== undefined);
105
+ let permissions = this.Permissions.filter((r) => r.Type === 'User' && r.UserID === user.ID);
106
+ if (ResourceTypeID) {
107
+ permissions = permissions.filter((r) => r.ResourceTypeID === ResourceTypeID);
108
+ rolePermissions = rolePermissions.filter((r) => r.ResourceTypeID === ResourceTypeID);
109
+ }
110
+ permissions = permissions.concat(rolePermissions);
111
+ // now filter to ONLY approved permissions
112
+ permissions = permissions.filter((r) => r.Status === 'Approved');
113
+ // now, we reduce the array so that we only have the highest permission level for each resourcetypeid/resourcerecordid combination
114
+ let reducedPermissions = [];
115
+ permissions.forEach((p) => {
116
+ let existing = reducedPermissions.find((r) => r.ResourceTypeID === p.ResourceTypeID && r.ResourceRecordID === p.ResourceRecordID);
117
+ if (!existing) {
118
+ reducedPermissions.push(p);
119
+ }
120
+ else {
121
+ // existing permission and see if this one is higher, if so, replace it in the array with the new one
122
+ let bSwap = false;
123
+ if (p.PermissionLevel === 'Owner' && existing.PermissionLevel !== 'Owner') {
124
+ bSwap = true;
125
+ }
126
+ else if (p.PermissionLevel === 'Edit' && existing.PermissionLevel === 'View') {
127
+ bSwap = true;
128
+ }
129
+ if (bSwap) {
130
+ // get rid of the existing permission
131
+ reducedPermissions = reducedPermissions.filter((r) => r !== existing);
132
+ // add the new permission
133
+ reducedPermissions.push(p);
134
+ }
135
+ }
136
+ });
137
+ return reducedPermissions;
138
+ }
139
+ }
140
+ exports.ResourcePermissionEngine = ResourcePermissionEngine;
141
+ //# sourceMappingURL=ResourcePermissionEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResourcePermissionEngine.js","sourceRoot":"","sources":["../../../src/custom/ResourcePermissions/ResourcePermissionEngine.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,37 @@ export declare class UserViewEntityExtended extends UserViewEntity {
27
27
  get ViewSortInfo(): ViewSortInfo[];
28
28
  get OrderByClause(): string;
29
29
  LoadFromData(data: any): boolean;
30
+ /**
31
+ * This property determines if the specified user can edit the view object. All of the below assumes the user has base Create/Update permissions on the "User Views" entity.
32
+ * The flow of the logic is:
33
+ * 1) The view is a new record, by definition the user can edit this because it is new
34
+ * 2) The user is the owner of the current view - e.g. UserID in the view record matches the ID of the user provided, allowed
35
+ * 3) The user is a sysadmin (Type === 'Owner' in the User object), allowed
36
+ * 4) If neither of the above conditions are met, the Resource Permissions are checked to see if the user, directly or via Roles, has either Edit or Owner permissions on the current view
37
+ * @returns
38
+ */
39
+ get UserCanEdit(): boolean;
40
+ private _cachedCanUserEdit;
41
+ /**
42
+ * This property determines if the specified user can delete the view object. All of the below assumes the user has base Delete permissions on the "User Views" entity.
43
+ * The flow of the logic is:
44
+ * 1) The view is a new record, by definition the user can't delete this because it is new
45
+ * 2) The user is the owner of the current view - e.g. UserID in the view record matches the ID of the user provided, allowed
46
+ * 3) The user is a sysadmin (Type === 'Owner' in the User object), allowed
47
+ * 4) If neither of the above conditions are met, the Resource Permissions are checked to see if the user, directly or via Roles, has OWNER permissions on the current view
48
+ */
49
+ get UserCanDelete(): boolean;
50
+ private _cachedUserCanDelete;
51
+ protected ResetCachedCanUserSettings(): void;
52
+ private CalculateUserCanDelete;
53
+ private CalculateUserCanEdit;
54
+ /**
55
+ * Returns the ID of the Resource Type metadata record that corresponds to the User Views entity
56
+ */
57
+ get ViewResourceTypeID(): string;
58
+ private _ViewResourceTypeID;
30
59
  Load(ID: string, EntityRelationshipsToLoad?: string[]): Promise<boolean>;
60
+ Delete(): Promise<boolean>;
31
61
  Save(options?: EntitySaveOptions): Promise<boolean>;
32
62
  SetDefaultsFromEntity(e: EntityInfo): Promise<void>;
33
63
  NewRecord(): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"UserViewEntity.d.ts","sourceRoot":"","sources":["../../src/custom/UserViewEntity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserViewEntity.d.ts","sourceRoot":"","sources":["../../src/custom/UserViewEntity.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,14 @@ exports.ViewGridState = exports.ViewSortInfo = exports.ViewSortDirectionInfo = e
10
10
  const global_1 = require("@memberjunction/global");
11
11
  const core_1 = require("@memberjunction/core");
12
12
  const entity_subclasses_1 = require("../generated/entity_subclasses");
13
+ const ResourcePermissionEngine_1 = require("./ResourcePermissions/ResourcePermissionEngine");
13
14
  let UserViewEntityExtended = class UserViewEntityExtended extends entity_subclasses_1.UserViewEntity {
14
15
  constructor() {
15
16
  super(...arguments);
16
17
  this._ViewEntityInfo = null;
18
+ this._cachedCanUserEdit = null;
19
+ this._cachedUserCanDelete = null;
20
+ this._ViewResourceTypeID = null;
17
21
  }
18
22
  /**
19
23
  * This is a read-only property that returns the filters for this view. This information
@@ -109,6 +113,90 @@ let UserViewEntityExtended = class UserViewEntityExtended extends entity_subclas
109
113
  }
110
114
  return super.LoadFromData(data);
111
115
  }
116
+ /**
117
+ * This property determines if the specified user can edit the view object. All of the below assumes the user has base Create/Update permissions on the "User Views" entity.
118
+ * The flow of the logic is:
119
+ * 1) The view is a new record, by definition the user can edit this because it is new
120
+ * 2) The user is the owner of the current view - e.g. UserID in the view record matches the ID of the user provided, allowed
121
+ * 3) The user is a sysadmin (Type === 'Owner' in the User object), allowed
122
+ * 4) If neither of the above conditions are met, the Resource Permissions are checked to see if the user, directly or via Roles, has either Edit or Owner permissions on the current view
123
+ * @returns
124
+ */
125
+ get UserCanEdit() {
126
+ if (this._cachedCanUserEdit === null) {
127
+ this._cachedCanUserEdit = this.CalculateUserCanEdit();
128
+ }
129
+ return this._cachedCanUserEdit;
130
+ }
131
+ /**
132
+ * This property determines if the specified user can delete the view object. All of the below assumes the user has base Delete permissions on the "User Views" entity.
133
+ * The flow of the logic is:
134
+ * 1) The view is a new record, by definition the user can't delete this because it is new
135
+ * 2) The user is the owner of the current view - e.g. UserID in the view record matches the ID of the user provided, allowed
136
+ * 3) The user is a sysadmin (Type === 'Owner' in the User object), allowed
137
+ * 4) If neither of the above conditions are met, the Resource Permissions are checked to see if the user, directly or via Roles, has OWNER permissions on the current view
138
+ */
139
+ get UserCanDelete() {
140
+ if (this._cachedUserCanDelete === null) {
141
+ this._cachedUserCanDelete = this.CalculateUserCanDelete();
142
+ }
143
+ return this._cachedUserCanDelete;
144
+ }
145
+ ResetCachedCanUserSettings() {
146
+ this._cachedCanUserEdit = null;
147
+ this._cachedUserCanDelete = null;
148
+ }
149
+ CalculateUserCanDelete() {
150
+ if (!this.IsSaved)
151
+ return false; // new records can't be deleted
152
+ else {
153
+ // EXISTING record in the database
154
+ // check to see if the current user is the OWNER of this view via the UserID property in the record, if there's a match, the user OWNS this views
155
+ const md = new core_1.Metadata();
156
+ const user = this.ContextCurrentUser || md.CurrentUser; // take the context current user if it is set, otherwise use the global current user
157
+ if (this.UserID === user.ID || user.Type.trim().toLowerCase() === 'owner') {
158
+ return this.CheckPermissions(core_1.EntityPermissionType.Delete, false); // exsiting records OWNED by current user, can be edited so long as we have Update permissions;
159
+ }
160
+ else {
161
+ // if the user is not an admin, and they are NOT the owner of the view, we check the permissions on the resource
162
+ const perms = ResourcePermissionEngine_1.ResourcePermissionEngine.Instance.GetUserResourcePermissionLevel(this.ViewResourceTypeID, this.ID, user);
163
+ return perms === 'Owner'; // this is the only level that can delete a view
164
+ }
165
+ }
166
+ }
167
+ CalculateUserCanEdit() {
168
+ if (!this.IsSaved) {
169
+ return this.CheckPermissions(core_1.EntityPermissionType.Create, false); // new records an be edited so long as we have Create permissions
170
+ }
171
+ else {
172
+ // EXISTING record in the database
173
+ // check to see if the current user is the OWNER of this view via the UserID property in the record, if there's a match, the user OWNS this views
174
+ // so of course they can save it
175
+ const md = new core_1.Metadata();
176
+ const user = this.ContextCurrentUser || md.CurrentUser; // take the context current user if it is set, otherwise use the global current user
177
+ if (this.UserID === user.ID || user.Type.trim().toLowerCase() === 'owner') {
178
+ return this.CheckPermissions(core_1.EntityPermissionType.Update, false); // exsiting records OWNED by current user, can be edited so long as we have Update permissions;
179
+ }
180
+ else {
181
+ // if the user is not an admin, and they are NOT the owner of the view, we check the permissions on the resource
182
+ const perms = ResourcePermissionEngine_1.ResourcePermissionEngine.Instance.GetUserResourcePermissionLevel(this.ViewResourceTypeID, this.ID, user);
183
+ return perms === 'Owner' || perms === 'Edit'; // these are the only two levels that can save a view
184
+ }
185
+ }
186
+ }
187
+ /**
188
+ * Returns the ID of the Resource Type metadata record that corresponds to the User Views entity
189
+ */
190
+ get ViewResourceTypeID() {
191
+ if (!this._ViewResourceTypeID) {
192
+ const rt = ResourcePermissionEngine_1.ResourcePermissionEngine.Instance.ResourceTypes;
193
+ const rtUV = rt.find(r => r.Entity === 'User Views');
194
+ if (!rtUV)
195
+ throw new Error('Unable to find Resource Type for User Views entity');
196
+ this._ViewResourceTypeID = rtUV.ID;
197
+ }
198
+ return this._ViewResourceTypeID;
199
+ }
112
200
  async Load(ID, EntityRelationshipsToLoad) {
113
201
  // first load up the view info, use the superclass to do this
114
202
  const result = await super.Load(ID, EntityRelationshipsToLoad);
@@ -121,20 +209,59 @@ let UserViewEntityExtended = class UserViewEntityExtended extends entity_subclas
121
209
  else
122
210
  throw new Error('Unable to find entity info for entity ID: ' + this.EntityID);
123
211
  }
212
+ this.ResetCachedCanUserSettings();
124
213
  return result;
125
214
  }
215
+ async Delete() {
216
+ if (this.UserCanDelete) {
217
+ // if we get here, the user can delete the view, so we delete it
218
+ if (super.Delete()) {
219
+ this.ResetCachedCanUserSettings();
220
+ return true;
221
+ }
222
+ else
223
+ return false;
224
+ }
225
+ else {
226
+ // if we get here, the user can't delete the view, so we don't delete it, add a last error and return false
227
+ const res = new core_1.BaseEntityResult();
228
+ res.Success = false;
229
+ res.Message = 'User does not have permission to delete this view';
230
+ res.StartedAt = new Date();
231
+ res.EndedAt = new Date();
232
+ this.ResultHistory.push(res);
233
+ return false;
234
+ }
235
+ }
126
236
  async Save(options) {
127
- // we want to preprocess the Save() call because we need to regenerate the WhereClause in some situations
128
- if (!this.ID ||
129
- options?.IgnoreDirtyState ||
130
- this.Fields.find(c => c.Name.toLowerCase() == 'filterstate')?.Dirty ||
131
- this.Fields.find(c => c.Name.toLowerCase() == 'smartfilterenabled')?.Dirty ||
132
- this.Fields.find(c => c.Name.toLowerCase() == 'smartfilterprompt')?.Dirty) {
133
- // either we're ignoring dirty state or the filter state is dirty, so we need to update the where clause
134
- await this.UpdateWhereClause(options?.IgnoreDirtyState);
237
+ if (this.UserCanEdit) {
238
+ // we want to preprocess the Save() call because we need to regenerate the WhereClause in some situations
239
+ if (!this.ID ||
240
+ options?.IgnoreDirtyState ||
241
+ this.Fields.find(c => c.Name.toLowerCase() == 'filterstate')?.Dirty ||
242
+ this.Fields.find(c => c.Name.toLowerCase() == 'smartfilterenabled')?.Dirty ||
243
+ this.Fields.find(c => c.Name.toLowerCase() == 'smartfilterprompt')?.Dirty) {
244
+ // either we're ignoring dirty state or the filter state is dirty, so we need to update the where clause
245
+ await this.UpdateWhereClause(options?.IgnoreDirtyState);
246
+ }
247
+ // now call our superclass to do the actual save()
248
+ if (super.Save(options)) {
249
+ this.ResetCachedCanUserSettings();
250
+ return true;
251
+ }
252
+ else
253
+ return false;
254
+ }
255
+ else {
256
+ // if we get here, the user can't edit the view, so we don't save it, add a last error and return false
257
+ const res = new core_1.BaseEntityResult();
258
+ res.Success = false;
259
+ res.Message = this.ID ? 'User does not have permission to edit this view' : 'User does not have permission to create a new view';
260
+ res.StartedAt = new Date();
261
+ res.EndedAt = new Date();
262
+ this.ResultHistory.push(res);
263
+ return false;
135
264
  }
136
- // now just call our superclass to do the actual save()
137
- return super.Save(options);
138
265
  }
139
266
  async SetDefaultsFromEntity(e) {
140
267
  this.EntityID = e.ID;
@@ -176,6 +303,7 @@ let UserViewEntityExtended = class UserViewEntityExtended extends entity_subclas
176
303
  this.CustomWhereClause = false;
177
304
  //this.SmartFilterEnabled = false;
178
305
  }
306
+ this.ResetCachedCanUserSettings();
179
307
  return result;
180
308
  }
181
309
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"UserViewEntity.js","sourceRoot":"","sources":["../../src/custom/UserViewEntity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UserViewEntity.js","sourceRoot":"","sources":["../../src/custom/UserViewEntity.ts"],"names":[],"mappings":"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"}