0
我有一個應用程序,我可以在其中創建多個動態角色。 我還可以爲每個角色分配一組操作,其中每個操作都是服務器端的發佈者/方法。 在這種情況下,我可以用alanning來使用流星角色嗎?如何在服務器端使用meteor實現基於動態角色的動作授權?
我有一個應用程序,我可以在其中創建多個動態角色。 我還可以爲每個角色分配一組操作,其中每個操作都是服務器端的發佈者/方法。 在這種情況下,我可以用alanning來使用流星角色嗎?如何在服務器端使用meteor實現基於動態角色的動作授權?
您需要做的就是在繼續發佈或方法之前檢查用戶是否處於角色中。
公開例如:
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);
}
});