发布方法将数据泄露给不正确的客户端

时间:2015-04-12 04:31:09

标签: meteor

我的发布功能有明显错误吗?

我看到的行为是,当两个客户都同意订阅时,似乎他们两个都获得了“最新”的结果集(最近的订阅请求)。这意味着客户端正在从不同的订阅请求中获取泄露的数据。

非常感谢!

约翰

Meteor.publish('myFiles', function () {

  var regexUser = '';
  var user = '';

  if (this.userId) {
    user = Meteor.users.findOne(this.userId);
  } else {
    user='';
  }

  if (user && user.profile && user.profile.folder) {

    var query = {key: {$in: [/^Team files\//i, new RegExp('^' + user.profile.folder)]}};

    return MyFiles.find(query);

  } else {

    return MyFiles.find({
      key: {
        $in: [/^Team files\//i]
      }
    });
  }
});

更新:我已让它正常工作,但我看不出有其他方法可以使用替代方法!

  if (this.userId && Meteor.users.findOne(this.userId).profile && Meteor.users.findOne(this.userId).profile.folder)

  return MyFiles.find({
    $or: [
  {key: new RegExp('^' + Meteor.users.findOne(this.userId).profile.folder + '/')}, {key: new RegExp('^' + 'Team files/')}]
  });

0 个答案:

没有答案