roblox-ts-template/src/server/config/cmdr-permissions.ts

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)
);
}