UNPKG

@mikezimm/npmfunctions

Version:
593 lines (590 loc) 32.2 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.getCurrentUser = exports.getSiteUsers = exports.getSiteAdmins = exports.getUserPermissions = exports.ensureTheseUsers = exports.ensureUserHere = exports.checkForLoginName = exports.getEmailFromLoginName = exports.checkIfUserExistsInArray = exports.ensureUserInfo = exports.getPrincipalTypeString = void 0; var all_1 = require("@pnp/sp/presets/all"); var all_2 = require("@pnp/sp/presets/all"); require("@pnp/sp/webs"); require("@pnp/sp/clientside-pages/web"); require("@pnp/sp/site-users/web"); var sp_1 = require("@pnp/sp"); require("@pnp/sp/webs"); require("@pnp/sp/site-users/web"); var ErrorHandler_1 = require("../Logging/ErrorHandler"); var PackageConst_1 = require("../../PackageConst"); var checks_1 = require("../Arrays/checks"); var urlServices_1 = require("../Strings/urlServices"); /*** * db db .d8888. d88888b d8888b. * 88 88 88' YP 88' 88 `8D * 88 88 `8bo. 88ooooo 88oobY' * 88 88 `Y8b. 88~~~~~ 88`8b * 88b d88 db 8D 88. 88 `88. * ~Y8888P' `8888Y' Y88888P 88 YD * * import { getPrincipalTypeString, ensureUserInfo, checkIfUserExistsInArray, getEmailFromLoginName, checkForLoginName ensureUserHere, ensureTheseUsers, getUserPermissions, getSiteAdmins, } from '@mikezimm/npmfunctions/dist/Users/userServices'; import { IUser } from '@mikezimm/npmfunctions/dist/Users/IUserInterfaces'; */ /*** * d888b d88888b d888888b d8888b. d8888b. d888888b d8b db .o88b. d888888b d8888b. .d8b. db d888888b db db d8888b. d88888b * 88' Y8b 88' `~~88~~' 88 `8D 88 `8D `88' 888o 88 d8P Y8 `88' 88 `8D d8' `8b 88 `~~88~~' `8b d8' 88 `8D 88' * 88 88ooooo 88 88oodD' 88oobY' 88 88V8o 88 8P 88 88oodD' 88ooo88 88 88 `8bd8' 88oodD' 88ooooo * 88 ooo 88~~~~~ 88 88~~~ 88`8b 88 88 V8o88 8b 88 88~~~ 88~~~88 88 88 88 88~~~ 88~~~~~ * 88. ~8~ 88. 88 88 88 `88. .88. 88 V888 Y8b d8 .88. 88 88 88 88booo. 88 88 88 88. * Y888P Y88888P YP 88 88 YD Y888888P VP V8P `Y88P' Y888888P 88 YP YP Y88888P YP YP 88 Y88888P * * */ function getPrincipalTypeString(type) { if (type === 0) { return 'None'; } if (type === 1) { return 'User'; } if (type === 2) { return 'Distribution'; } if (type === 4) { return 'Security'; } if (type === 8) { return 'SharePoint'; } if (type === 15) { return 'All'; } } exports.getPrincipalTypeString = getPrincipalTypeString; /*** * d88888b d8b db .d8888. db db d8888b. d88888b db db .d8888. d88888b d8888b. d888888b d8b db d88888b .d88b. * 88' 888o 88 88' YP 88 88 88 `8D 88' 88 88 88' YP 88' 88 `8D `88' 888o 88 88' .8P Y8. * 88ooooo 88V8o 88 `8bo. 88 88 88oobY' 88ooooo 88 88 `8bo. 88ooooo 88oobY' 88 88V8o 88 88ooo 88 88 * 88~~~~~ 88 V8o88 `Y8b. 88 88 88`8b 88~~~~~ 88 88 `Y8b. 88~~~~~ 88`8b 88 88 V8o88 88~~~ 88 88 * 88. 88 V888 db 8D 88b d88 88 `88. 88. 88b d88 db 8D 88. 88 `88. .88. 88 V888 88 `8b d8' * Y88888P VP V8P `8888Y' ~Y8888P' 88 YD Y88888P ~Y8888P' `8888Y' Y88888P 88 YD Y888888P VP V8P YP `Y88P' * * */ function ensureUserInfo(webURL, userEmail) { return __awaiter(this, void 0, void 0, function () { var thisListWeb, result, thisUser; return __generator(this, function (_a) { switch (_a.label) { case 0: thisListWeb = (0, all_1.Web)(webURL); return [4 /*yield*/, thisListWeb.ensureUser(userEmail)]; case 1: result = _a.sent(); console.log('userInfo', result); thisUser = { title: result.data.Title, Title: result.data.Title, initials: '', email: result.data.Email, id: result.data.Id, Id: result.data.Id, ID: result.data.Id, isSiteAdmin: result.data.IsSiteAdmin, LoginName: result.data.LoginName, Name: result.data.LoginName, //These optional props are from the React PeoplePicker control imageInitials: '', imageUrl: '', loginName: result.data.LoginName, text: result.data.Title, remoteID: null, ensureWeb: webURL, }; return [2 /*return*/, thisUser]; } }); }); } exports.ensureUserInfo = ensureUserInfo; /*** * .o88b. db db d88888b .o88b. db dD d888888b d88888b db db .d8888. d88888b d8888b. * d8P Y8 88 88 88' d8P Y8 88 ,8P' `88' 88' 88 88 88' YP 88' 88 `8D * 8P 88ooo88 88ooooo 8P 88,8P 88 88ooo 88 88 `8bo. 88ooooo 88oobY' * 8b 88~~~88 88~~~~~ 8b 88`8b 88 88~~~ 88 88 `Y8b. 88~~~~~ 88`8b * Y8b d8 88 88 88. Y8b d8 88 `88. .88. 88 88b d88 db 8D 88. 88 `88. * `Y88P' YP YP Y88888P `Y88P' YP YD Y888888P YP ~Y8888P' `8888Y' Y88888P 88 YD * * * d88888b db db d888888b .d8888. d888888b .d8888. d888888b d8b db .d8b. d8888b. d8888b. .d8b. db db * 88' `8b d8' `88' 88' YP `~~88~~' 88' YP `88' 888o 88 d8' `8b 88 `8D 88 `8D d8' `8b `8b d8' * 88ooooo `8bd8' 88 `8bo. 88 `8bo. 88 88V8o 88 88ooo88 88oobY' 88oobY' 88ooo88 `8bd8' * 88~~~~~ .dPYb. 88 `Y8b. 88 `Y8b. 88 88 V8o88 88~~~88 88`8b 88`8b 88~~~88 88 * 88. .8P Y8. .88. db 8D 88 db 8D .88. 88 V888 88 88 88 `88. 88 `88. 88 88 88 * Y88888P YP YP Y888888P `8888Y' YP `8888Y' Y888888P VP V8P YP YP 88 YD 88 YD YP YP YP * * */ function checkIfUserExistsInArray(recentUsers, user) { var remoteId = false; remoteId = (0, checks_1.doesObjectExistInArray)(recentUsers, "Id", user.id, true); if (remoteId === false) { remoteId = (0, checks_1.doesObjectExistInArray)(recentUsers, "email", user.email, true); } if (remoteId === false) { remoteId = (0, checks_1.doesObjectExistInArray)(recentUsers, "loginName", user.loginName, true); } if (remoteId === false) { remoteId = (0, checks_1.doesObjectExistInArray)(recentUsers, "email", user.email, true); } if (remoteId === false) { remoteId = (0, checks_1.doesObjectExistInArray)(recentUsers, "title", user.title, true); } if (remoteId === false) { alert('Error addTheseFieldsToSaveObject:\n' + JSON.stringify(user)); } else { remoteId = parseInt(remoteId, 10); } return remoteId; } exports.checkIfUserExistsInArray = checkIfUserExistsInArray; //getEmailFromLoginName, checkForLoginName /*** * d888b d88888b d888888b d88888b .88b d88. .d8b. d888888b db * 88' Y8b 88' `~~88~~' 88' 88'YbdP`88 d8' `8b `88' 88 * 88 88ooooo 88 88ooooo 88 88 88 88ooo88 88 88 * 88 ooo 88~~~~~ 88 88~~~~~ 88 88 88 88~~~88 88 88 * 88. ~8~ 88. 88 88. 88 88 88 88 88 .88. 88booo. * Y888P Y88888P YP Y88888P YP YP YP YP YP Y888888P Y88888P * * */ function getEmailFromLoginName(uName) { var result = null; if (uName.indexOf('|') > -1 && uName.indexOf('@') > 0) { //This is an ID structure from reading in from the list: "i:0#.f|membership|clicky.mcclickster@mcclickster.onmicrosoft.com" var uProps = uName.split('|'); var expectedEmailIndex = 2; if (uProps.length === 3 && uProps[expectedEmailIndex].indexOf('@') > -1) { result = uProps[expectedEmailIndex]; } else { alert('Not able to find email from this user name: ' + uName); } } return result; } exports.getEmailFromLoginName = getEmailFromLoginName; /*** * d888b d88888b d888888b db .d88b. d888b d888888b d8b db d8b db .d8b. .88b d88. d88888b * 88' Y8b 88' `~~88~~' 88 .8P Y8. 88' Y8b `88' 888o 88 888o 88 d8' `8b 88'YbdP`88 88' * 88 88ooooo 88 88 88 88 88 88 88V8o 88 88V8o 88 88ooo88 88 88 88 88ooooo * 88 ooo 88~~~~~ 88 88 88 88 88 ooo 88 88 V8o88 88 V8o88 88~~~88 88 88 88 88~~~~~ * 88. ~8~ 88. 88 88booo. `8b d8' 88. ~8~ .88. 88 V888 88 V888 88 88 88 88 88 88. * Y888P Y88888P YP Y88888P `Y88P' Y888P Y888888P VP V8P VP V8P YP YP YP YP YP Y88888P * * */ function checkForLoginName(u) { var results = undefined; if (u.Name) { results = u.Name; } else if (u.loginName) { results = u.loginName; } else if (u.LoginName) { results = u.LoginName; } else if (u.email) { results = u.email; } return results; } exports.checkForLoginName = checkForLoginName; /*** * d88888b d8b db .d8888. db db d8888b. d88888b db db .d8888. d88888b d8888b. db db d88888b d8888b. d88888b * 88' 888o 88 88' YP 88 88 88 `8D 88' 88 88 88' YP 88' 88 `8D 88 88 88' 88 `8D 88' * 88ooooo 88V8o 88 `8bo. 88 88 88oobY' 88ooooo 88 88 `8bo. 88ooooo 88oobY' 88ooo88 88ooooo 88oobY' 88ooooo * 88~~~~~ 88 V8o88 `Y8b. 88 88 88`8b 88~~~~~ 88 88 `Y8b. 88~~~~~ 88`8b 88~~~88 88~~~~~ 88`8b 88~~~~~ * 88. 88 V888 db 8D 88b d88 88 `88. 88. 88b d88 db 8D 88. 88 `88. 88 88 88. 88 `88. 88. * Y88888P VP V8P `8888Y' ~Y8888P' 88 YD Y88888P ~Y8888P' `8888Y' Y88888P 88 YD YP YP Y88888P 88 YD Y88888P * * */ /** * * @param loginName 2021-03-01: should really be string | undefined but set to any to get into npmfunctions * @param webUrl * @param supressSaveConflict */ function ensureUserHere(loginName, webUrl, supressSaveConflict) { return __awaiter(this, void 0, void 0, function () { var thisListWeb, errMessage, user, users, e_1, helpfulErrorEnd, saveMessage; return __generator(this, function (_a) { switch (_a.label) { case 0: thisListWeb = (0, all_1.Web)(webUrl); errMessage = null; if (!(loginName === undefined)) return [3 /*break*/, 1]; return [2 /*return*/, undefined]; case 1: _a.trys.push([1, 4, , 5]); return [4 /*yield*/, thisListWeb.ensureUser(loginName)]; case 2: user = _a.sent(); users = thisListWeb.siteUsers; return [4 /*yield*/, users.add(user.data.LoginName)]; case 3: _a.sent(); console.log('ensureUserHere: user', user); console.log('ensureUserHere: users', users); return [2 /*return*/, user]; case 4: e_1 = _a.sent(); helpfulErrorEnd = [webUrl, loginName, null, null].join('|'); errMessage = (0, ErrorHandler_1.getHelpfullErrorV2)(e_1, true, true, [PackageConst_1.BaseErrorTrace, 'Failed', 'userServices Ensure User Here ~ 244', helpfulErrorEnd].join('|')); saveMessage = 'Ensure Failed!\n' + loginName + "\n" + webUrl + "\n" + errMessage; if (supressSaveConflict === true && errMessage.indexOf('Save Conflict') === 0) { //Do nothting } else { alert(saveMessage); } console.log(saveMessage); return [3 /*break*/, 5]; case 5: return [2 /*return*/]; } }); }); } exports.ensureUserHere = ensureUserHere; /*** * d88888b d8b db .d8888. db db d8888b. d88888b d888888b db db d88888b .d8888. d88888b db db .d8888. d88888b d8888b. .d8888. * 88' 888o 88 88' YP 88 88 88 `8D 88' `~~88~~' 88 88 88' 88' YP 88' 88 88 88' YP 88' 88 `8D 88' YP * 88ooooo 88V8o 88 `8bo. 88 88 88oobY' 88ooooo 88 88ooo88 88ooooo `8bo. 88ooooo 88 88 `8bo. 88ooooo 88oobY' `8bo. * 88~~~~~ 88 V8o88 `Y8b. 88 88 88`8b 88~~~~~ 88 88~~~88 88~~~~~ `Y8b. 88~~~~~ 88 88 `Y8b. 88~~~~~ 88`8b `Y8b. * 88. 88 V888 db 8D 88b d88 88 `88. 88. 88 88 88 88. db 8D 88. 88b d88 db 8D 88. 88 `88. db 8D * Y88888P VP V8P `8888Y' ~Y8888P' 88 YD Y88888P YP YP YP Y88888P `8888Y' Y88888P ~Y8888P' `8888Y' Y88888P 88 YD `8888Y' * * */ function ensureTheseUsers(theseUsers, checkTheseUsers, webUrl) { return __awaiter(this, void 0, void 0, function () { var updateState, recentUsers, ensureLogin, i, user, localId; return __generator(this, function (_a) { switch (_a.label) { case 0: console.log('ensureTheseUsers', theseUsers); recentUsers = checkTheseUsers; ensureLogin = []; //Get each user and check if they are in stateUsers: getEmailFromLoginName, checkForLoginName if (theseUsers.length > 0) { theseUsers.map(function (ensureUser) { var loginName = checkForLoginName(ensureUser); if (loginName) { var isAlreadyInState_1 = false; //Check if loginName of new user is already in state recentUsers.map(function (existingUser) { if (existingUser.loginName === loginName) { isAlreadyInState_1 = true; } }); if (isAlreadyInState_1 === false) { console.log('NEED TO ENSURE LOGIN: ', loginName); updateState = true; ensureUser.loginName = loginName; ensureLogin.push(ensureUser); } } }); } if (!(ensureLogin.length > 0)) return [3 /*break*/, 5]; i = 0; _a.label = 1; case 1: if (!(i < ensureLogin.length)) return [3 /*break*/, 4]; return [4 /*yield*/, ensureUserHere(ensureLogin[i].loginName, webUrl, false)]; case 2: user = _a.sent(); localId = ensureLogin[i].id ? ensureLogin[i].id : ensureLogin[i].Id; if (user !== undefined) { recentUsers.push({ id: localId, Id: localId, remoteID: user.data.Id, title: user.data.Title, Title: user.data.Title, loginName: user.data.LoginName, email: user.data.Email, PrincipalType: user.data.PrincipalType, }); } else { recentUsers.push({ id: localId, Id: localId, remoteID: '', title: '', Title: '', loginName: '', email: '', PrincipalType: undefined, }); } _a.label = 3; case 3: i++; return [3 /*break*/, 1]; case 4: console.log('updated state recentUsers: ', recentUsers); _a.label = 5; case 5: return [2 /*return*/, recentUsers]; } }); }); } exports.ensureTheseUsers = ensureTheseUsers; /*** * d888b d88888b d888888b db db .d8888. d88888b d8888b. d8888b. d88888b d8888b. .88b d88. d888888b .d8888. .d8888. d888888b .d88b. d8b db .d8888. * 88' Y8b 88' `~~88~~' 88 88 88' YP 88' 88 `8D 88 `8D 88' 88 `8D 88'YbdP`88 `88' 88' YP 88' YP `88' .8P Y8. 888o 88 88' YP * 88 88ooooo 88 88 88 `8bo. 88ooooo 88oobY' 88oodD' 88ooooo 88oobY' 88 88 88 88 `8bo. `8bo. 88 88 88 88V8o 88 `8bo. * 88 ooo 88~~~~~ 88 88 88 `Y8b. 88~~~~~ 88`8b 88~~~ 88~~~~~ 88`8b 88 88 88 88 `Y8b. `Y8b. 88 88 88 88 V8o88 `Y8b. * 88. ~8~ 88. 88 88b d88 db 8D 88. 88 `88. 88 88. 88 `88. 88 88 88 .88. db 8D db 8D .88. `8b d8' 88 V888 db 8D * Y888P Y88888P YP ~Y8888P' `8888Y' Y88888P 88 YD 88 Y88888P 88 YD YP YP YP Y888888P `8888Y' `8888Y' Y888888P `Y88P' VP V8P `8888Y' * * Updated function from https://github.com/pnp/pnpjs/issues/1480#issuecomment-745203843 */ function getUserPermissions(webUrl, supressError) { return __awaiter(this, void 0, void 0, function () { var thisWeb, errMessage, userPerm, e_2, helpfulErrorEnd; return __generator(this, function (_a) { switch (_a.label) { case 0: thisWeb = (0, all_1.Web)(webUrl); errMessage = null; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, thisWeb.getCurrentUserEffectivePermissions()]; case 2: userPerm = _a.sent(); console.log({ 'PermissionKind.ViewListItems': sp_1.sp.web.hasPermissions(userPerm, all_2.PermissionKind.ViewListItems), 'PermissionKind.AddListItems': sp_1.sp.web.hasPermissions(userPerm, all_2.PermissionKind.AddListItems), 'PermissionKind.ManageWeb': sp_1.sp.web.hasPermissions(userPerm, all_2.PermissionKind.ManageWeb), 'PermissionKind.FullMask': sp_1.sp.web.hasPermissions(userPerm, all_2.PermissionKind.FullMask), }); return [2 /*return*/, { permissions: userPerm, errMessage: errMessage }]; case 3: e_2 = _a.sent(); helpfulErrorEnd = [webUrl, '', null, null].join('|'); errMessage = (0, ErrorHandler_1.getHelpfullErrorV2)(e_2, true, true, [PackageConst_1.BaseErrorTrace, 'Failed', 'getUserPerms getUserEffPerms ~ 371', helpfulErrorEnd].join('|')); if (supressError === true && errMessage.indexOf('Save Conflict') === 0) { alert(errMessage); } console.log('getUserPermissions', errMessage); return [2 /*return*/, { users: [], errMessage: errMessage }]; case 4: return [2 /*return*/]; } }); }); } exports.getUserPermissions = getUserPermissions; /*** * d888b d88888b d888888b .d8888. d888888b d888888b d88888b .d8b. d8888b. .88b d88. d888888b d8b db .d8888. * 88' Y8b 88' `~~88~~' 88' YP `88' `~~88~~' 88' d8' `8b 88 `8D 88'YbdP`88 `88' 888o 88 88' YP * 88 88ooooo 88 `8bo. 88 88 88ooooo 88ooo88 88 88 88 88 88 88 88V8o 88 `8bo. * 88 ooo 88~~~~~ 88 `Y8b. 88 88 88~~~~~ 88~~~88 88 88 88 88 88 88 88 V8o88 `Y8b. * 88. ~8~ 88. 88 db 8D .88. 88 88. 88 88 88 .8D 88 88 88 .88. 88 V888 db 8D * Y888P Y88888P YP `8888Y' Y888888P YP Y88888P YP YP Y8888D' YP YP YP Y888888P VP V8P `8888Y' * * */ function getSiteAdmins(webUrl, supressError) { return __awaiter(this, void 0, void 0, function () { var thisWeb, errMessage, adminFilter, siteAdmins, e_3, helpfulErrorEnd; return __generator(this, function (_a) { switch (_a.label) { case 0: thisWeb = (0, all_1.Web)(webUrl); errMessage = null; adminFilter = "IsSiteAdmin eq 1"; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, thisWeb.siteUserInfoList.items.filter(adminFilter).get()]; case 2: siteAdmins = _a.sent(); /** * This was added because loginName is not retured but is in other functions so it just copies it to make it easier to resuse. */ siteAdmins.map(function (user) { if (!user.loginName && user.Name) { user.loginName = user.Name; } if (!user.Email && user.EMail) { user.Email = user.EMail; } }); return [2 /*return*/, { users: siteAdmins, errMessage: errMessage }]; case 3: e_3 = _a.sent(); helpfulErrorEnd = [webUrl, '', null, null].join('|'); errMessage = (0, ErrorHandler_1.getHelpfullErrorV2)(e_3, true, true, [PackageConst_1.BaseErrorTrace, 'Failed', 'getUserPerms getSiteAdmis ~ 418', helpfulErrorEnd].join('|')); if (supressError !== true) { alert(errMessage); } console.log('getSiteAdmins', errMessage); return [2 /*return*/, { users: [], errMessage: errMessage }]; case 4: return [2 /*return*/]; } }); }); } exports.getSiteAdmins = getSiteAdmins; function getSiteUsers(url, props, realPeopleOnly) { return __awaiter(this, void 0, void 0, function () { var thisWeb, validUserInfos, allUsers, e_4, helpfulErrorEnd; return __generator(this, function (_a) { switch (_a.label) { case 0: url = (0, urlServices_1.getFullUrlFromSlashSitesUrl)(url) + ''; thisWeb = (0, all_1.Web)(url); validUserInfos = { Ids: [], Titles: [], Names: [], Emails: [], Users: [], Props: props, errMessage: '', }; _a.label = 1; case 1: _a.trys.push([1, 3, , 4]); return [4 /*yield*/, thisWeb.siteUsers.get()]; case 2: allUsers = _a.sent(); allUsers.map(function (u) { var isReal = false; //UserId is typically an object with keys: NameIdIssuer & NameId. Only getting users with that var uId = u.UserId !== null ? u.Id : null; var uTitle = u.Title ? u.Title : null; var uEmail = u.Email ? u.Email : null; var uName = u.UserPrincipalName !== null ? u.UserPrincipalName : u.LoginName; //Through testing, found that system accounts have a LoginName but NOT UserPrincipalName //So for "real test", I'm using UserPrincipalName to check. if (u.UserId !== null && u.UserPrincipalName !== null && u.UserPrincipalName !== undefined) { isReal = true; } if (isReal === true || realPeopleOnly === false) { if (props.indexOf('Id') > -1 && uId !== null) { validUserInfos.Ids.push(uId); } if (props.indexOf('Title') > -1 && uTitle !== null) { validUserInfos.Titles.push(uTitle); } if (props.indexOf('Name') > -1 && uName !== null) { validUserInfos.Names.push(uName); } if (props.indexOf('Email') > -1 && uEmail !== null) { validUserInfos.Emails.push(uEmail); } validUserInfos.Users.push(u); } }); console.log('validUserInfos SiteUsers:', validUserInfos); return [3 /*break*/, 4]; case 3: e_4 = _a.sent(); helpfulErrorEnd = ['Get Site Users', '', null, null].join('|'); validUserInfos.errMessage = (0, ErrorHandler_1.getHelpfullErrorV2)(e_4, true, true, [PackageConst_1.BaseErrorTrace, 'Failed', 'getValidUsers ~ 437', helpfulErrorEnd].join('|')); console.log('Not able to get SiteUsers', validUserInfos.errMessage); return [3 /*break*/, 4]; case 4: return [2 /*return*/, validUserInfos]; } }); }); } exports.getSiteUsers = getSiteUsers; /*** * d888b d88888b d888888b .o88b. db db d8888b. d8888b. d88888b d8b db d888888b db db .d8888. d88888b d8888b. * 88' Y8b 88' `~~88~~' d8P Y8 88 88 88 `8D 88 `8D 88' 888o 88 `~~88~~' 88 88 88' YP 88' 88 `8D * 88 88ooooo 88 8P 88 88 88oobY' 88oobY' 88ooooo 88V8o 88 88 88 88 `8bo. 88ooooo 88oobY' * 88 ooo 88~~~~~ 88 8b 88 88 88`8b 88`8b 88~~~~~ 88 V8o88 88 88 88 `Y8b. 88~~~~~ 88`8b * 88. ~8~ 88. 88 Y8b d8 88b d88 88 `88. 88 `88. 88. 88 V888 88 88b d88 db 8D 88. 88 `88. * Y888P Y88888P YP `Y88P' ~Y8888P' 88 YD 88 YD Y88888P VP V8P YP ~Y8888P' `8888Y' Y88888P 88 YD * * */ /** * Copied from ExStorage - gets current logged in user from site. * @param webURL */ function getCurrentUser(webURL) { return __awaiter(this, void 0, void 0, function () { var currentUser, thisWebInstance; return __generator(this, function (_a) { switch (_a.label) { case 0: currentUser = {}; thisWebInstance = (0, all_1.Web)(webURL); return [4 /*yield*/, thisWebInstance.currentUser.get().then(function (r) { currentUser = { title: r['Title'], Title: r['Title'], initials: r['Title'].split(" ").map(function (n) { return n[0]; }).join(""), email: r['Email'], id: r['Id'], Id: r['Id'], ID: r['Id'], remoteID: null, isSiteAdmin: r['IsSiteAdmin'], LoginName: r['LoginName'], Name: r['LoginName'], }; // this.setState({ currentUser: currentUser }); })]; case 1: _a.sent(); return [2 /*return*/, currentUser]; } }); }); } exports.getCurrentUser = getCurrentUser; //# sourceMappingURL=userServices.js.map