代码之家  ›  专栏  ›  技术社区  ›  Israel Z Kollie

Meteor让一个用户读取和更新所有文档

  •  1
  • Israel Z Kollie  · 技术社区  · 6 年前

    我已经编写了一个发布函数,它获取当前用户ID并查找与该用户相关的所有文档。现在,所有用户只能读取、更新和删除他们创建的内容。

    我想添加一个基本上是管理员用户的用户,可以访问读取、更新或删除所有文档。

    有没有一个简单的方法可以实现?请参阅下面的推送功能代码,如何向发布功能添加一个管理员用户?

    Meteor.publish("docs", function() {
        return Docs.find({ userId: this.userId });
      });
    
    Meteor.methods({
      "docs.insert"(
        name,
        title,
        purpose
      ) {
        if (!this.userId) {
          throw new Meteor.Error("not-authorized");
        }
    return Docs.insert({
          name,
          title,
          purpose
          userId: this.userId,
        });
      },
    

    正在创建和登录用户。我唯一需要做的就是让普通用户能够访问所有文档。

    1 回复  |  直到 6 年前
        1
  •  1
  •   rooch84    6 年前
        Meteor.publish("docs", function() {
          if (this.userId === 'superuser') {
            return Docs.find({});
          } else {
            return Docs.find({ userId: this.userId });
        });
    
        Meteor.methods({
          "docs.update"(
            docId,
            <props to update>
          ) {
            if (!this.userId ) {
              throw new Meteor.Error("not-authorized");
            }
    
            let userId = Docs.findOne({_id: docId}).userId;
            if (this.userId === userId || this.userId === 'superuser') {
              // Do the update 
            } else {
              throw new Meteor.Error("not-authorized");
            } 
        });
    

    https://docs.meteor.com/api/pubsub.html