Я использую alanning:roles
и хочу проверить, чтобы данная роль предоставляла доступ к БД. Можно ли сделать какой-то код, если доступ запрещен - что-то вроде уведомления?Проверить роль в allow() - функция и установить предупреждение, если отклонено
Update
Как вы можете видеть, я не понял метод ошибки броска на всех.
server.js
Meteor.methods({
'crashme':function() {
throw new Meteor.Error(402, "Access Denied", "details", "more details");
}
});
Users.allow({
insert: function(userId) {
if (Roles.userIsInRole(userId, 'admin')) return true;
},
update: function(userId) {
if (Roles.userIsInRole(userId, 'admin')) return true;
},
remove: function(userId) {
if (Roles.userIsInRole(userId, 'admin')) return true;
}
});
На клиентской стороне я
client.js
Roles.addUsersToRoles(userId, 'anything');
Meteor.call("crashme", function(err, result) {
console.log(err);
});
Если addUsersToRoles терпит неудачу, пользователь должен видеть уведомление. ..
Да, это должно сработать. Конечно, это будет отображаться на консоли * server *, а не на вашем клиенте. Но это также очень легко проверить на клиенте, поскольку вставка или обновление не будут выполнены с ошибкой в обратном вызове. –
Хм ... Не уверен, если я тебя понимаю. Я хочу сообщить пользователю информацию на клиентской стороне. Но я не знаю, куда поместить код. Вышеприведенный код находится на стороне сервера, конечно ... – user3142695
ОК, теперь я понимаю вашу проблему. См. Ответ ниже. –