---
title: "Консоль адміністратора"
description: "Трирівнева навігація адміністратора з урахуванням ролей — розділи в головних меню, підменю модуля у правій панелі, вкладки центру безпеки та спільна конфігурація SSOT"
locale: "uk"
---
# Консоль адміністратора

> **Info**
> Використовуйте вкладки **Founder** / **Developer** на бічній панелі документації, щоб відфільтрувати цю сторінку. HTTP-обробники для тих самих робочих столів розташовані в [Admin API](/docs/api/admin.md).

**Консоль адміністратора** Ring (`/admin/*`) — це робоче середовище оператора з трьома панелями: ліві меню для **центрів розділів**, центральна область для роботи, права панель для **підменю модуля** та пов’язаних центрів. Навігація фільтрується за роллю з одного SSOT — адміністратори платформи (`admin` | `superadmin`) бачать центри спільноти, довіри, комерції та CRM; **superadmin** також бачить Platform ops (налаштування, процеси, продуктивність, підписки, Web3).

|| Поверхня | Що показує | Джерело |
||---------|---------------|--------|
|| Панель піктограм | Один пункт **Admin** → `/admin` | `sidebar-rail.tsx` + `isPlatformAdmin` |
|| Бічна панель для ПК | Згруповані центри (Overview → … → Platform) | `useAdminNavMenu` ← `admin-nav-config.ts` |
|| Мобільний нижній аркуш | Ті самі відфільтровані центри | `bottom-navigation.tsx` |
|| Права панель | Підменю → пов’язані центри → необов’язкова статистика новин → довідка | `AdminWrapper` → `admin-rail.tsx` |
|| Плитки дашборда | Ті самі центри (без самого Dashboard) | `admin-dashboard-tiles.ts` |
|| Оболонка CRM | Центральна область на всю ширину + горизонтальні вкладки (без правої панелі) | `CrmAdminShell` |

### For founders

## Чому це важливо для вашого клону

Оператори не повинні шукати потрібний пункт у трьох різних меню. Одна конфігурація керує робочим столом для ПК, мобільною версією, плитками дашборда та правою панеллю — тому надання комусь ролі **admin** або **superadmin** узгоджено змінює те, що ця людина може відкривати.

  
- **[Центр довіри та безпеки](/docs/features/security.md)** — Центр безпеки об’єднує робочі столи протидії шахрайству та верифікації у `/admin/security?tab=…`.

  
- **[Email AI-CRM](/docs/features/email-ai-crm.md)** — Вхідні, чернетки, контакти, аналітика й завдання розташовані в `/admin/crm/*` із вкладками `CrmAdminShell`.

  
- **[Owner Project Lab](/docs/features/owner-project-lab.md)** — Робочий стіл замовлень CRM, спільна кімната Project, розділ покупця My Projects.

  
- **[Store & ERP](/docs/features/store.md)** — Центр Store відкриває товари; панель містить посилання на замовлення, запаси, комісії та додавання товару.

  
- **[Telegram admin bot](/docs/features/manage-via-telegram.md)** — RBAC із білим списком для віддалених операцій — доповнює вебконсоль.

### Типовий шлях оператора (звичайний день)

1. Відкрийте **Admin** на панелі піктограм → плитки дашборда для кожного доступного вам центру.
2. Перейдіть до **Security**, щоб працювати із шахрайством / верифікацією / подіями без окремих пунктів верхнього рівня Fraud або Verification.
3. Використовуйте **праву панель** у News, Store, Matcher, DAO, Web3, Users або Moderation для посилань усередині модуля (і пов’язаних центрів). На сторінках **CRM** права панель прихована й замість неї використовуються горизонтальні вкладки.
4. Лише **superadmin**: група Platform — Settings, Processes, Performance, Subscriptions, Web3 (сторінка налаштувань доступна тільки superadmin).

> **Tip**
> Застарілі URL `/admin/fraud-desk` і `/admin/verification` досі працюють — вони **перенаправляють** на вкладки центру Security, тому закладки й старі документи продовжують працювати.

### Чекліст ролей

