UNPKG

@mikezimm/fps-core-v7

Version:

Library of reusable core interfaces, types and constants migrated from fps-library-v2

61 lines 2.88 kB
/** * 2024-12-07: MOVE THIS TO fps-core-v7 ??? * MIGRATION CANDIDATE */ import { check4This, Check4 } from "../../logic/Links/CheckSearch"; import { doSpHttpFetchOrPostAndCheck } from "../../components/molecules/SpHttp/Sp/doSpHttpFetch"; import { SourcePropsNoListTitle, SourcePropsNoWebUrl } from "../../components/molecules/source-props/ISourceProps"; import { makeAbsoluteUrl } from "../../logic/Strings/getSiteCollectionUrlFromLink"; import { createErrorFpsListReturn } from "../../components/molecules/process-results/createErrorFpsListItemsReturn"; /** * 2025-01-03: Migrated from fps-library-v2/lib/pnpjs/Permissions, pnp2/lib/services/sp/perms * combination of v2: getListRoleAssignmentsD and pnp2: fetchListPermsD * * getListRoleAssignmentsAPI gets lists's Members and RoleDefinitionBindings combined. * * import { getListRoleAssignmentsAPI } from '@mikezimm/fps-core-v7/lib/restAPIs/permissions/getListRoleAssignmentsAPI'; * * @param fpsSpService * @param webUrl * @param listTitle * @param alertMe * @param consoleLog * @returns */ export async function getListRoleAssignmentsAPI(fpsSpService, webUrl, listTitle, alertMe, consoleLog) { const useUrl = makeAbsoluteUrl(webUrl); if (!useUrl || !listTitle) { if (alertMe === true) alert(`${listTitle ? listTitle : SourcePropsNoListTitle} ${SourcePropsNoWebUrl}`); const results = createErrorFpsListReturn(useUrl, listTitle); results.HasUniqueRoleAssignments = false; results.RoleAssignments = []; return results; } let fetchAPIList = `${useUrl}/_api/web/lists/getbytitle('${listTitle}')/?`; fetchAPIList += `$select=Title,ServerRelativeUrl,Id,HasUniqueRoleAssignments`; let fetchAPIRoles = `${useUrl}/_api/web/lists/getbytitle('${listTitle}')/RoleAssignments?`; fetchAPIRoles += `$expand=Member,RoleDefinitionBindings`; /*** * This little fetchAPI should get an array of items with: * PrinicpalId * Member: [], * RoleDefinitionBindings: */ const [list, roles,] = await Promise.all([ doSpHttpFetchOrPostAndCheck(fetchAPIList, 'GET', fpsSpService, '', alertMe, consoleLog, 'list', false, null), doSpHttpFetchOrPostAndCheck(fetchAPIRoles, 'GET', fpsSpService, '', alertMe, consoleLog, 'roles', false, null), ]); const results = list; results.HasUniqueRoleAssignments = list.item.HasUniqueRoleAssignments; results.RoleAssignments = roles.items; results.item = list; results['list'] = list.item ? list.item : list['list']; results.items = roles; if (check4This(Check4.fpsShowFetchResults_Eq_true) === true) { console.log(`fps-core-v7 COMPLETE: getListRoleAssignmentsAPI ~ 65`, results); } ; return results; } //# sourceMappingURL=getListRoleAssignmentsAPI.js.map