@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
JavaScript
//#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 = {
[]: {
Default: "PrinterFiles.Default",
Get: "PrinterFiles.Get",
Delete: "PrinterFiles.Delete",
Clear: "PrinterFiles.Clear",
Upload: "PrinterFiles.Upload",
Actions: "PrinterFiles.Actions"
},
[]: {
Default: "Jobs.Default",
List: "Jobs.List"
},
[]: {
Default: "Floors.Default",
List: "Floors.List",
Get: "Floors.Get",
Create: "Floors.Create",
Update: "Floors.Update",
Delete: "Floors.Delete"
},
[]: {
Default: "PrinterSettings.Default",
Get: "PrinterSettings.Get"
},
[]: {
Default: "ServerInfo.Default",
Get: "ServerInfo.Get"
},
[]: {
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 = {
[]: [...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