UNPKG

@mikezimm/npmfunctions

Version:
198 lines (194 loc) 12.9 kB
import { IWebEnsureUserResult, PrincipalType } from "@pnp/sp/presets/all"; import "@pnp/sp/webs"; import "@pnp/sp/clientside-pages/web"; import "@pnp/sp/site-users/web"; import "@pnp/sp/webs"; import "@pnp/sp/site-users/web"; import { IUser } from './IUserInterfaces'; /*** * 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 * * */ export declare function getPrincipalTypeString(type: PrincipalType): "None" | "All" | "SharePoint" | "User" | "Distribution" | "Security" | undefined; /*** * 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' * * */ export declare function ensureUserInfo(webURL: string, userEmail: string): Promise<IUser>; /*** * .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 * * */ export declare function checkIfUserExistsInArray(recentUsers: IUser[], user: IUser): any; /*** * 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 * * */ export declare function getEmailFromLoginName(uName: string): string | null; /*** * 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 * * */ export declare function checkForLoginName(u: IUser): string | undefined; /*** * 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 */ export declare function ensureUserHere(loginName: string | undefined, webUrl: string, supressSaveConflict: boolean): Promise<IWebEnsureUserResult | undefined>; /*** * 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' * * */ export declare function ensureTheseUsers(theseUsers: IUser[], checkTheseUsers: IUser[], webUrl: string): Promise<IUser[]>; /*** * 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 */ export declare function getUserPermissions(webUrl: string, supressError: boolean): Promise<{ permissions: import("@pnp/sp/security/types").IBasePermissions; errMessage: null; users?: undefined; } | { users: never[]; errMessage: string; permissions?: undefined; }>; /*** * 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' * * */ export declare function getSiteAdmins(webUrl: string, supressError: boolean): Promise<{ users: any[]; errMessage: null; } | { users: never[]; errMessage: string; }>; /*** * d888b d88888b d888888b .d8888. d888888b d888888b d88888b db db .d8888. d88888b d8888b. .d8888. * 88' Y8b 88' `~~88~~' 88' YP `88' `~~88~~' 88' 88 88 88' YP 88' 88 `8D 88' YP * 88 88ooooo 88 `8bo. 88 88 88ooooo 88 88 `8bo. 88ooooo 88oobY' `8bo. * 88 ooo 88~~~~~ 88 `Y8b. 88 88 88~~~~~ 88 88 `Y8b. 88~~~~~ 88`8b `Y8b. * 88. ~8~ 88. 88 db 8D .88. 88 88. 88b d88 db 8D 88. 88 `88. db 8D * Y888P Y88888P YP `8888Y' Y888888P YP Y88888P ~Y8888P' `8888Y' Y88888P 88 YD `8888Y' * * */ /** * The use case for this function is to build a set of random users for sample items based on real users in the site. * * This will get all site users from a site * Then if they need to be real people, it will filter for real users * Then build up the detail arrays based on if it detects valid properties in those keys. * NOTE that it's possible that the number of users returned in Ids may be different than in the Titles. * @param url * @param props * @param realPeopleOnly */ export declare type IValidUserProp = 'Id' | 'Title' | 'Name' | 'Email'; export interface IValueUserInfos { Ids: number[]; Titles: string[]; Names: string[]; Emails: string[]; Users: any[]; Props: IValidUserProp[]; errMessage: string; } export declare function getSiteUsers(url: string, props: IValidUserProp[], realPeopleOnly: boolean): Promise<IValueUserInfos>; /*** * 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 */ export declare function getCurrentUser(webURL: string): Promise<IUser>;