forked from Crown-Studio/roblox-ts-template
28 lines
799 B
TypeScript
28 lines
799 B
TypeScript
export interface CmdrPermissions {
|
|
readonly allowInStudio: boolean;
|
|
readonly allowExperienceOwner: boolean;
|
|
readonly adminUserIds: ReadonlySet<number>;
|
|
}
|
|
|
|
export const CMDR_PERMISSIONS: CmdrPermissions = {
|
|
allowInStudio: true,
|
|
allowExperienceOwner: true,
|
|
// Add individual Roblox UserIds here, especially for group-owned experiences.
|
|
adminUserIds: new Set<number>(),
|
|
};
|
|
|
|
export function isCmdrAllowed(
|
|
userId: number,
|
|
isStudio: boolean,
|
|
experienceOwnerUserId: number | undefined,
|
|
permissions: CmdrPermissions = CMDR_PERMISSIONS,
|
|
): boolean {
|
|
return (
|
|
(isStudio && permissions.allowInStudio) ||
|
|
permissions.adminUserIds.has(userId) ||
|
|
(permissions.allowExperienceOwner &&
|
|
experienceOwnerUserId !== undefined &&
|
|
userId === experienceOwnerUserId)
|
|
);
|
|
}
|