Налаштування ролей та прав доступу Directus

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

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

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування ролей та прав доступу Directus
Проста
від 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

Налаштування ролей та прав доступу Directus

Directus використовує ролеву модель доступу. Кожному користувачу присвоюється роль, роль отримує набір дозволів на колекції: читання, створення, оновлення, видалення. Дозволи можуть бути повними або умовними (тільки власні записи, тільки конкретні поля).

Ролі

У Settings → Roles & Permissions → створіть роль:

  • Administrator — повний доступ (вбудована)
  • Public — неаутентифіковані запити (вбудована)
  • Editor — управління контентом
  • Author — тільки власні матеріали
  • API Client — тільки читання для зовнішнього фронтенду

Програмне управління ролями

// Через Directus SDK
import { createDirectus, rest, authentication, createRole, createPermission } from '@directus/sdk'

const directus = createDirectus(DIRECTUS_URL).with(rest()).with(authentication())
await directus.login(ADMIN_EMAIL, ADMIN_PASSWORD)

// Створити роль
const editorRole = await directus.request(createRole({
  name: 'Editor',
  admin_access: false,
  app_access: true,  // доступ до панелі адміністратора
}))

// Призначити дозволи
await directus.request(createPermission({
  role: editorRole.id,
  collection: 'articles',
  action: 'read',
  // null = усі записи
}))

await directus.request(createPermission({
  role: editorRole.id,
  collection: 'articles',
  action: 'create',
}))

await directus.request(createPermission({
  role: editorRole.id,
  collection: 'articles',
  action: 'update',
  // Тільки власні статті
  permissions: { user_created: { _eq: '$CURRENT_USER' } },
  fields: ['*'],  // усі поля
}))

Дозволи на рівні полів

// Тільки певні поля доступні для читання
await directus.request(createPermission({
  role: authorRoleId,
  collection: 'articles',
  action: 'read',
  fields: ['id', 'title', 'slug', 'content', 'status'],
  // Приховані поля: internal_notes, revenue_impact
}))

Дозволи на рівні записів з фільтром

// Редактор бачить тільки опубліковані статті плюс власні чернетки
await directus.request(createPermission({
  role: editorRoleId,
  collection: 'articles',
  action: 'read',
  permissions: {
    _or: [
      { status: { _eq: 'published' } },
      { user_created: { _eq: '$CURRENT_USER' } },
    ],
  },
}))

Public роль (для публічного API)

// Публічне читання опублікованих статей
await directus.request(createPermission({
  role: null,  // null = Public роль
  collection: 'articles',
  action: 'read',
  permissions: { status: { _eq: 'published' } },
  fields: ['id', 'title', 'slug', 'content', 'publishedAt', 'thumbnail'],
}))

Статичний токен для серверних запитів

# Admin → Users → виберіть користувача → Token поле
# Створіть користувача з роллю "API Client" (тільки читання)
# Задайте статичний токен
// Використання статичного токена
const response = await fetch(`${DIRECTUS_URL}/items/articles?filter[status][_eq]=published`, {
  headers: { Authorization: `Bearer ${STATIC_TOKEN}` },
})

Терміни

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