permissions.ts•1.37 kB
import {
ALLOW_DELETE_OPERATION,
ALLOW_DDL_OPERATION,
ALLOW_INSERT_OPERATION,
ALLOW_UPDATE_OPERATION,
SCHEMA_DELETE_PERMISSIONS,
SCHEMA_DDL_PERMISSIONS,
SCHEMA_INSERT_PERMISSIONS,
SCHEMA_UPDATE_PERMISSIONS,
} from "../config/index.js";
// Schema permission checking functions
function isInsertAllowedForSchema(schema: string | null): boolean {
if (!schema) {
return ALLOW_INSERT_OPERATION;
}
return schema in SCHEMA_INSERT_PERMISSIONS
? SCHEMA_INSERT_PERMISSIONS[schema]
: ALLOW_INSERT_OPERATION;
}
function isUpdateAllowedForSchema(schema: string | null): boolean {
if (!schema) {
return ALLOW_UPDATE_OPERATION;
}
return schema in SCHEMA_UPDATE_PERMISSIONS
? SCHEMA_UPDATE_PERMISSIONS[schema]
: ALLOW_UPDATE_OPERATION;
}
function isDeleteAllowedForSchema(schema: string | null): boolean {
if (!schema) {
return ALLOW_DELETE_OPERATION;
}
return schema in SCHEMA_DELETE_PERMISSIONS
? SCHEMA_DELETE_PERMISSIONS[schema]
: ALLOW_DELETE_OPERATION;
}
function isDDLAllowedForSchema(schema: string | null): boolean {
if (!schema) {
return ALLOW_DDL_OPERATION;
}
return schema in SCHEMA_DDL_PERMISSIONS
? SCHEMA_DDL_PERMISSIONS[schema]
: ALLOW_DDL_OPERATION;
}
export {
isInsertAllowedForSchema,
isUpdateAllowedForSchema,
isDeleteAllowedForSchema,
isDDLAllowedForSchema,
};