stackpress
Version:
Incept is a content management framework.
28 lines (27 loc) • 892 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const helpers_js_1 = require("./helpers.js");
class Session {
static load(data) {
return new Session(data);
}
get guest() {
return !this.data.id;
}
constructor(data) {
this.data = data;
}
can(...permits) {
if (permits.length === 0) {
return true;
}
const permissions = this.data.permits || [];
const events = permissions.filter(permission => typeof permission === 'string');
const routes = permissions.filter(permission => typeof permission !== 'string');
return Array.isArray(permits) && permits.every(permit => typeof permit === 'string'
? (0, helpers_js_1.matchAnyEvent)(permit, events)
: (0, helpers_js_1.matchAnyRoute)(permit, routes));
}
}
exports.default = Session;
;