@pnp/cli-microsoft365
Version:
Manage Microsoft 365 and SharePoint Framework projects on any platform
117 lines • 5.13 kB
JavaScript
/**
* Specifies a set of built-in permissions.
* See: https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.basepermissions.aspx
*/
export class BasePermissions {
constructor() {
this._high = 0;
this._low = 0;
}
get high() {
return this._high;
}
set high(value) {
this._high = value;
}
get low() {
return this._low;
}
set low(value) {
this._low = value;
}
parse() {
const result = [];
for (const permissionKind in PermissionKind) {
if (this.has(PermissionKind[permissionKind])) {
result.push(permissionKind);
}
}
return result;
}
has(perm) {
let hasPermission = false;
if (perm === PermissionKind.FullMask) {
hasPermission = (this.high & 32767) === 32767 && this.low === 65535;
}
let a = perm;
a = a - 1;
let b = 1;
if (a >= 0 && a < 32) {
b = b << a;
hasPermission = 0 !== (this.low & b);
}
else if (a >= 32 && a < 64) {
b = b << a - 32;
hasPermission = (0 !== (this.high & b));
}
return hasPermission;
}
set(perm) {
if (perm === PermissionKind.FullMask) {
this._low = 65535;
this._high = 32767;
}
else if (perm === PermissionKind.EmptyMask) {
this._low = 0;
this._high = 0;
}
else {
const num1 = (perm - 1);
const num2 = 1;
if (num1 >= 0 && num1 < 32) {
this._low = this._low | num2 << num1;
}
else {
if (num1 < 32 || num1 >= 64) {
return;
}
this._high = this._high | num2 << num1 - 32;
}
}
}
}
/**
* Specifies permissions that are used to define user roles.
* See: https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.permissionkind.aspx
*/
export var PermissionKind;
(function (PermissionKind) {
PermissionKind[PermissionKind["EmptyMask"] = 0] = "EmptyMask";
PermissionKind[PermissionKind["ViewListItems"] = 1] = "ViewListItems";
PermissionKind[PermissionKind["AddListItems"] = 2] = "AddListItems";
PermissionKind[PermissionKind["EditListItems"] = 3] = "EditListItems";
PermissionKind[PermissionKind["DeleteListItems"] = 4] = "DeleteListItems";
PermissionKind[PermissionKind["ApproveItems"] = 5] = "ApproveItems";
PermissionKind[PermissionKind["OpenItems"] = 6] = "OpenItems";
PermissionKind[PermissionKind["ViewVersions"] = 7] = "ViewVersions";
PermissionKind[PermissionKind["DeleteVersions"] = 8] = "DeleteVersions";
PermissionKind[PermissionKind["CancelCheckout"] = 9] = "CancelCheckout";
PermissionKind[PermissionKind["ManagePersonalViews"] = 10] = "ManagePersonalViews";
PermissionKind[PermissionKind["ManageLists"] = 12] = "ManageLists";
PermissionKind[PermissionKind["ViewFormPages"] = 13] = "ViewFormPages";
PermissionKind[PermissionKind["AnonymousSearchAccessList"] = 14] = "AnonymousSearchAccessList";
PermissionKind[PermissionKind["Open"] = 17] = "Open";
PermissionKind[PermissionKind["ViewPages"] = 18] = "ViewPages";
PermissionKind[PermissionKind["AddAndCustomizePages"] = 19] = "AddAndCustomizePages";
PermissionKind[PermissionKind["ApplyThemeAndBorder"] = 20] = "ApplyThemeAndBorder";
PermissionKind[PermissionKind["ApplyStyleSheets"] = 21] = "ApplyStyleSheets";
PermissionKind[PermissionKind["ViewUsageData"] = 22] = "ViewUsageData";
PermissionKind[PermissionKind["CreateSSCSite"] = 23] = "CreateSSCSite";
PermissionKind[PermissionKind["ManageSubwebs"] = 24] = "ManageSubwebs";
PermissionKind[PermissionKind["CreateGroups"] = 25] = "CreateGroups";
PermissionKind[PermissionKind["ManagePermissions"] = 26] = "ManagePermissions";
PermissionKind[PermissionKind["BrowseDirectories"] = 27] = "BrowseDirectories";
PermissionKind[PermissionKind["BrowseUserInfo"] = 28] = "BrowseUserInfo";
PermissionKind[PermissionKind["AddDelPrivateWebParts"] = 29] = "AddDelPrivateWebParts";
PermissionKind[PermissionKind["UpdatePersonalWebParts"] = 30] = "UpdatePersonalWebParts";
PermissionKind[PermissionKind["ManageWeb"] = 31] = "ManageWeb";
PermissionKind[PermissionKind["AnonymousSearchAccessWebLists"] = 32] = "AnonymousSearchAccessWebLists";
PermissionKind[PermissionKind["UseClientIntegration"] = 37] = "UseClientIntegration";
PermissionKind[PermissionKind["UseRemoteAPIs"] = 38] = "UseRemoteAPIs";
PermissionKind[PermissionKind["ManageAlerts"] = 39] = "ManageAlerts";
PermissionKind[PermissionKind["CreateAlerts"] = 40] = "CreateAlerts";
PermissionKind[PermissionKind["EditMyUserInfo"] = 41] = "EditMyUserInfo";
PermissionKind[PermissionKind["EnumeratePermissions"] = 63] = "EnumeratePermissions";
PermissionKind[PermissionKind["FullMask"] = 65] = "FullMask";
})(PermissionKind || (PermissionKind = {}));
//# sourceMappingURL=base-permissions.js.map