显示登录的特定用户的数据

时间:2015-09-23 06:11:47

标签: angularjs meteor meteor-accounts

您好我使用meteorangular并且我是初学者,

我创建了一个房地产网站,管理员可以在其中添加要租用或出售的房产。这些属性将显示在客户端站点中。

我使用了meteor add accounts-ui accounts-passwordblaze

我不想将admin(a)的数据显示给admin(b),我使用的代码向所有管理员用户显示管理数据

代码

Parties = new Mongo.Collection("parties");

Parties.allow({
  insert: function (userId, party) {
    return userId && party.owner === userId;
  },
  update: function (userId, party, fields, modifier) {
    return userId && party.owner === userId;
  },
  remove: function (userId, party) {
    return userId && party.owner === userId;
  }
});

1 个答案:

答案 0 :(得分:1)

  1. 如果您尚未删除软件包insecureautopublish软件包。
  2. 使用服务器上的Meteor.publish()来限制发布给用户的文档以及哪些字段。
  3. 用户Meteor.subscribe()订阅您从服务器发布的集合
  4. 例如,在服务器上:

    Meteor.publish('myParties',function(){
      return Parties.find({ owner: this.userId() }); // return all the keys from my parties
    });
    Meteor.publish('otherParties',function(){
      // omit the details key from other users' parties
      return Parties.find({ owner: { $ne: this.userId() }},{ fields: { details: 0 }}); 
    });
    

    在客户端:

    Meteor.subscribe('myParties');
    Meteor.subscribe('otherParties');
    

    您显示的允许/拒绝规则仅处理更改到数据,而不是用户可见的内容。