dattatable 2.8.6 → 2.8.8
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/build/common/listSecurity.d.ts +14 -5
- package/build/common/listSecurity.js +89 -28
- package/dist/dattatable.js +1 -1
- package/dist/dattatable.min.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/AuditLog.html +13 -13
- package/docs/classes/CanvasForm.html +17 -17
- package/docs/classes/Comments.html +12 -12
- package/docs/classes/Dashboard.html +20 -20
- package/docs/classes/DataTable.html +12 -12
- package/docs/classes/Documents.html +45 -45
- package/docs/classes/FilterSlideout.html +14 -14
- package/docs/classes/Footer.html +4 -4
- package/docs/classes/Header.html +4 -4
- package/docs/classes/InstallationRequired.html +12 -12
- package/docs/classes/ItemForm.html +47 -47
- package/docs/classes/List.html +47 -47
- package/docs/classes/ListSecurity.html +53 -35
- package/docs/classes/LoadingDialog.html +12 -12
- package/docs/classes/Modal.html +26 -26
- package/docs/classes/Navigation.html +6 -6
- package/docs/classes/Timeout.html +7 -7
- package/docs/enums/ActionButtonTypes.html +6 -6
- package/docs/functions/formatBytes.html +2 -1
- package/docs/functions/formatDateValue.html +2 -1
- package/docs/functions/formatTimeValue.html +2 -1
- package/docs/functions/getFileExt.html +2 -1
- package/docs/index.html +1 -0
- package/docs/interfaces/IAuditLogItem.html +9 -9
- package/docs/interfaces/IAuditLogItemCreation.html +7 -7
- package/docs/interfaces/IAuditLogProps.html +5 -5
- package/docs/interfaces/IAuditLogViewProps.html +6 -6
- package/docs/interfaces/ICommentsItem.html +6 -6
- package/docs/interfaces/IDashboardProps.html +14 -14
- package/docs/interfaces/IDataTable.html +8 -8
- package/docs/interfaces/IDataTableProps.html +6 -6
- package/docs/interfaces/IDocumentsProps.html +25 -25
- package/docs/interfaces/IFilterItem.html +5 -5
- package/docs/interfaces/IFilterProps.html +4 -4
- package/docs/interfaces/IFooterProps.html +6 -6
- package/docs/interfaces/IHeaderProps.html +5 -5
- package/docs/interfaces/IInstallProps.html +4 -4
- package/docs/interfaces/IItemFormCreateProps.html +14 -14
- package/docs/interfaces/IItemFormEditProps.html +15 -15
- package/docs/interfaces/IItemFormTab.html +8 -8
- package/docs/interfaces/IItemFormTabInfo.html +3 -3
- package/docs/interfaces/IItemFormViewProps.html +12 -12
- package/docs/interfaces/IListProps.html +11 -11
- package/docs/interfaces/IListSecurity.html +122 -0
- package/docs/interfaces/IListSecurityItem.html +9 -9
- package/docs/interfaces/IShowDialogProps.html +7 -7
- package/docs/modules.html +2 -0
- package/docs/variables/DattaTable.html +2 -1
- package/package.json +1 -1
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
import { Types } from "gd-sprest-bs";
|
|
2
|
+
export interface IListSecurity {
|
|
3
|
+
createFl?: boolean;
|
|
4
|
+
listItems: IListSecurityItem[];
|
|
5
|
+
onGroupCreating?: (props: Types.SP.GroupCreationInformation) => Types.SP.GroupCreationInformation;
|
|
6
|
+
onGroupCreated?: (group: Types.SP.Group) => void;
|
|
7
|
+
webUrl?: string;
|
|
8
|
+
}
|
|
1
9
|
export interface IListSecurityItem {
|
|
2
|
-
|
|
10
|
+
group: Types.SP.GroupCreationInformation;
|
|
3
11
|
listName: string;
|
|
4
12
|
permission: number | string;
|
|
5
13
|
}
|
|
@@ -9,14 +17,15 @@ export interface IListSecurityItem {
|
|
|
9
17
|
*/
|
|
10
18
|
export declare class ListSecurity {
|
|
11
19
|
private _ddlItems;
|
|
12
|
-
private _listItems;
|
|
13
20
|
private _permissionTypes;
|
|
14
|
-
private
|
|
15
|
-
constructor(
|
|
21
|
+
private _props;
|
|
22
|
+
constructor(props: IListSecurity);
|
|
16
23
|
private configureList;
|
|
17
24
|
private configureLists;
|
|
18
|
-
private
|
|
25
|
+
private createGroups;
|
|
26
|
+
private _groups;
|
|
19
27
|
private getGroupId;
|
|
28
|
+
private setGroupId;
|
|
20
29
|
private renderModal;
|
|
21
30
|
private getPermissionTypes;
|
|
22
31
|
private resetPermissions;
|
|
@@ -10,18 +10,21 @@ var modal_1 = require("./modal");
|
|
|
10
10
|
*/
|
|
11
11
|
var ListSecurity = /** @class */ (function () {
|
|
12
12
|
// Constructor
|
|
13
|
-
function ListSecurity(
|
|
13
|
+
function ListSecurity(props) {
|
|
14
14
|
this._ddlItems = null;
|
|
15
|
-
this._listItems = null;
|
|
16
15
|
this._permissionTypes = null;
|
|
17
|
-
this.
|
|
16
|
+
this._props = null;
|
|
18
17
|
// Gets the group id
|
|
19
|
-
this.
|
|
18
|
+
this._groups = {};
|
|
20
19
|
// Save the properties
|
|
21
|
-
this.
|
|
22
|
-
this._webUrl = webUrl;
|
|
20
|
+
this._props = props;
|
|
23
21
|
// Get the permission types
|
|
24
22
|
this.getPermissionTypes();
|
|
23
|
+
// See if we are creating the groups
|
|
24
|
+
if (typeof (props.createFl) === "undefined" || props.createFl) {
|
|
25
|
+
// Create the groups
|
|
26
|
+
this.createGroups();
|
|
27
|
+
}
|
|
25
28
|
}
|
|
26
29
|
// Configures a list
|
|
27
30
|
ListSecurity.prototype.configureList = function (listInfo) {
|
|
@@ -32,13 +35,13 @@ var ListSecurity = /** @class */ (function () {
|
|
|
32
35
|
var permissionId = _this._permissionTypes[listInfo.permission];
|
|
33
36
|
if (permissionId > 0) {
|
|
34
37
|
// Get the group id
|
|
35
|
-
_this.getGroupId(listInfo.
|
|
38
|
+
_this.getGroupId(listInfo.group.Title).then(
|
|
36
39
|
// Exists
|
|
37
40
|
function (groupId) {
|
|
38
41
|
// Add the group to the list
|
|
39
|
-
(0, gd_sprest_bs_1.Web)(_this.
|
|
42
|
+
(0, gd_sprest_bs_1.Web)(_this._props.webUrl).Lists(listInfo.listName).RoleAssignments().addRoleAssignment(groupId, permissionId).execute(resolve, function () {
|
|
40
43
|
// Log to the console
|
|
41
|
-
console.error("[".concat(listInfo.listName, "] Error adding the group '").concat(listInfo.
|
|
44
|
+
console.error("[".concat(listInfo.listName, "] Error adding the group '").concat(listInfo.group.Title, "' with permission ").concat(listInfo.permission, " to the list."));
|
|
42
45
|
// Resolve the request
|
|
43
46
|
resolve();
|
|
44
47
|
});
|
|
@@ -46,7 +49,7 @@ var ListSecurity = /** @class */ (function () {
|
|
|
46
49
|
// Error
|
|
47
50
|
function () {
|
|
48
51
|
// Log to the console
|
|
49
|
-
console.error("[".concat(listInfo.listName, "] Site Group '").concat(listInfo.
|
|
52
|
+
console.error("[".concat(listInfo.listName, "] Site Group '").concat(listInfo.group.Title, "' doesn't exist"));
|
|
50
53
|
// Resolve the request
|
|
51
54
|
resolve();
|
|
52
55
|
});
|
|
@@ -79,46 +82,104 @@ var ListSecurity = /** @class */ (function () {
|
|
|
79
82
|
});
|
|
80
83
|
});
|
|
81
84
|
};
|
|
85
|
+
// Creates the security groups
|
|
86
|
+
ListSecurity.prototype.createGroups = function () {
|
|
87
|
+
var _this = this;
|
|
88
|
+
// Return a promise
|
|
89
|
+
return new Promise(function (resolve, reject) {
|
|
90
|
+
// Parse the list items
|
|
91
|
+
var data = {};
|
|
92
|
+
for (var i = 0; i < _this._props.listItems.length; i++) {
|
|
93
|
+
// Add the group name
|
|
94
|
+
data[_this._props.listItems[i].group.Title.toLowerCase()] = true;
|
|
95
|
+
}
|
|
96
|
+
// Get the group names
|
|
97
|
+
var groupNames = [];
|
|
98
|
+
for (var key in data) {
|
|
99
|
+
groupNames.push(key);
|
|
100
|
+
}
|
|
101
|
+
// Parse the group names
|
|
102
|
+
gd_sprest_bs_1.Helper.Executor(groupNames, function (groupName) {
|
|
103
|
+
// Return a promise
|
|
104
|
+
return new Promise(function (resolve) {
|
|
105
|
+
// Get the group
|
|
106
|
+
_this.getGroupId(groupName).then(
|
|
107
|
+
// Group exists
|
|
108
|
+
function (group) {
|
|
109
|
+
// Check the next group
|
|
110
|
+
resolve(group);
|
|
111
|
+
},
|
|
112
|
+
// Group doesn't exist
|
|
113
|
+
function () {
|
|
114
|
+
// Create the properties
|
|
115
|
+
var props = {
|
|
116
|
+
Title: groupName
|
|
117
|
+
};
|
|
118
|
+
// Call the event if it exists
|
|
119
|
+
props = _this._props.onGroupCreating ? _this._props.onGroupCreating(props) : props;
|
|
120
|
+
// Create the group
|
|
121
|
+
(0, gd_sprest_bs_1.Web)(_this._props.webUrl).SiteGroups().add(props).execute(
|
|
122
|
+
// Successfully created the group
|
|
123
|
+
function (group) {
|
|
124
|
+
// Set the group id
|
|
125
|
+
_this.setGroupId(groupName.toLowerCase(), group);
|
|
126
|
+
// Call the event
|
|
127
|
+
_this._props.onGroupCreated ? _this._props.onGroupCreated(group) : null;
|
|
128
|
+
// Check the next group
|
|
129
|
+
resolve(group);
|
|
130
|
+
},
|
|
131
|
+
// Error creating the group
|
|
132
|
+
function () {
|
|
133
|
+
// Log to the console
|
|
134
|
+
console.error("Site Group '".concat(groupName, "' was unable to be created."));
|
|
135
|
+
// Check the next group
|
|
136
|
+
resolve(null);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
};
|
|
82
143
|
ListSecurity.prototype.getGroupId = function (groupName) {
|
|
83
144
|
var _this = this;
|
|
84
145
|
// Return a promise
|
|
85
146
|
return new Promise(function (resolve, reject) {
|
|
86
147
|
var key = groupName.toLowerCase();
|
|
87
148
|
// See if we have already have it
|
|
88
|
-
if (_this.
|
|
149
|
+
if (_this._groups[key]) {
|
|
89
150
|
// Resolve the request
|
|
90
|
-
resolve(_this.
|
|
151
|
+
resolve(_this._groups[key].Id);
|
|
91
152
|
return;
|
|
92
153
|
}
|
|
93
|
-
// Saves the group information
|
|
94
|
-
var saveGroupInfo = function (group) {
|
|
95
|
-
// Save the info
|
|
96
|
-
_this._groupIds[key] = group.Id;
|
|
97
|
-
// Resolve the request
|
|
98
|
-
resolve(group.Id);
|
|
99
|
-
};
|
|
100
154
|
// Get the group information
|
|
101
155
|
switch (key) {
|
|
102
156
|
// Default owner's group
|
|
103
157
|
case "owner":
|
|
104
|
-
(0, gd_sprest_bs_1.Web)(_this.
|
|
158
|
+
(0, gd_sprest_bs_1.Web)(_this._props.webUrl).AssociatedOwnerGroup().execute(function (group) { resolve(_this.setGroupId(key, group)); }, reject);
|
|
105
159
|
break;
|
|
106
160
|
// Default member's group
|
|
107
161
|
case "member":
|
|
108
|
-
(0, gd_sprest_bs_1.Web)(_this.
|
|
162
|
+
(0, gd_sprest_bs_1.Web)(_this._props.webUrl).AssociatedMemberGroup().execute(function (group) { resolve(_this.setGroupId(key, group)); }, reject);
|
|
109
163
|
break;
|
|
110
164
|
// Default visitor's group
|
|
111
165
|
case "visitor":
|
|
112
|
-
(0, gd_sprest_bs_1.Web)(_this.
|
|
166
|
+
(0, gd_sprest_bs_1.Web)(_this._props.webUrl).AssociatedVisitorGroup().execute(function (group) { resolve(_this.setGroupId(key, group)); }, reject);
|
|
113
167
|
break;
|
|
114
168
|
// Default
|
|
115
169
|
default:
|
|
116
170
|
// Get the group
|
|
117
|
-
(0, gd_sprest_bs_1.Web)(_this.
|
|
171
|
+
(0, gd_sprest_bs_1.Web)(_this._props.webUrl).SiteGroups().getByName(groupName).execute(function (group) { resolve(_this.setGroupId(key, group)); }, reject);
|
|
118
172
|
break;
|
|
119
173
|
}
|
|
120
174
|
});
|
|
121
175
|
};
|
|
176
|
+
// Saves the group information
|
|
177
|
+
ListSecurity.prototype.setGroupId = function (key, group) {
|
|
178
|
+
// Save the info
|
|
179
|
+
this._groups[key] = group;
|
|
180
|
+
// Return the group id
|
|
181
|
+
return group.Id;
|
|
182
|
+
};
|
|
122
183
|
// Render the modal
|
|
123
184
|
ListSecurity.prototype.renderModal = function () {
|
|
124
185
|
var _this = this;
|
|
@@ -128,8 +189,8 @@ var ListSecurity = /** @class */ (function () {
|
|
|
128
189
|
modal_1.Modal.setHeader("List Security");
|
|
129
190
|
// Parse the lists
|
|
130
191
|
var rows = [];
|
|
131
|
-
for (var i = 0; i < this.
|
|
132
|
-
var listItem = this.
|
|
192
|
+
for (var i = 0; i < this._props.listItems.length; i++) {
|
|
193
|
+
var listItem = this._props.listItems[i];
|
|
133
194
|
// Add the row
|
|
134
195
|
rows.push({
|
|
135
196
|
isAutoSized: true,
|
|
@@ -147,7 +208,7 @@ var ListSecurity = /** @class */ (function () {
|
|
|
147
208
|
name: "groupName_" + i,
|
|
148
209
|
label: "Group Name",
|
|
149
210
|
type: gd_sprest_bs_1.Components.FormControlTypes.Readonly,
|
|
150
|
-
value: listItem.
|
|
211
|
+
value: listItem.group.Title
|
|
151
212
|
}
|
|
152
213
|
},
|
|
153
214
|
{
|
|
@@ -196,7 +257,7 @@ var ListSecurity = /** @class */ (function () {
|
|
|
196
257
|
for (var i = 0; i < rows.length; i++) {
|
|
197
258
|
// Add the list information
|
|
198
259
|
lists.push({
|
|
199
|
-
|
|
260
|
+
group: { Title: tableData["groupName_" + i] },
|
|
200
261
|
listName: tableData["listName_" + i],
|
|
201
262
|
permission: tableData["permission_" + i]
|
|
202
263
|
});
|
|
@@ -251,7 +312,7 @@ var ListSecurity = /** @class */ (function () {
|
|
|
251
312
|
return new Promise(function (resolve) {
|
|
252
313
|
// Parse the list keys
|
|
253
314
|
for (var listName in lists) {
|
|
254
|
-
var list = (0, gd_sprest_bs_1.Web)(_this.
|
|
315
|
+
var list = (0, gd_sprest_bs_1.Web)(_this._props.webUrl).Lists(listName);
|
|
255
316
|
// Reset the permissions
|
|
256
317
|
list.resetRoleInheritance().execute();
|
|
257
318
|
// Revert to the default
|
package/dist/dattatable.js
CHANGED
|
@@ -115,7 +115,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
115
115
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
116
116
|
|
|
117
117
|
"use strict";
|
|
118
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ListSecurity = void 0;\r\nvar gd_sprest_bs_1 = __webpack_require__(/*! gd-sprest-bs */ \"./node_modules/.pnpm/gd-sprest-bs@10.10.59/node_modules/gd-sprest-bs/build/index.js\");\r\nvar loadingDialog_1 = __webpack_require__(/*! ./loadingDialog */ \"./build/common/loadingDialog.js\");\r\nvar modal_1 = __webpack_require__(/*! ./modal */ \"./build/common/modal.js\");\r\n/**\r\n * List Security\r\n * This component is used for setting the security group/permissions for a list.\r\n */\r\nvar ListSecurity = /** @class */ (function () {\r\n // Constructor\r\n function ListSecurity(listItems, webUrl) {\r\n this._ddlItems = null;\r\n this._listItems = null;\r\n this._permissionTypes = null;\r\n this._webUrl = null;\r\n // Gets the group id\r\n this._groupIds = {};\r\n // Save the properties\r\n this._listItems = listItems;\r\n this._webUrl = webUrl;\r\n // Get the permission types\r\n this.getPermissionTypes();\r\n }\r\n // Configures a list\r\n ListSecurity.prototype.configureList = function (listInfo) {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Ensure a permission exists\r\n var permissionId = _this._permissionTypes[listInfo.permission];\r\n if (permissionId > 0) {\r\n // Get the group id\r\n _this.getGroupId(listInfo.groupName).then(\r\n // Exists\r\n function (groupId) {\r\n // Add the group to the list\r\n (0, gd_sprest_bs_1.Web)(_this._webUrl).Lists(listInfo.listName).RoleAssignments().addRoleAssignment(groupId, permissionId).execute(resolve, function () {\r\n // Log to the console\r\n console.error(\"[\".concat(listInfo.listName, \"] Error adding the group '\").concat(listInfo.groupName, \"' with permission \").concat(listInfo.permission, \" to the list.\"));\r\n // Resolve the request\r\n resolve();\r\n });\r\n }, \r\n // Error\r\n function () {\r\n // Log to the console\r\n console.error(\"[\".concat(listInfo.listName, \"] Site Group '\").concat(listInfo.groupName, \"' doesn't exist\"));\r\n // Resolve the request\r\n resolve();\r\n });\r\n }\r\n else {\r\n // Resolve the request\r\n resolve();\r\n }\r\n });\r\n };\r\n // Configures the lists\r\n ListSecurity.prototype.configureLists = function (lists) {\r\n var _this = this;\r\n var counter = 0;\r\n // Show a loading dialog\r\n loadingDialog_1.LoadingDialog.setHeader(\"Configuring Lists\");\r\n loadingDialog_1.LoadingDialog.setBody(\"This will close after the lists are configured...\");\r\n loadingDialog_1.LoadingDialog.show();\r\n // Reset the lists\r\n this.resetPermissions(lists).then(function () {\r\n // Parse the lists\r\n gd_sprest_bs_1.Helper.Executor(lists, function (list) {\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Update the loading dialog\r\n loadingDialog_1.LoadingDialog.setBody(\"Configuring \".concat(++counter, \" of \").concat(lists.length, \" lists...\"));\r\n // Configure the list\r\n _this.configureList(list).then(resolve);\r\n });\r\n });\r\n });\r\n };\r\n ListSecurity.prototype.getGroupId = function (groupName) {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve, reject) {\r\n var key = groupName.toLowerCase();\r\n // See if we have already have it\r\n if (_this._groupIds[key]) {\r\n // Resolve the request\r\n resolve(_this._groupIds[key]);\r\n return;\r\n }\r\n // Saves the group information\r\n var saveGroupInfo = function (group) {\r\n // Save the info\r\n _this._groupIds[key] = group.Id;\r\n // Resolve the request\r\n resolve(group.Id);\r\n };\r\n // Get the group information\r\n switch (key) {\r\n // Default owner's group\r\n case \"owner\":\r\n (0, gd_sprest_bs_1.Web)(_this._webUrl).AssociatedOwnerGroup().execute(saveGroupInfo, reject);\r\n break;\r\n // Default member's group\r\n case \"member\":\r\n (0, gd_sprest_bs_1.Web)(_this._webUrl).AssociatedMemberGroup().execute(saveGroupInfo, reject);\r\n break;\r\n // Default visitor's group\r\n case \"visitor\":\r\n (0, gd_sprest_bs_1.Web)(_this._webUrl).AssociatedVisitorGroup().execute(saveGroupInfo, reject);\r\n break;\r\n // Default\r\n default:\r\n // Get the group\r\n (0, gd_sprest_bs_1.Web)(_this._webUrl).SiteGroups().getByName(groupName).execute(saveGroupInfo, reject);\r\n break;\r\n }\r\n });\r\n };\r\n // Render the modal\r\n ListSecurity.prototype.renderModal = function () {\r\n var _this = this;\r\n // Clear the modal\r\n modal_1.Modal.clear();\r\n // Set the header\r\n modal_1.Modal.setHeader(\"List Security\");\r\n // Parse the lists\r\n var rows = [];\r\n for (var i = 0; i < this._listItems.length; i++) {\r\n var listItem = this._listItems[i];\r\n // Add the row\r\n rows.push({\r\n isAutoSized: true,\r\n columns: [\r\n {\r\n control: {\r\n name: \"listName_\" + i,\r\n label: \"List Name\",\r\n type: gd_sprest_bs_1.Components.FormControlTypes.Readonly,\r\n value: listItem.listName\r\n }\r\n },\r\n {\r\n control: {\r\n name: \"groupName_\" + i,\r\n label: \"Group Name\",\r\n type: gd_sprest_bs_1.Components.FormControlTypes.Readonly,\r\n value: listItem.groupName\r\n }\r\n },\r\n {\r\n control: {\r\n name: \"permission_\" + i,\r\n label: \"Permission\",\r\n type: gd_sprest_bs_1.Components.FormControlTypes.Dropdown,\r\n items: this._ddlItems,\r\n required: true,\r\n value: listItem.permission\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n // Render the form\r\n var form = gd_sprest_bs_1.Components.Form({\r\n el: modal_1.Modal.BodyElement,\r\n rows: rows\r\n });\r\n // Render the footer\r\n gd_sprest_bs_1.Components.TooltipGroup({\r\n el: modal_1.Modal.FooterElement,\r\n tooltips: [\r\n {\r\n content: \"Closes the modal\",\r\n btnProps: {\r\n text: \"Cancel\",\r\n type: gd_sprest_bs_1.Components.ButtonTypes.OutlineDanger,\r\n onClick: function () {\r\n // Close the modal\r\n modal_1.Modal.hide();\r\n }\r\n }\r\n },\r\n {\r\n content: \"Configures the security for the lists.\",\r\n btnProps: {\r\n text: \"Configure\",\r\n type: gd_sprest_bs_1.Components.ButtonTypes.OutlinePrimary,\r\n onClick: function () {\r\n var lists = [];\r\n // Get the form values\r\n var tableData = form.getValues();\r\n // Parse the # of rows\r\n for (var i = 0; i < rows.length; i++) {\r\n // Add the list information\r\n lists.push({\r\n groupName: tableData[\"groupName_\" + i],\r\n listName: tableData[\"listName_\" + i],\r\n permission: tableData[\"permission_\" + i]\r\n });\r\n }\r\n // Configure the lists\r\n _this.configureLists(lists);\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n // Show the modal\r\n modal_1.Modal.show();\r\n };\r\n // Get the permission types\r\n ListSecurity.prototype.getPermissionTypes = function () {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Get the definitions\r\n (0, gd_sprest_bs_1.Web)().RoleDefinitions().query({\r\n OrderBy: [\"Name\"]\r\n }).execute(function (roleDefs) {\r\n // Clear the permissions and items\r\n _this._ddlItems = [{ text: \"No Permission\" }];\r\n _this._permissionTypes = {};\r\n // Parse the role definitions\r\n for (var i = 0; i < roleDefs.results.length; i++) {\r\n var roleDef = roleDefs.results[i];\r\n // Add the role and item\r\n var value = roleDef.RoleTypeKind > 0 ? roleDef.RoleTypeKind : roleDef.Name;\r\n _this._permissionTypes[value] = roleDef.Id;\r\n _this._ddlItems.push({\r\n data: roleDef,\r\n text: roleDef.Name,\r\n value: value.toString()\r\n });\r\n }\r\n });\r\n });\r\n };\r\n // Reset list permissions\r\n ListSecurity.prototype.resetPermissions = function (listItems) {\r\n var _this = this;\r\n // Parse the lists\r\n var lists = {};\r\n for (var i = 0; i < listItems.length; i++) {\r\n // Add the list\r\n lists[listItems[i].listName] = true;\r\n }\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Parse the list keys\r\n for (var listName in lists) {\r\n var list = (0, gd_sprest_bs_1.Web)(_this._webUrl).Lists(listName);\r\n // Reset the permissions\r\n list.resetRoleInheritance().execute();\r\n // Revert to the default\r\n list.breakRoleInheritance(false, true).execute(true);\r\n // Wait for the requests to complete\r\n list.done(resolve);\r\n }\r\n });\r\n };\r\n // Shows the modal\r\n ListSecurity.prototype.show = function () {\r\n var _this = this;\r\n // Ensure the permissions are loaded\r\n var loopId = setInterval(function () {\r\n // See if the permissions exist\r\n if (_this._ddlItems && _this._permissionTypes) {\r\n // Show the modal\r\n _this.renderModal();\r\n // Stop the loop\r\n clearInterval(loopId);\r\n }\r\n }, 10);\r\n };\r\n return ListSecurity;\r\n}());\r\nexports.ListSecurity = ListSecurity;\r\n\n\n//# sourceURL=webpack://dattatable/./build/common/listSecurity.js?");
|
|
118
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ListSecurity = void 0;\r\nvar gd_sprest_bs_1 = __webpack_require__(/*! gd-sprest-bs */ \"./node_modules/.pnpm/gd-sprest-bs@10.10.59/node_modules/gd-sprest-bs/build/index.js\");\r\nvar loadingDialog_1 = __webpack_require__(/*! ./loadingDialog */ \"./build/common/loadingDialog.js\");\r\nvar modal_1 = __webpack_require__(/*! ./modal */ \"./build/common/modal.js\");\r\n/**\r\n * List Security\r\n * This component is used for setting the security group/permissions for a list.\r\n */\r\nvar ListSecurity = /** @class */ (function () {\r\n // Constructor\r\n function ListSecurity(props) {\r\n this._ddlItems = null;\r\n this._permissionTypes = null;\r\n this._props = null;\r\n // Gets the group id\r\n this._groups = {};\r\n // Save the properties\r\n this._props = props;\r\n // Get the permission types\r\n this.getPermissionTypes();\r\n // See if we are creating the groups\r\n if (typeof (props.createFl) === \"undefined\" || props.createFl) {\r\n // Create the groups\r\n this.createGroups();\r\n }\r\n }\r\n // Configures a list\r\n ListSecurity.prototype.configureList = function (listInfo) {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Ensure a permission exists\r\n var permissionId = _this._permissionTypes[listInfo.permission];\r\n if (permissionId > 0) {\r\n // Get the group id\r\n _this.getGroupId(listInfo.group.Title).then(\r\n // Exists\r\n function (groupId) {\r\n // Add the group to the list\r\n (0, gd_sprest_bs_1.Web)(_this._props.webUrl).Lists(listInfo.listName).RoleAssignments().addRoleAssignment(groupId, permissionId).execute(resolve, function () {\r\n // Log to the console\r\n console.error(\"[\".concat(listInfo.listName, \"] Error adding the group '\").concat(listInfo.group.Title, \"' with permission \").concat(listInfo.permission, \" to the list.\"));\r\n // Resolve the request\r\n resolve();\r\n });\r\n }, \r\n // Error\r\n function () {\r\n // Log to the console\r\n console.error(\"[\".concat(listInfo.listName, \"] Site Group '\").concat(listInfo.group.Title, \"' doesn't exist\"));\r\n // Resolve the request\r\n resolve();\r\n });\r\n }\r\n else {\r\n // Resolve the request\r\n resolve();\r\n }\r\n });\r\n };\r\n // Configures the lists\r\n ListSecurity.prototype.configureLists = function (lists) {\r\n var _this = this;\r\n var counter = 0;\r\n // Show a loading dialog\r\n loadingDialog_1.LoadingDialog.setHeader(\"Configuring Lists\");\r\n loadingDialog_1.LoadingDialog.setBody(\"This will close after the lists are configured...\");\r\n loadingDialog_1.LoadingDialog.show();\r\n // Reset the lists\r\n this.resetPermissions(lists).then(function () {\r\n // Parse the lists\r\n gd_sprest_bs_1.Helper.Executor(lists, function (list) {\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Update the loading dialog\r\n loadingDialog_1.LoadingDialog.setBody(\"Configuring \".concat(++counter, \" of \").concat(lists.length, \" lists...\"));\r\n // Configure the list\r\n _this.configureList(list).then(resolve);\r\n });\r\n });\r\n });\r\n };\r\n // Creates the security groups\r\n ListSecurity.prototype.createGroups = function () {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve, reject) {\r\n // Parse the list items\r\n var data = {};\r\n for (var i = 0; i < _this._props.listItems.length; i++) {\r\n // Add the group name\r\n data[_this._props.listItems[i].group.Title.toLowerCase()] = true;\r\n }\r\n // Get the group names\r\n var groupNames = [];\r\n for (var key in data) {\r\n groupNames.push(key);\r\n }\r\n // Parse the group names\r\n gd_sprest_bs_1.Helper.Executor(groupNames, function (groupName) {\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Get the group\r\n _this.getGroupId(groupName).then(\r\n // Group exists\r\n function (group) {\r\n // Check the next group\r\n resolve(group);\r\n }, \r\n // Group doesn't exist\r\n function () {\r\n // Create the properties\r\n var props = {\r\n Title: groupName\r\n };\r\n // Call the event if it exists\r\n props = _this._props.onGroupCreating ? _this._props.onGroupCreating(props) : props;\r\n // Create the group\r\n (0, gd_sprest_bs_1.Web)(_this._props.webUrl).SiteGroups().add(props).execute(\r\n // Successfully created the group\r\n function (group) {\r\n // Set the group id\r\n _this.setGroupId(groupName.toLowerCase(), group);\r\n // Call the event\r\n _this._props.onGroupCreated ? _this._props.onGroupCreated(group) : null;\r\n // Check the next group\r\n resolve(group);\r\n }, \r\n // Error creating the group\r\n function () {\r\n // Log to the console\r\n console.error(\"Site Group '\".concat(groupName, \"' was unable to be created.\"));\r\n // Check the next group\r\n resolve(null);\r\n });\r\n });\r\n });\r\n });\r\n });\r\n };\r\n ListSecurity.prototype.getGroupId = function (groupName) {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve, reject) {\r\n var key = groupName.toLowerCase();\r\n // See if we have already have it\r\n if (_this._groups[key]) {\r\n // Resolve the request\r\n resolve(_this._groups[key].Id);\r\n return;\r\n }\r\n // Get the group information\r\n switch (key) {\r\n // Default owner's group\r\n case \"owner\":\r\n (0, gd_sprest_bs_1.Web)(_this._props.webUrl).AssociatedOwnerGroup().execute(function (group) { resolve(_this.setGroupId(key, group)); }, reject);\r\n break;\r\n // Default member's group\r\n case \"member\":\r\n (0, gd_sprest_bs_1.Web)(_this._props.webUrl).AssociatedMemberGroup().execute(function (group) { resolve(_this.setGroupId(key, group)); }, reject);\r\n break;\r\n // Default visitor's group\r\n case \"visitor\":\r\n (0, gd_sprest_bs_1.Web)(_this._props.webUrl).AssociatedVisitorGroup().execute(function (group) { resolve(_this.setGroupId(key, group)); }, reject);\r\n break;\r\n // Default\r\n default:\r\n // Get the group\r\n (0, gd_sprest_bs_1.Web)(_this._props.webUrl).SiteGroups().getByName(groupName).execute(function (group) { resolve(_this.setGroupId(key, group)); }, reject);\r\n break;\r\n }\r\n });\r\n };\r\n // Saves the group information\r\n ListSecurity.prototype.setGroupId = function (key, group) {\r\n // Save the info\r\n this._groups[key] = group;\r\n // Return the group id\r\n return group.Id;\r\n };\r\n // Render the modal\r\n ListSecurity.prototype.renderModal = function () {\r\n var _this = this;\r\n // Clear the modal\r\n modal_1.Modal.clear();\r\n // Set the header\r\n modal_1.Modal.setHeader(\"List Security\");\r\n // Parse the lists\r\n var rows = [];\r\n for (var i = 0; i < this._props.listItems.length; i++) {\r\n var listItem = this._props.listItems[i];\r\n // Add the row\r\n rows.push({\r\n isAutoSized: true,\r\n columns: [\r\n {\r\n control: {\r\n name: \"listName_\" + i,\r\n label: \"List Name\",\r\n type: gd_sprest_bs_1.Components.FormControlTypes.Readonly,\r\n value: listItem.listName\r\n }\r\n },\r\n {\r\n control: {\r\n name: \"groupName_\" + i,\r\n label: \"Group Name\",\r\n type: gd_sprest_bs_1.Components.FormControlTypes.Readonly,\r\n value: listItem.group.Title\r\n }\r\n },\r\n {\r\n control: {\r\n name: \"permission_\" + i,\r\n label: \"Permission\",\r\n type: gd_sprest_bs_1.Components.FormControlTypes.Dropdown,\r\n items: this._ddlItems,\r\n required: true,\r\n value: listItem.permission\r\n }\r\n }\r\n ]\r\n });\r\n }\r\n // Render the form\r\n var form = gd_sprest_bs_1.Components.Form({\r\n el: modal_1.Modal.BodyElement,\r\n rows: rows\r\n });\r\n // Render the footer\r\n gd_sprest_bs_1.Components.TooltipGroup({\r\n el: modal_1.Modal.FooterElement,\r\n tooltips: [\r\n {\r\n content: \"Closes the modal\",\r\n btnProps: {\r\n text: \"Cancel\",\r\n type: gd_sprest_bs_1.Components.ButtonTypes.OutlineDanger,\r\n onClick: function () {\r\n // Close the modal\r\n modal_1.Modal.hide();\r\n }\r\n }\r\n },\r\n {\r\n content: \"Configures the security for the lists.\",\r\n btnProps: {\r\n text: \"Configure\",\r\n type: gd_sprest_bs_1.Components.ButtonTypes.OutlinePrimary,\r\n onClick: function () {\r\n var lists = [];\r\n // Get the form values\r\n var tableData = form.getValues();\r\n // Parse the # of rows\r\n for (var i = 0; i < rows.length; i++) {\r\n // Add the list information\r\n lists.push({\r\n group: { Title: tableData[\"groupName_\" + i] },\r\n listName: tableData[\"listName_\" + i],\r\n permission: tableData[\"permission_\" + i]\r\n });\r\n }\r\n // Configure the lists\r\n _this.configureLists(lists);\r\n }\r\n }\r\n }\r\n ]\r\n });\r\n // Show the modal\r\n modal_1.Modal.show();\r\n };\r\n // Get the permission types\r\n ListSecurity.prototype.getPermissionTypes = function () {\r\n var _this = this;\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Get the definitions\r\n (0, gd_sprest_bs_1.Web)().RoleDefinitions().query({\r\n OrderBy: [\"Name\"]\r\n }).execute(function (roleDefs) {\r\n // Clear the permissions and items\r\n _this._ddlItems = [{ text: \"No Permission\" }];\r\n _this._permissionTypes = {};\r\n // Parse the role definitions\r\n for (var i = 0; i < roleDefs.results.length; i++) {\r\n var roleDef = roleDefs.results[i];\r\n // Add the role and item\r\n var value = roleDef.RoleTypeKind > 0 ? roleDef.RoleTypeKind : roleDef.Name;\r\n _this._permissionTypes[value] = roleDef.Id;\r\n _this._ddlItems.push({\r\n data: roleDef,\r\n text: roleDef.Name,\r\n value: value.toString()\r\n });\r\n }\r\n });\r\n });\r\n };\r\n // Reset list permissions\r\n ListSecurity.prototype.resetPermissions = function (listItems) {\r\n var _this = this;\r\n // Parse the lists\r\n var lists = {};\r\n for (var i = 0; i < listItems.length; i++) {\r\n // Add the list\r\n lists[listItems[i].listName] = true;\r\n }\r\n // Return a promise\r\n return new Promise(function (resolve) {\r\n // Parse the list keys\r\n for (var listName in lists) {\r\n var list = (0, gd_sprest_bs_1.Web)(_this._props.webUrl).Lists(listName);\r\n // Reset the permissions\r\n list.resetRoleInheritance().execute();\r\n // Revert to the default\r\n list.breakRoleInheritance(false, true).execute(true);\r\n // Wait for the requests to complete\r\n list.done(resolve);\r\n }\r\n });\r\n };\r\n // Shows the modal\r\n ListSecurity.prototype.show = function () {\r\n var _this = this;\r\n // Ensure the permissions are loaded\r\n var loopId = setInterval(function () {\r\n // See if the permissions exist\r\n if (_this._ddlItems && _this._permissionTypes) {\r\n // Show the modal\r\n _this.renderModal();\r\n // Stop the loop\r\n clearInterval(loopId);\r\n }\r\n }, 10);\r\n };\r\n return ListSecurity;\r\n}());\r\nexports.ListSecurity = ListSecurity;\r\n\n\n//# sourceURL=webpack://dattatable/./build/common/listSecurity.js?");
|
|
119
119
|
|
|
120
120
|
/***/ }),
|
|
121
121
|
|