@mikezimm/npmfunctions
Version:
Functions used in my SPFx webparts
198 lines (194 loc) • 12.9 kB
TypeScript
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>;