3
我想有一些出版物只根據用戶的角色返回用戶有權訪問的項目。我正在使用alanning:roles包來處理角色。基於登錄用戶的「角色」的流星中的動態出版物
舉例來說,我有一個類似的出版物:
Meteor.publish('header_fields', function() {
console.log("header_fields: %j", this.userId);
if (Roles.userIsInRole(this.userId,['ADMIN','INSPECTOR'])) {
// Inspectors and Admins can see all header fields
return HeaderFields.find();
} else {
// Clients should only be able to see header fields for forms they have access to
var user = Meteor.users.find({_id: this.userId});
var formIds = [];
_.each(Forms.find({client_id: user.profile.client_id}).fetch(), function(form) {
this.push(form._id);
}, formIds);
return HeaderFields.find({form_id: {$in: formIds}});
}
});
我遇到的問題是,在我見過的所有例子中,發佈在服務器中的文件夾中的.js文件定義,從而在客戶端首次連接時運行並獲取。但是,當客戶端首次連接時,用戶未登錄。但是,我不知道應該把這些出版物放在哪裏,或者它應該如何工作。
是的,我只是再讀一遍,看到它。現在它工作的很好,我只是用'if(this.userId)...'來包裝每個出版物的整個內容。我的下一個混亂是,每次點擊一個鏈接時,它都會重新運行這些出版物,就好像用戶正在改變一樣。不知道應該發生。 – CodeChimp 2014-10-03 01:06:56