UNPKG

@mikezimm/fps-core-v7

Version:

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

110 lines 5.39 kB
/** * *2026-01-08: * NOTE: THIS IS OUTDATED AND WILL BE RELACED WHEN Permissions Impossible webpart is updated. * * */ /** * IMPORT EXAMPLES FOR EXTERNAL PROJECTS: * * Main exports from this file: * import { * getPermissionLevelsAPI, * getPermissionLevelDetailsAPI, * IFpsPermissionLevelsReturn, * IFpsPermissionLevelInfo, * IFpsPermissionLevelDetailsInfo, * IFpsPermissionInfo, * } from '@mikezimm/fps-core-v7/lib/restAPIs/permissions/getPermissionLevelsAPI'; * * Supporting imports (internal dependencies): * import { IFpsSpHttpServiceMIN } from '@mikezimm/fps-core-v7/lib/components/molecules/SpHttp/Sp/IFpsSpHttpServiceMIN'; * import { check4This, Check4 } from '@mikezimm/fps-core-v7/lib/logic/Links/CheckSearch'; * import { doSpHttpFetchOrPostAndCheck } from '@mikezimm/fps-core-v7/lib/components/molecules/SpHttp/Sp/doSpHttpFetch'; * import { SourcePropsNoWebUrl } from '@mikezimm/fps-core-v7/lib/components/molecules/source-props/ISourceProps'; * import { makeAbsoluteUrl } from '@mikezimm/fps-core-v7/lib/logic/Strings/getSiteCollectionUrlFromLink'; * import { createErrorFpsListReturn } from '@mikezimm/fps-core-v7/lib/components/molecules/process-results/createErrorFpsListItemsReturn'; * import { IPerformanceSettings } from '@mikezimm/fps-core-v7/lib/components/molecules/Performance/IPerformanceSettings'; * import { startPerformOpV2, updatePerformanceEndV2 } from '@mikezimm/fps-core-v7/lib/components/molecules/Performance/functions'; * import { IPerformanceOp } from '@mikezimm/fps-core-v7/lib/components/molecules/Performance/IPerformance'; * import { IFpsErrorObject } from '@mikezimm/fps-core-v7/lib/types/fps-returns/common/IFpsErrorObject'; * import { IRoleDefinitionInfo, IBasePermissions } from '@mikezimm/fps-core-v7/lib/types/@pnp/@2.14.0/sp/security'; */ import { IFpsSpHttpServiceMIN } from "../../components/molecules/SpHttp/Sp/IFpsSpHttpServiceMIN"; import { IPerformanceOp } from "../../components/molecules/Performance/IPerformance"; import { IFpsErrorObject } from "../../types/fps-returns/common/IFpsErrorObject"; import { IBasePermissions } from "../../types/@pnp/@2.14.0/sp/security"; /** * Represents a permission level as it appears in the SharePoint UI * (e.g., Full Control, Design, Edit, Contribute, Read) */ export interface IFpsPermissionLevelInfo { Id: number; Name: string; Description: string; Hidden: boolean; Order: number; RoleTypeKind: number; BasePermissions: IBasePermissions; } /** * Represents an individual permission within a permission level * (e.g., "Manage Lists", "Add Items", "Edit Items", etc.) */ export interface IFpsPermissionInfo { name: string; description: string; enabled: boolean; permissionId: number; } /** * Complete permission level details including all granular permissions */ export interface IFpsPermissionLevelDetailsInfo extends IFpsPermissionLevelInfo { permissions: IFpsPermissionInfo[]; } /** * Response object for permission levels API fetch */ export interface IFpsPermissionLevelsReturn extends IFpsErrorObject { permissionLevels: IFpsPermissionLevelInfo[]; permissionLevelDetails?: IFpsPermissionLevelDetailsInfo[]; items?: any; item?: any; fetchOp?: IPerformanceOp; } /** * 2025-01-03: New function to fetch SharePoint Online Permission Levels * * getPermissionLevelsAPI fetches all permission levels defined at the site level * from the SharePoint REST API endpoint: /_api/web/RoleDefinitions * * Optionally can fetch detailed permission breakdowns for each level by * parsing the role settings UI or making additional API calls. * * import { getPermissionLevelsAPI } from '@mikezimm/fps-core-v7/lib/restAPIs/permissions/getPermissionLevelsAPI'; * * @param fpsSpService - The SharePoint HTTP service for making API calls * @param webUrl - The web URL to fetch permission levels from * @param includeDetails - If true, fetch detailed permission info for each level (optional) * @param alertMe - Whether to show alert messages on error (optional) * @param consoleLog - Whether to log results to console (optional) * @returns Promise with permission levels and optional detailed permission info */ export declare function getPermissionLevelsAPI(fpsSpService: IFpsSpHttpServiceMIN, webUrl: string, includeDetails?: boolean, alertMe?: boolean | undefined, consoleLog?: boolean | undefined): Promise<IFpsPermissionLevelsReturn>; /** * Helper function to fetch detailed permission information for a specific permission level * This parses the BasePermissions bits to determine which individual permissions are enabled * * @param fpsSpService - The SharePoint HTTP service * @param webUrl - The web URL * @param roleDefinitionId - The ID of the role definition to get details for * @param alertMe - Whether to show alerts * @param consoleLog - Whether to log to console * @returns Object with array of individual permissions and their enabled status */ export declare function getPermissionLevelDetailsAPI(fpsSpService: IFpsSpHttpServiceMIN, webUrl: string, roleDefinitionId: number, alertMe?: boolean | undefined, consoleLog?: boolean | undefined): Promise<{ permissions: IFpsPermissionInfo[]; }>; //# sourceMappingURL=getPermissionLevelsAPI.d.ts.map