Налаштування ролей та прав доступу 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 день.