UNPKG

@pnp/sp

Version:

pnp - provides a fluent api for working with SharePoint REST

96 lines 2.65 kB
import { __decorate } from "tslib"; import { _SPCollection, spInvokableFactory, _SPInstance, deleteable, } from "../spqueryable.js"; import { SiteGroups } from "../site-groups/types.js"; import { body } from "@pnp/queryable"; import { defaultPath } from "../decorators.js"; import { spPost, spPostMerge } from "../operations.js"; let _SiteUsers = class _SiteUsers extends _SPCollection { /** * Gets a user from the collection by id * * @param id The id of the user to retrieve */ getById(id) { return SiteUser(this, `getById(${id})`); } /** * Gets a user from the collection by email * * @param email The email address of the user to retrieve */ getByEmail(email) { return SiteUser(this, `getByEmail('${email}')`); } /** * Gets a user from the collection by login name * * @param loginName The login name of the user to retrieve */ getByLoginName(loginName) { return SiteUser(this).concat(`('!@v::${loginName}')`); } /** * Removes a user from the collection by id * * @param id The id of the user to remove */ removeById(id) { return spPost(SiteUsers(this, `removeById(${id})`)); } /** * Removes a user from the collection by login name * * @param loginName The login name of the user to remove */ removeByLoginName(loginName) { const o = SiteUsers(this, "removeByLoginName(@v)"); o.query.set("@v", `'${loginName}'`); return spPost(o); } /** * Adds a user to a site collection * * @param loginName The login name of the user to add to a site collection * */ async add(loginName) { await spPost(this, body({ LoginName: loginName })); return this.getByLoginName(loginName); } }; _SiteUsers = __decorate([ defaultPath("siteusers") ], _SiteUsers); export { _SiteUsers }; export const SiteUsers = spInvokableFactory(_SiteUsers); /** * Describes a single user * */ export class _SiteUser extends _SPInstance { constructor() { super(...arguments); this.delete = deleteable(); } /** * Gets the groups for this user * */ get groups() { return SiteGroups(this, "groups"); } /** * Updates this user * * @param props Group properties to update */ async update(props) { const data = await spPostMerge(this, body(props)); return { data, user: this, }; } } export const SiteUser = spInvokableFactory(_SiteUser); //# sourceMappingURL=types.js.map