'use strict'; const globalHooks = require('../../../hooks'); const hooks = require('feathers-hooks'); const auth = require('feathers-authentication').hooks; const feathersErrors = require('feathers-errors'); const roleConfig = { fieldName: 'role', roles: ['admin'], owner: true, ownerField: 'userid' } function populateUserId (){ return function(hook) { var _this = this; return new Promise(function (resolve, reject) { if (! hook.data.userid) { hook.data.userid = hook.userid } else if (hook.params.user && hook.params.user.id !== hook.data.userid && hook.params.user.role !== 'admin') { return reject(new feathersErrors.default.Forbidden('You do not have permission to make meals for this user.')) } resolve(hook) }); } } exports.before = { all: [ auth.verifyToken(), auth.populateUser(), auth.restrictToAuthenticated(), ], find: [], get: [], create: [ populateUserId(), ], update: [ auth.restrictToRoles(roleConfig), ], patch: [ auth.restrictToRoles(roleConfig), ], remove: [ auth.restrictToRoles(roleConfig), ] }; exports.after = { all: [], find: [], get: [], create: [], update: [], patch: [], remove: [], };