UNPKG

@mikezimm/npmfunctions

Version:
334 lines 18.4 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getUsersFromGroup = exports.allAvailableGroups = exports.buildGroupProps = void 0; var all_1 = require("@pnp/sp/presets/all"); require("@pnp/sp/webs"); require("@pnp/sp/site-groups/web"); var checks_1 = require("../../Services/Arrays/checks"); var userServices_1 = require("../../Services/Users/userServices"); //groupUsers = await getSiteAdmins( webURL, false); var ErrorHandler_1 = require("../../Services/Logging/ErrorHandler"); var PackageConst_1 = require("../../PackageConst"); var IMyGroupsState_1 = require("./IMyGroupsState"); function buildGroupProps(gName, description, styles, options) { if (description === void 0) { description = ''; } if (styles === void 0) { styles = ''; } if (options === void 0) { options = ''; } var optionsArray = options !== '' ? JSON.parse(options) : null; var icon = ''; if (gName === IMyGroupsState_1.SiteAdminGroupName && options === '') { optionsArray = []; icon = IMyGroupsState_1.SiteAdminIconName; } if (options.indexOf('iconName') > -1) { optionsArray.map(function (optObj) { if (optObj.indexOf('iconName=') === 0) { icon = optObj.substring(9); } }); } var result = { title: gName, description: description, styles: styles, options: optionsArray, icon: icon, }; return result; } exports.buildGroupProps = buildGroupProps; //export async function provisionTestPage( makeThisPage: IContentsGroupInfo, readOnly: boolean, setProgress: any, markComplete: any ): Promise<IServiceLog[]>{ function allAvailableGroups(webURL, myGroups, addTheseGroupsToState, setProgress) { return __awaiter(this, void 0, void 0, function () { var thisWebInstance, thisGroupInfos, newGroups, allGroups, errMessage, groupAdder, groupFilter, adminGroup, e_1, helpfulErrorEnd, indx, n, allUsers, guestUsers, _loop_1, _a, _b, _i, i, sortedTitles, guestGroup; return __generator(this, function (_c) { switch (_c.label) { case 0: thisWebInstance = null; thisGroupInfos = null; newGroups = myGroups; allGroups = []; newGroups.counts = []; newGroups.titles = []; newGroups.Ids = []; newGroups.sortedIds = []; newGroups.sortedGroups = []; newGroups.isLoading = true; errMessage = ''; _c.label = 1; case 1: _c.trys.push([1, 3, , 4]); groupAdder = "\' or Title eq \'"; groupFilter = "Title eq \'" + myGroups.propTitles.join(groupAdder) + "\'"; thisWebInstance = (0, all_1.Web)(webURL); return [4 /*yield*/, thisWebInstance.siteGroups.filter(groupFilter).get()]; case 2: allGroups = _c.sent(); if (myGroups.groupsShowAdmins === true && myGroups.propTitles.indexOf(IMyGroupsState_1.SiteAdminGroupName) > -1) { adminGroup = createGroupObject(IMyGroupsState_1.SiteAdminGroupName, 'Have ultimate permissions', -666, IMyGroupsState_1.SiteAdminIconName); allGroups.push(adminGroup); } return [3 /*break*/, 4]; case 3: e_1 = _c.sent(); helpfulErrorEnd = [webURL, '', null, null].join('|'); errMessage = (0, ErrorHandler_1.getHelpfullErrorV2)(e_1, true, true, [PackageConst_1.BaseErrorTrace, 'Failed', 'GroupFunctions AllAvailGroups ~ 153', helpfulErrorEnd].join('|')); return [3 /*break*/, 4]; case 4: console.log('allAvailableGroups thisGroupInfos:', allGroups); indx = 0; n = allGroups.length; allUsers = []; guestUsers = []; _loop_1 = function (i) { var thisGroup, groupUsers, hasCurrentUser_1, externalNameFilter_1, groupIndex; return __generator(this, function (_d) { switch (_d.label) { case 0: thisGroup = allGroups[i]; groupUsers = null; if (!(myGroups.groupsShowAdmins === true && thisGroup.Title === IMyGroupsState_1.SiteAdminGroupName)) return [3 /*break*/, 2]; return [4 /*yield*/, (0, userServices_1.getSiteAdmins)(webURL, false)]; case 1: groupUsers = _d.sent(); groupUsers.users.map(function (user) { if (user.Email === myGroups.currentUserEmail) { newGroups.isSiteAdmin = true; } }); return [3 /*break*/, 4]; case 2: return [4 /*yield*/, getUsersFromGroup(webURL, 'Name', thisGroup.Title)]; case 3: groupUsers = _d.sent(); _d.label = 4; case 4: if (groupUsers.errMessage && groupUsers.errMessage.length > 0) { errMessage = errMessage.length > 0 ? errMessage += '\n' : errMessage; errMessage += groupUsers.errMessage; newGroups.counts.push(null); newGroups.titles.push(null); } else { hasCurrentUser_1 = false; externalNameFilter_1 = '.external'; groupUsers.users.map(function (user) { if (user.Id === newGroups.userId) { hasCurrentUser_1 = true; } user.isGuest = false; /** * This series checks for external users. */ if (user.IsEmailAuthenticationGuestUser === true || user.IsShareByEmailGuestUser === true) { user.isGuest = true; } else if (user.LoginName && user.LoginName.indexOf(externalNameFilter_1) > -1) { user.isGuest = true; } else if (user.Name && user.Name.indexOf(externalNameFilter_1) > -1) { user.isGuest = true; } var userIndex = (0, checks_1.doesObjectExistInArray)(allUsers, 'Id', user.Id); if (userIndex === false) { allUsers.push(user); if (user.isGuest) { guestUsers.push(user); } } }); groupIndex = (0, checks_1.doesObjectExistInArray)(newGroups.propProps, 'title', thisGroup.Title); thisGroup.users = groupUsers.users; thisGroup.uCount = groupUsers.users.length; thisGroup.hasCurrentUser = hasCurrentUser_1; thisGroup.groupProps = newGroups.propProps[groupIndex]; newGroups.counts.push(groupUsers.users.length); newGroups.Ids.push(thisGroup.Id); newGroups.titles.push(thisGroup.Title); } return [2 /*return*/]; } }); }; _a = []; for (_b in allGroups) _a.push(_b); _i = 0; _c.label = 5; case 5: if (!(_i < _a.length)) return [3 /*break*/, 8]; i = _a[_i]; return [5 /*yield**/, _loop_1(i)]; case 6: _c.sent(); _c.label = 7; case 7: _i++; return [3 /*break*/, 5]; case 8: if (errMessage === '' && allGroups.length === 0) { errMessage = 'This site/web does not have any subsites that you can see.'; } if (errMessage.length === 0) { newGroups.isLoading = false; } sortedTitles = []; newGroups.propTitles.map(function (title) { if (newGroups.titles.indexOf(title) > -1) { sortedTitles.push(title); } }); // if ( myGroups.propTitles.indexOf( SiteAdminGroupName ) > -1 ) { sortedTitles.push( SiteAdminGroupName ) ; } sortedTitles.map(function (title) { allGroups.map(function (group) { if (group.Title === title) { newGroups.sortedIds.push(group.Id); newGroups.sortedGroups.push(group); } }); }); newGroups.titles = sortedTitles; /** * Alphabetical sort user arrays */ allUsers.sort(function (a, b) { return a['Title'].localeCompare(b['Title']); }); guestUsers.sort(function (a, b) { return a['Title'].localeCompare(b['Title']); }); /** * Add Guest Tab and users if there are any */ if (myGroups.groupsShowGuests === true && guestUsers.length > 0) { guestGroup = createGroupObject(IMyGroupsState_1.GuestsGroupName, 'External users in these groups', -999, IMyGroupsState_1.GuestsIconName); guestGroup.uCount = guestUsers.length; guestGroup.users = guestUsers; guestGroup.OwnerTitle = 'See group owners'; allGroups.push(guestGroup); newGroups.sortedIds.push(guestGroup.Id); newGroups.sortedGroups.push(guestGroup); newGroups.propTitles.push(IMyGroupsState_1.GuestsGroupName); newGroups.titles.push(IMyGroupsState_1.GuestsGroupName); newGroups.Ids.push(guestGroup.Id); newGroups.counts.push(guestGroup.uCount); } newGroups.groups = allGroups; newGroups.allUsers = allUsers; newGroups.guestUsers = guestUsers; console.log('allAvailableGroups newGroups:', newGroups); addTheseGroupsToState(newGroups, errMessage); return [2 /*return*/, { myGroups: newGroups, errMessage: errMessage }]; } }); }); } exports.allAvailableGroups = allAvailableGroups; function createGroupObject(title, desc, Id, iconName) { var groupProps = { title: title, description: desc, styles: '', options: [], icon: iconName, }; var thisGroup = { users: [], Title: title, Description: desc, AllowMembersEditMembership: false, AllowRequestToJoinLeave: false, AutoAcceptRequestToJoinLeave: false, Id: Id, IsHiddenInUI: false, LoginName: '', OnlyAllowMembersViewMembership: false, OwnerTitle: title, PrincipalType: null, RequestToJoinLeaveEmailSetting: '', isLoading: null, uCount: 0, hasCurrentUser: null, groupProps: groupProps, }; return thisGroup; } function getUsersFromGroup(webURL, titleOrId, thisGroup) { return __awaiter(this, void 0, void 0, function () { var thisWebInstance, users, errMessage, e_2, e_3, e_4, helpfulErrorEnd; return __generator(this, function (_a) { switch (_a.label) { case 0: thisWebInstance = null; users = []; errMessage = ''; _a.label = 1; case 1: _a.trys.push([1, 10, , 11]); thisWebInstance = (0, all_1.Web)(webURL); if (!(titleOrId === 'Name')) return [3 /*break*/, 6]; _a.label = 2; case 2: _a.trys.push([2, 4, , 5]); return [4 /*yield*/, thisWebInstance.siteGroups.getByName(thisGroup).users()]; case 3: users = _a.sent(); return [3 /*break*/, 5]; case 4: e_2 = _a.sent(); console.log('You may not have access to view members from this list: ', thisGroup); return [3 /*break*/, 5]; case 5: return [3 /*break*/, 9]; case 6: _a.trys.push([6, 8, , 9]); return [4 /*yield*/, thisWebInstance.siteGroups.getById(thisGroup).users()]; case 7: users = _a.sent(); return [3 /*break*/, 9]; case 8: e_3 = _a.sent(); console.log('You may not have access to view members from this list: ', thisGroup); return [3 /*break*/, 9]; case 9: return [3 /*break*/, 11]; case 10: e_4 = _a.sent(); helpfulErrorEnd = [webURL, '', null, null].join('|'); errMessage = (0, ErrorHandler_1.getHelpfullErrorV2)(e_4, true, true, [PackageConst_1.BaseErrorTrace, 'Failed', 'GroupFunctions getUsersFromGroup ~ 352', helpfulErrorEnd].join('|')); return [3 /*break*/, 11]; case 11: return [2 /*return*/, { users: users, errMessage: errMessage }]; } }); }); } exports.getUsersFromGroup = getUsersFromGroup; //# sourceMappingURL=GroupFunctions.js.map