29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
import { hasMinimumRole, isAdmin } from './predicates.js';
|
|
/**
|
|
* Collection-level access (returns boolean | Where).
|
|
* Use in collection `access.read/create/update/delete`.
|
|
*/ export const adminOnly = ({ req: { user } })=>isAdmin(user);
|
|
export const adminOrEditor = ({ req: { user } })=>hasMinimumRole(user, 'editor');
|
|
export const authenticated = ({ req: { user } })=>Boolean(user);
|
|
/** Requires at least the given role. */ export const requireRole = (minimum)=>({ req: { user } })=>hasMinimumRole(user, minimum);
|
|
/** Admins see all; others are constrained to their own document. */ export const adminOrSelf = ({ req: { user } })=>{
|
|
if (isAdmin(user)) {
|
|
return true;
|
|
}
|
|
if (!user) {
|
|
return false;
|
|
}
|
|
return {
|
|
id: {
|
|
equals: user.id
|
|
}
|
|
};
|
|
};
|
|
/**
|
|
* Field-level access (returns boolean only — no Where support).
|
|
* Use in field `access.read/update`.
|
|
*/ export const adminOnlyField = ({ req: { user } })=>isAdmin(user);
|
|
export const adminOrEditorField = ({ req: { user } })=>hasMinimumRole(user, 'editor');
|
|
/** Requires at least the given role, for field-level access. */ export const requireRoleField = (minimum)=>({ req: { user } })=>hasMinimumRole(user, minimum);
|
|
|
|
//# sourceMappingURL=access.js.map
|