我正在尝试使用iron:router设置组权限。我想出的方法是在用户的配置文件中设置一个组密钥,然后将该值与通过onBeforeAction挂钩访问站点的给定部分的组进行比较。请参见示例:
hooks.js:
beforehooks = {
checkGroup: function(group) {
if (Meteor.user().profile.group === group) {
this.next();
} else {
this.render('accessDenied');
}
}
}router.js
Router.map(function() {
this.route('managers', {
path: '/managers',
onBeforeAction: beforehooks.checkGroup("managers")
});
});这一直导致一个错误,阻止流星启动,但我不确定它是什么。在通过JavaScript方法调用传递变量时,我是否做错了什么?(旁注:我刚刚发现了角色包,并计划明天研究它。然而,我仍然想知道这里的错误是什么)
附加信息/编辑:如果我从checkGroup方法中删除组变量,并将一个字符串硬编码到' If‘语句中,一切都会正常工作。今天我会试着把一些东西放到MeteorPad中。
附加编辑:这里有两个气象板,一个有工作代码,另一个有错误(通过将变量传递给钩子)
工作代码:http://meteorpad.com/pad/PdP4v7qtM79Xi6FDQ/Groups%20-%20Functioning
错误代码:http://meteorpad.com/pad/bMTqeA39GqSQee9KC/Groups%20-%20Error
发布于 2015-01-08 08:13:41
对于starters,您应该删除onBeforeAction,后面的逗号,在以下行添加结束括号和分号,并在最后一行添加分号:
Router.map(function() {
this.route('managers', {
path: '/managers',
onBeforeAction: beforehooks.checkGroup("managers")
});
});如果你把你的代码发布到 .上,别人会更容易帮到你
https://stackoverflow.com/questions/27828361
复制相似问题