Для проекта использую mean.io, при установке система работает стабильно, но acl в моем модуле иногда бывает не доступным. А вот эталонный модуль articles, всегда доступен.
Вот мой где это случается:
var hasPermissions = function(req, res, next) {
req.body.permissions = req.body.permissions || ['authenticated'];
for (var i = 0; i < req.body.permissions.length; i++) {
var permission = req.body.permissions[i];
if(typeof(req.acl) === 'undefined'){
console.log('req.acl: ', req.acl);
}
if (req.acl.user.allowed.indexOf(permission) === -1) {
return res.status(401).send('User not allowed to assign ' + permission + ' permission.');
}
}
next();
};
Вызов функции происходит здесь:
...
app.route('/api/' + name + e + 's')
.get(controller.all)
.post(auth.requiresLogin, hasPermissions, controller.create);
...
Ошибка в консоле:
req.acl: undefined
TypeError: Cannot read property 'user' of undefined
at hasPermissions (/home/ubuntu/workspace/mean/packages/custom/bars/server/routes/bars.js:23:16)
at Layer.handle [as handle_request] (/home/ubuntu/workspace/mean/node_modules/meanio/lib/core_modules/server/node_modules/express/lib/router/layer.js:95:5)
at next (/home/ubuntu/workspace/mean/node_modules/meanio/lib/core_modules/server/node_modules/express/lib/router/route.js:131:13)
at /home/ubuntu/workspace/mean/packages/core/users/authorization.js:27:7
at Query.<anonymous> (/home/ubuntu/workspace/mean/packages/core/users/authorization.js:12:9)
at /home/ubuntu/workspace/mean/node_modules/kareem/index.js:177:19
at /home/ubuntu/workspace/mean/node_modules/kareem/index.js:109:16
at doNTCallback0 (node.js:407:9)
at process._tickCallback (node.js:336:13)
POST /api/orders 500 - - 10.378 ms
Друзья, подскажите, в чем может быть проблема?
Почему иногда пользователь в rec.acl доступен, а иногда не доступен?
Такая проблема случается при записи данных в базу. Например при созданий нового документа...
Чтобы восстановиться помогает перезапуск сервера, иногда хватает просто рестарт, а иногда полноценный сбор с помощью команды gulp.