@materia/users
Version:
Signin/signup your users in your Materia application
50 lines • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
function defineIsUserRolePermissions(app) {
app.entities
.get('user_role')
.getQuery('list')
.run({}, { raw: true, silent: true })
.then(roles => {
roles.data.forEach(row => {
const nameCapitalized = row.role.substr(0, 1).toUpperCase() +
row.role.substr(1).toLowerCase();
app.api.permissions.add({
name: nameCapitalized,
description: 'Only users associated with the role "' +
row.role +
'" are allowed.',
readOnly: true,
middleware: (req, res, next) => {
if (req.user) {
app.entities
.get('user_permission')
.getQuery('getUserRoles')
.run({
id_user: req.user.id_user
})
.then(result => {
const roles2 = result.data;
if (roles2.find(r => r.role === row.role)) {
next();
}
else {
const e = new Error('Unauthorized');
e.statusCode = 401;
throw e;
}
});
}
else {
const e = new Error('Unauthorized');
e.statusCode = 401;
throw e;
}
},
fromAddon: app.addons.get('@materia/users').toJson()
});
});
});
}
exports.defineIsUserRolePermissions = defineIsUserRolePermissions;
//# sourceMappingURL=is-user-role.js.map