|| Роль | Головні меню | Група Platform |
||------|------------|----------------|
|| `admin` | Overview, Community, Trust & safety, Commerce, Email & CRM | Прихована |
|| `superadmin` | Те саме + Platform | Settings, Processes, Performance, Subscriptions, Web3 |

SSOT ролей: `features/auth/user-role.ts` (`isPlatformAdmin`, `isSuperadmin`). Захист макета: `AdminAuthGuard` у `app/[locale]/admin/layout.tsx`.

### For developers

## Архітектура

```mermaid
flowchart LR
  Config["admin-nav-config.ts"]
  Filter["filterAdminNavByRole"]
  Hook["useAdminNavMenu"]
  Aside["sidebar-aside"]
  Mobile["bottom-navigation"]
  Tiles["admin-dashboard-tiles"]
  Wrapper["AdminWrapper pageContext"]
  Rail["admin-rail"]

  Config --> Filter
  Filter --> Hook
  Filter --> Tiles
  Filter --> Rail
  Hook --> Aside
  Hook --> Mobile
  Wrapper --> Rail
```

### Карта модулів (перевірено)

|| Зона | Шлях |
||---------|------|
|| Групи навігації, `pageContext`, підменю панелі, пов’язані центри | `features/admin/admin-nav-config.ts` |
|| Побудова міток | `features/admin/admin-labels.ts` |
|| Піктограми | `features/admin/admin-nav-icons.tsx` |
|| Хук бічної панелі та мобільної версії | `features/admin/use-admin-nav-menu.ts` |
|| Плитки дашборда | `features/admin/admin-dashboard-tiles.ts` |
|| UI правої панелі | `components/layout/rails/admin-rail.tsx` |
|| Оболонка макета | `components/wrappers/admin-wrapper.tsx` → `RingRightRailLayout` |
|| Оболонка Email (застарілий псевдонім) | `features/admin/email/email-admin-shell.tsx` → `CrmAdminShell` |
|| Оболонка CRM | `features/admin/crm/crm-admin-shell.tsx` |
|| Маршрути | `constants/routes.ts` (`ADMIN_*`, `ADMIN_CRM_*`; псевдоніми `ADMIN_EMAIL_*` → `/admin/crm/*`) |
|| Локалізований текст | `locales/{en,uk,ru}/modules/admin.json` |

### Групи головного меню (`ADMIN_NAV_GROUPS`)

|| `id` групи | Ключ заголовка | Елементи (центри) | `minRole` |
||------------|-----------|--------------|-----------|
|| `overview` | `navGroupOverview` | Dashboard | `admin` |
|| `community` | `navGroupCommunity` | Users, News, DAO, Moderation, Analytics | `admin` |
|| `trust` | `navGroupTrust` | Security, Matcher | `admin` |
|| `commerce` | `navGroupCommerce` | Store → products, Refcodes | `admin` |
|| `email` | `navGroupEmail` | Замовлення CRM + центри вхідних | `admin` |
|| `platform` | `navGroupPlatformOps` | Settings, Processes, Performance, Subscriptions, Web3 | `superadmin` |

Fraud desk і Verification **не є** пунктами головного меню.

### Контракт правої панелі

Порядок в `AdminSidebarContent`:

1. **Підменю модуля**, коли `resolveRailSection(pageContext)` не дорівнює null і `getRailSubmenu` повертає посилання
2. **Пов’язані центри** через `getRelatedHubs`
3. **Повна швидка навігація** лише коли `pageContext === 'dashboard'`
4. **Статистика новин**, коли `pageContext === 'news'` і передано `newsStats`
5. **Довідка** — посилання на документацію

Підсвічування активних вкладок у query використовує `pathWithQuery` (`pathname` + `useSearchParams`), тому посилання з `?tab=` у Security / Matcher / Moderation підсвічуються правильно.

