我有一个应用程序,可以在其中创建多个动态角色。我还可以为每个角色分配一组操作,其中每个操作都是服务器端的发布者/方法。在这种情况下,我可以通过 alanning 来使用流星角色吗?
您需要做的就是在继续发布或方法之前检查用户是否具有角色。
发布示例:
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);
}
});