strapi - запретить пользователю удалять / уничтожать только связанные с ним данные - PullRequest
0 голосов
/ 20 апреля 2019

Я хотел бы написать несколько строк, чтобы пользователь не мог удалить данные, которые ему не принадлежат.Как я могу настроить следующую часть "уничтожить"?

  destroy: async (ctx, next) => {
    return strapi.services.contactnumber.remove(ctx.params);
  }

Заранее спасибо и счастливой Пасхи.

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Большое спасибо Ванессе,

код отлично работает! :)

С наилучшими пожеланиями!

0 голосов
/ 20 апреля 2019

Я сделал то же самое для моего приложения, пожалуйста, найдите ниже мой пример кода:

findOne: async (ctx) => {
    var rent = await strapi.services.rent.fetch(ctx.params);
    var user = ctx.state.user;
    rent = rent.toJSON ? rent.toJSON() : rent;
    if (user.id === rent.tenant.user) {
      return rent;
    }
    else {
      return ctx.badRequest(null, 'Forbidden');
    }
  },

Возможно, это не лучшая реализация, но она работает нормально :) Ключевое слово "await" важно,потому что вам нужно дождаться полного ответа, прежде чем проверять ответ (в противном случае будет возвращено «undefined»).

Я думаю, ваш код будет выглядеть так:

destroy: async (ctx, next) => {
  var contactnumber = await strapi.services.contactnumber.findOne(ctx.params);
  contactnumber = (contactnumber.toJSON ? contactnumber.toJSON() : contactnumber);
  if (ctx.state.user.id === contactnumber.user) {
     return strapi.services.contactnumber.remove(ctx.params);
  }
  else {
     return ctx.badRequest(null, 'Your error message');
  }
}

Спасибо,

...