|| `pageContext` | Розділ панелі | Помітне підменю |
||---------------|--------------|-----------------|
|| `security` / застарілі fraud-desk / verification | `security` | `?tab=overview\|fraud\|verification\|events` |
|| `matcher` | `matcher` | Analytics або `?tab=moderation` |
|| `store` | `store` | Products, orders, stock, commissions, add |
|| `crm-*` | CRM (вкладки, без панелі) | Orders, inbox, drafts, contacts, analytics, tasks через `CrmAdminShell` |
|| `news` | `news` | Articles, categories, analytics, bulk |
|| `web3` | `web3` | Dashboard + Settings (посилання на settings — якщо superadmin) |
|| `users` | `users` | `?tab=` overview / users / verification / analytics |
|| `moderation` | `moderation` | queue / rules / reports / analytics (синхронізується з URL на клієнті) |

### Центр Security + перенаправлення

```text
/admin/fraud-desk      → /admin/security?tab=fraud
/admin/verification    → /admin/security?tab=verification
```

SSOT вкладок: `features/admin/security/types/security-overview.ts` (`SECURITY_TABS`). Клієнт: `admin-security-center-client.tsx` (контрольовані Tabs + `router.push`).

### Синхронізація вкладок Matcher

Moderation у панелі → `/admin/matcher?tab=moderation`. Клієнт `admin-matcher-client.tsx` читає `tab`; підвкладки аналітики (`performance`, `quality`, …) залишаються локальними для клієнта, коли `tab` відсутня.

### Сторінки CRM

Усі маршрути CRM обгортаються в `CrmAdminShell` + `pageContext` (`crm-orders`, `crm-inbox`, `crm-drafts`, `crm-contacts`, `crm-tasks`, `crm-analytics`). Оболонка встановлює `showRightRail={false}` і відображає горизонтальні вкладки: Orders \| Inbox \| Drafts \| Contacts \| Tasks \| Analytics. HTTP API Email залишаються в `/api/admin/email/*`. Топологія чату замовлення проєкту: [Owner Project Lab](/docs/features/owner-project-lab.md).

Немає **перенаправлень** зі старих URL `/admin/email-*`. Використовуйте `/admin/crm/*`. Константи `ADMIN_EMAIL_*` є псевдонімами шляхів CRM для сумісності коду.

### Налаштування Web3

`/admin/web3/settings` має передавати `pageContext="web3"` (сторінка лише для superadmin), щоб відображалося підменю Web3 замість пов’язаних центрів дашборда.

### Розширення головного меню

Додайте елемент у відповідну групу `ADMIN_NAV_GROUPS` з `href`, `pageContext`, `minRole` і `labelKey`. Додайте мітку до `admin-labels.ts` і `locales/{en,uk,ru}/modules/admin.json`.

### Підключення оболонки сторінки

Огорніть сторінку (або клієнт) у `AdminWrapper` із відповідним `pageContext`. Для маршрутів Email використовуйте `EmailAdminShell`.

### Додавання дочірніх пунктів панелі, якщо розділ має кілька кінцевих сторінок

Розширте `getRailSubmenu` / `resolveRailSection`. Надавайте перевагу реальним маршрутам або `?tab=`, синхронізованим у клієнті сторінки (див. Security / Moderation). Передавайте `pathWithQuery` у предикати `isActive`, які перевіряють query-рядки.

{`import { filterAdminNavByRole } from '@/features/admin/admin-nav-config'

// Empty for non-admins; Platform group items require superadmin
const groups = filterAdminNavByRole(session?.user?.role)`}

## Пов’язана документація

- [api/admin](/docs/api/admin.md) — Глибокий огляд: перевірені маршрути `/api/admin/*` і рівні доступу для роботи з консоллю.

- [architecture/security](/docs/architecture/security.md) — Залежність: рівні RBAC і конфіденційні рівні, які захищають AdminWrapper.

- [features/email-ai-crm](/docs/features/email-ai-crm.md) — Той самий процес: UI адміністратора CRM у `/admin/crm/*` використовує модель робочого столу оператора.

- [features/admin-wiki](/docs/features/admin-wiki.md) — Наступний крок: зберігайте накопичувані знання про проєкт у сховищі Admin Wiki поруч із News.

- [development/whitelabel-navigation](/docs/development/whitelabel-navigation.md) — Див. також: налаштування навігації на рівні клону під час розгалуження меню адміністратора.
