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