Настройка ролей и прав доступа Strapi

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка ролей и прав доступа Strapi
Простая
от 1 рабочего дня до 3 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Роли и права доступа в Strapi

Strapi использует два механизма доступа: Users & Permissions (для публичных пользователей API) и Role-Based Access Control (для администраторов в admin panel). Настройка через GUI в Settings → Roles или программно.

Users & Permissions (публичный API)

Плагин users-permissions управляет токенами, ролями публичных пользователей:

Встроенные роли:

  • Public — неаутентифицированные запросы
  • Authenticated — авторизованные через JWT
# Получить JWT токен
POST /api/auth/local
{ "identifier": "[email protected]", "password": "password" }
# Ответ: { "jwt": "...", "user": {...} }

# Запрос с токеном
GET /api/articles
Authorization: Bearer <jwt-token>

Настройка прав через API:

// Программная настройка прав при bootstrap
async bootstrap({ strapi }) {
  const publicRole = await strapi.query('plugin::users-permissions.role')
    .findOne({ where: { type: 'public' } })

  // Разрешить публичное чтение статей
  await strapi.query('plugin::users-permissions.permission').updateMany({
    where: { role: publicRole.id, action: 'api::article.article.find' },
    data: { enabled: true },
  })
}

Кастомная роль

// Создать роль через Admin: Settings → Roles → Add new role
// Или программно:
const role = await strapi.query('plugin::users-permissions.role').create({
  data: {
    name: 'Premium User',
    description: 'Пользователь с доступом к premium контенту',
    type: 'premium',
  },
})

Admin Panel RBAC

Для администраторов — отдельная система ролей:

Встроенные роли admin:

  • Super Admin — полный доступ
  • Editor — управление контентом
  • Author — только свои записи
// Программное создание admin роли
const editorRole = await strapi.query('admin::role').create({
  data: {
    name: 'Content Manager',
    description: 'Управление только статьями и категориями',
  },
})

// Назначить права
await strapi.admin.services.permission.assignPermissions(editorRole.id, [
  { action: 'plugin::content-manager.explorer.read', subject: 'api::article.article' },
  { action: 'plugin::content-manager.explorer.create', subject: 'api::article.article' },
  { action: 'plugin::content-manager.explorer.update', subject: 'api::article.article' },
])

Field-level permissions

// Ограничить доступ к конкретным полям
await strapi.admin.services.permission.assignPermissions(roleId, [
  {
    action: 'plugin::content-manager.explorer.read',
    subject: 'api::article.article',
    properties: {
      fields: ['title', 'content', 'publishedAt'],  // только эти поля
    },
  },
])

API Tokens (для серверных запросов)

# Admin → Settings → API Tokens → Create new API Token
# Type: Read-only / Full access / Custom
// Использование
GET /api/articles
Authorization: Bearer <api-token>

Сроки

Настройка ролей для редакционной команды (3–4 роли с разными уровнями доступа) — 0,5–1 день.