Недавно мы кардинально изменили то, как мы относимся к администраторам и конечным пользователям. В этом посте мы расскажем, что мы сделали, почему мы это сделали и как это повлияет на вас, когда вы продолжите развивать свои проекты с помощью Strapi.

В выпуске бета-версии Strapi Пользователи с правами администратора (также называемые Администраторы) и Пользователи (называемые Пользователи или Конечные пользователи) разделены. Пользователи-администраторы в основном взаимодействуют с панелью управления Strapi. Конечные пользователи в основном используют API или получают доступ к интерфейсу.

Мы сделали это разделение, чтобы сохранить разделение проблем в будущем. И Пользователи-администраторы, и Конечные пользователи выполняют разный набор функций:

Например, пользователи-администраторы занимаются добавлением контента (создание и редактирование контента, модерация, перевод, публикация, A / B-тестирование, предварительный просмотр контента перед выпуском и т. Д.) , Администрирование Strapi (токены API, веб-перехватчики, тестирование и проверка статуса API, ведение журнала / мониторинг, статистика и т. д.) и последний пример, сторонние поставщики (OAuth , LDAP, SAML).

Эти функции Администратора отличаются от функций, доступных для Конечного пользователя.

Функции Конечного пользователя связаны с уровнем аутентификации и авторизации, на котором вы можете построить свою бизнес-логику. Подобно функциям, которые мы разрабатываем для пользователя-администратора, у нас есть цели, которых мы хотим достичь с помощью подключаемого модуля users-permissions. Например, предоставление полнофункциональной службы аутентификации и авторизации с помощью OAuth2 и OpenID Connect, предоставление расширенной системы ролей и разрешений, настраиваемых политик, управления сторонними соединителями, такими как Facebook и Google.

Следует отметить, что, разделив пользователя-администратора и конечного пользователя, мы сделали возможным логическую интеграцию, в которой пользователи-администраторы превратились в Конечные пользователи. Это также относится к случаям, когда Конечный пользователь становится пользователем-администратором. Теперь станет возможным детальный контроль.

Разделение на пользователя-администратора и конечного пользователя происходит на уровне базы данных и уровне пользовательского интерфейса. Пользователи-администраторы теперь занимают административную панель, расположенную в разделе «Управление администраторами», расположенном под именем пользователя.

Конечные пользователи по-прежнему отображаются в виде уникального типа контента в левом меню в разделе Пользователи.

Помимо изменения уровня пользовательского интерфейса, самое фундаментальное изменение, с которым столкнутся разработчики Strapi, - это необходимость создания дополнительного Конечного пользователя. Например, если разрабатывается блог или аналогичный проект, в котором для пользователя-администратора необходимо отображать «автора», «имя профиля» и т. Д.

Проще говоря, пользователь-администратор может получить доступ к панели управления Strapi. Пользователь-администратор может создавать типы контента, добавлять контент, управлять доступом к API, устанавливать плагины и т. Д.

Конечный пользователь может использовать только API. Это может включать добавление содержимого, но с помощью методов GET / POST в форме, а не на панели инструментов Strapi. Например, для учетной записи электронной торговли, чтобы оставить комментарий / отзыв, стать автором статьи или иным образом иметь профиль.

Но как насчет других платформ для ведения блогов? Те, которые не отделяют пользователей-администраторов от конечных пользователей. Это хороший момент, но эти платформы были в основном разработаны для отображения контента веб-сайтов и ведения блогов. В этом контексте, возможно, имеет смысл хранить и пользователей-администраторов, и конечных пользователей в одной таблице базы данных. Strapi - это гораздо больше, чем другая альтернатива для решения задач ведения блогов, мы также включаем это в качестве возможности, но Strapi разработан, чтобы делать гораздо больше с контентом и API.

Мы внесли это изменение в то, как мы обрабатываем пользователей-администраторов и конечных пользователей, как вложение в долгосрочную дорожную карту проекта Strapi. Беглый взгляд на план показывает еще более краткосрочный этап с функцией Роли и разрешения администраторов, а затем и с другими функциями, реализация которых упрощена.

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

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

Strapi - это CMS без головы на 360 °. Мы не зависимы от внешнего интерфейса, как и должна быть безголовая CMS, но мы также не зависимы от базы данных, что позволяет практически неограниченное количество раз настраивать, настраивать и использовать. Будучи в этом смысле агностиками, мы можем выполнить нашу миссию - заново изобрести способ написания контента и его распространения среди людей. Отделение пользователя-администратора от конечного пользователя - это всего лишь один шаг к выполнению обещания о безголовой CMS.

Статья написана Дэвидом в сотрудничестве с Александром.