nuxt-authorization
Version:
Authorization module for managing permissions on the Nuxt app and the Nitro server.
24 lines (23 loc) • 868 B
JavaScript
import { allows as _allows, denies as _denies, authorize as _authorize, AuthorizationError } from "../../../utils";
import { createError } from "#imports";
export async function allows(event, ability, ...args) {
const user = await event.context.$authorization.resolveServerUser();
return _allows(ability, user, ...args);
}
export async function denies(event, ability, ...args) {
const user = await event.context.$authorization.resolveServerUser();
return _denies(ability, user, ...args);
}
export async function authorize(event, ability, ...args) {
try {
const user = await event.context.$authorization.resolveServerUser();
await _authorize(ability, user, ...args);
} catch (error) {
if (error instanceof AuthorizationError) {
throw createError({
statusCode: error.statusCode,
message: error.message
});
}
}
}