Метеор заставить одного пользователя читать и обновлять все документы - PullRequest
0 голосов
/ 04 сентября 2018

Я написал функцию публикации, которая получает текущий идентификатор пользователя и находит все документы, связанные с этим пользователем. Теперь все пользователи могут иметь доступ только для чтения, обновления и удаления того, что они создали.

Я хочу добавить пользователя, который в основном будет администратором, который сможет просматривать, обновлять или удалять все документы.

Есть ли простой способ, которым это достижимо? Пожалуйста, посмотрите мой код функции push ниже, как я могу добавить одного администратора в функцию публикации?

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 Ответ

0 голосов
/ 04 сентября 2018
    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.

...