我有一个应用程序,我可以在其中创建多个动态角色。 我还可以为每个角色分配一组操作,其中每个操作都是服务器端的发布者/方法。 在这种情况下,我可以通过alanning来使用meteor-roles吗?
答案 0 :(得分:1)
您需要做的就是在继续发布或方法之前检查用户是否处于某个角色。
出版示例:
import { Meteor } from 'meteor/meteor';
import { Roles } from 'meteor/alanning:roles';
import { Posts } from '/imports/api/posts/posts';
Meteor.publish('publicationName', function() {
if(!Roles.userIsInRole(this.userId, 'administrator')) {
throw new Meteor.Error('unauthorised', 'You cannot do this.');
}
return Posts.find();
});
方法示例:
import { Meteor } from 'meteor/meteor';
import { Roles } from 'meteor/alanning:roles';
import { Posts } from '/imports/api/posts/posts';
Meteor.methods({
'remove.post':(id) => {
if(!Roles.userIsInRole(this.userId, 'administrator')) {
throw new Meteor.Error('unauthorised', 'You cannot do this.');
}
return Posts.remove(id);
}
});