Meteor Admin登录不会从mongodb中检索所有记录

时间:2014-08-01 14:40:22

标签: meteor

我正在使用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");

1 个答案:

答案 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');