Strapi: можно ли отслеживать, как пользователи изменяют контент?

В настоящее время я провожу некоторое исследование Strapi, чтобы создать на нем свой API, и мне было интересно, можно ли в JSON раскрыть поле, которое будет содержать информацию о пользователе, ответственном за последнюю модификацию определенного контента?

Я знаю, что API по умолчанию предоставляет поле «updatedAt» в объекте JSON, которое содержит дату и время последнего обновления, но насколько я понимаю, это поле обрабатывается базой данных, когда данные отправляются в него для сохранения?

Любая помощь будет принята с благодарностью! Большое спасибо.


person user2618966    schedule 26.07.2018    source источник


Ответы (2)


По умолчанию в Strapi нет этой функции.

У вас есть доступ к коду вашего приложения, поэтому вы можете добавить его самостоятельно.

Вы можете создать History тип контента для отношений с пользователями и вашими моделями. Затем, обновляя жизненный цикл вашей записи (afterCreate и beforeUpdate), вы создаете новый history, связывая свой идентификатор записи и свой идентификатор пользователя.

person Jim LAURIE    schedule 26.08.2018
comment
как я могу получить доступ к идентификатору пользователя в afterCreate / beforeUpdate? - person Javier Castro; 26.10.2018
comment
@JavierCastro нашли ли вы способ получить доступ к какой-либо информации о пользователе на хуке afterCreate / beforeUpdate? - person Murz; 31.01.2020

По состоянию на 2020 год вы можете найти человека, который обновил запись, в двух местах:

// ./api/yourmodelname/models/yourmodelname.js

modules.exports = {
  async afterUpdate(modifications, filter, resultData) {
    console.log(modifications.updated_by) // Full user object of editing Strapi user
    console.log(resultData.updated_by)    // User ID of editing Strapi user
  }
}
person jorisw    schedule 22.12.2020