我正在使用meteor(0.8.2)开发一个项目,它有一个登录组件。用户登录时,每个用户都可以看到他的数据。我正在创建一个管理员登录,管理员应该能够看到所有用户的数据。有什么想法吗?
我的js代码:
//retrieving records according to userid
Template.entries.entries = function () {
// return all entries sorted by time
return addressDB.find({userId: Meteor.userId()}, { sort: { time: -1 }});
}
另一段js代码,
//this code inserts the data in collection
var user = Meteor.user();
var userId= Meteor.userId();
if (!user) {
return;
}
if(!userId){return;}
console.log("new user created by the meteor user function ");
addressDB.insert({
userId:userId,
user:user,
innovationCenter:innovation_center_name,
description:description,
address:temp});
console.log("data inserted");
答案 0 :(得分:1)
您可以使用roles来管理您的用户权限。然后,在您发布函数(在服务器上):
Meteor.publish('addresses', function () {
if (Roles.userIsInRole(this.userId, 'admin') {
return addressDB.find({});
} else {
return addressDB.find({userId: Meteor.userId()});
}
});
请记得删除autopublish
包并在客户端订阅addresses
数据流
Meteor.subscribe('addresses');