@mikezimm/fps-core-v7
Version:
Library of reusable core interfaces, types and constants migrated from fps-library-v2
61 lines • 2.88 kB
JavaScript
/**
* 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