UNPKG

@fdm-monster/server

Version:

FDM Monster is a bulk OctoPrint, Klipper, PrusaLink and BambuLab manager to set up, configure and monitor 3D printers. Our aim is to provide neat overview over your farm.

91 lines (90 loc) 2.74 kB
//#region src/constants/authorization.constants.ts const AUTH_ERROR_REASON = { IncorrectCredentials: "IncorrectCredentials", InvalidOrExpiredRefreshToken: "InvalidOrExpiredRefreshToken", InvalidOrExpiredAuthToken: "InvalidOrExpiredAuthToken", PasswordChangeRequired: "PasswordChangeRequired", LoginRequired: "LoginRequired", AccountNotVerified: "AccountNotVerified" }; const PERM_GROUP = { PrinterFiles: "PrinterFiles", PrinterSettings: "PrinterSettings", Jobs: "Jobs", Floors: "Floors", ServerInfo: "ServerInfo", PrinterMaintenanceLog: "PrinterMaintenanceLog" }; const PERMS = { [PERM_GROUP.PrinterFiles]: { Default: "PrinterFiles.Default", Get: "PrinterFiles.Get", Delete: "PrinterFiles.Delete", Clear: "PrinterFiles.Clear", Upload: "PrinterFiles.Upload", Actions: "PrinterFiles.Actions" }, [PERM_GROUP.Jobs]: { Default: "Jobs.Default", List: "Jobs.List" }, [PERM_GROUP.Floors]: { Default: "Floors.Default", List: "Floors.List", Get: "Floors.Get", Create: "Floors.Create", Update: "Floors.Update", Delete: "Floors.Delete" }, [PERM_GROUP.PrinterSettings]: { Default: "PrinterSettings.Default", Get: "PrinterSettings.Get" }, [PERM_GROUP.ServerInfo]: { Default: "ServerInfo.Default", Get: "ServerInfo.Get" }, [PERM_GROUP.PrinterMaintenanceLog]: { Default: "PrinterMaintenanceLog.Default", List: "PrinterMaintenanceLog.List", Get: "PrinterMaintenanceLog.Get", Create: "PrinterMaintenanceLog.Create", Complete: "PrinterMaintenanceLog.Complete", Delete: "PrinterMaintenanceLog.Delete" } }; function flattenPermissionDefinition() { const permissions = []; for (const key of Object.values(PERM_GROUP)) for (const permissionName of Object.values(PERMS[key])) permissions.push(permissionName); return permissions; } function allPerms(group) { if (!group || !PERMS[group]) throw new Error(`Permission group name '${group}' was not found`); return Object.values(PERMS[group]); } const ROLES = { ADMIN: "ADMIN", OPERATOR: "OPERATOR", GUEST: "GUEST" }; const ROLE_PERMS = { [ROLES.ADMIN]: [...new Set([ ...allPerms(PERM_GROUP.Jobs), ...allPerms(PERM_GROUP.Floors), ...allPerms(PERM_GROUP.PrinterFiles), ...allPerms(PERM_GROUP.PrinterSettings), ...allPerms(PERM_GROUP.ServerInfo), ...allPerms(PERM_GROUP.PrinterMaintenanceLog) ])], [ROLES.OPERATOR]: [...new Set([ ...allPerms(PERM_GROUP.Jobs), ...allPerms(PERM_GROUP.Floors), ...allPerms(PERM_GROUP.PrinterFiles), ...allPerms(PERM_GROUP.PrinterSettings), ...allPerms(PERM_GROUP.PrinterMaintenanceLog) ])], [ROLES.GUEST]: [] }; //#endregion export { AUTH_ERROR_REASON, PERMS, PERM_GROUP, ROLES, ROLE_PERMS, allPerms, flattenPermissionDefinition }; //# sourceMappingURL=authorization.constants.js.map