|
1 | 1 | # Модуль управления доступом к MikoPBX |
2 | 2 |
|
3 | | -_Read this in other languages:_ [_English_](./)_,_ [_Русский_](readme.ru.md)_._ |
| 3 | +*Read this in other languages: [English](README.md), [Русский](readme.ru.md).* |
4 | 4 |
|
5 | | -## Описание модуля расширения ## |
| 5 | +## Обзор |
6 | 6 |
|
7 | | -<figure><img src="https://github.com/mikopbx/docs.mikopbx.com/blob/russian/.gitbook/assets/All-groups-index.png" alt=""><figcaption><p>Страница модуля с настройкой групп доступа</p></figcaption></figure> |
| 7 | +**ModuleUsersUI** — комплексный модуль управления доступом для MikoPBX, обеспечивающий многопользовательский доступ с ролевыми разрешениями. Модуль предоставляет детальный контроль над разделами веб-интерфейса, REST API и видимостью истории звонков. |
8 | 8 |
|
9 | | -Модуль позволяет организовать группы доступа с различными правами, а затем назначить эти группы конкретными пользователям системы. |
10 | | -Также модуль позволяет выполнять авторизацию в системе используя LDAP/AD. |
| 9 | +## Основные возможности |
11 | 10 |
|
12 | | -Для страницы с историей разговоров реализован дополнительный фильтр по сотрудникам. |
13 | | -Это позволяет запретить доступ к записям разговоров отдельных сотрудников для отдельных групп пользователей. |
| 11 | +### Управление группами доступа |
| 12 | +- **Ролевое управление доступом (RBAC)**: Создание неограниченного количества групп с определёнными правами |
| 13 | +- **Режим полного доступа**: Возможность предоставить неограниченный доступ для администраторов |
| 14 | +- **Настраиваемая домашняя страница**: Выбор страницы после входа для каждой группы |
| 15 | +- **Гранулярные разрешения**: Контроль доступа к отдельным разделам и действиям |
14 | 16 |
|
15 | | -## Документация ## |
| 17 | +### Методы аутентификации |
| 18 | +- **Локальная аутентификация**: Логин/пароль хранятся в базе MikoPBX |
| 19 | +- **LDAP/Active Directory**: Интеграция с корпоративными каталогами |
| 20 | + - Поддержка OpenLDAP и Microsoft Active Directory |
| 21 | + - Настраиваемые фильтры и маппинг атрибутов |
| 22 | + - Автоматическая синхронизация пользователей |
16 | 23 |
|
17 | | -Полная документация к модулю доступна [по ссылке](https://docs.mikopbx.com/mikopbx/modules/miko/module-users-u-i) |
| 24 | +### Категории разрешений |
18 | 25 |
|
19 | | -### Вопросы ## |
| 26 | +#### Веб-интерфейс (AdminCabinet) |
| 27 | +Детальный контроль над разделами панели управления MikoPBX: |
| 28 | +- **Просмотр**: Доступ к спискам и индексным страницам |
| 29 | +- **Детали**: Возможность открывать и просматривать записи |
| 30 | +- **Редактирование/Удаление**: Создание, изменение и удаление записей |
20 | 31 |
|
21 | | -Подключайтесь к каналу для разработчиков в telegram [@mikopbx\_dev](https://t.me/joinchat/AAPn5xSqZIpQnNnCAa3bBw) |
| 32 | +Поддерживаемые разделы: |
| 33 | +- Сотрудники и внутренние номера |
| 34 | +- Очереди вызовов и конференц-комнаты |
| 35 | +- IVR-меню и приложения диалплана |
| 36 | +- Входящие/исходящие маршруты |
| 37 | +- Провайдеры (SIP/IAX) |
| 38 | +- Звуковые файлы |
| 39 | +- История звонков (CDR) |
| 40 | +- Системные настройки |
| 41 | +- И многое другое... |
22 | 42 |
|
| 43 | +#### Доступ к REST API |
| 44 | +Контроль доступных API-эндпоинтов: |
| 45 | +- Стандартные CRUD-операции (getList, getRecord, saveRecord, delete) |
| 46 | +- Пользовательские действия для каждого эндпоинта |
| 47 | +- Автоматическая связка между правами UI и API |
| 48 | + |
| 49 | +### Фильтрация истории звонков (CDR) |
| 50 | +Ограничение видимости записей звонков по сотрудникам: |
| 51 | +- **Не фильтровать**: Показывать все записи |
| 52 | +- **Только выбранные**: Показывать только звонки выбранных сотрудников |
| 53 | +- **Только исходящие**: Показывать только исходящие звонки выбранных сотрудников |
| 54 | +- **Кроме выбранных**: Скрывать звонки определённых сотрудников |
| 55 | + |
| 56 | +### Самообслуживание пользователей |
| 57 | +- Смена пароля для локальных пользователей |
| 58 | +- Управление ключами Passkey (WebAuthn) для беспарольной аутентификации |
| 59 | + |
| 60 | +## Архитектура |
| 61 | + |
| 62 | +### Модели базы данных |
| 63 | +| Модель | Описание | |
| 64 | +|--------|----------| |
| 65 | +| `AccessGroups` | Определения групп доступа с разрешениями | |
| 66 | +| `AccessGroupsRights` | Назначения гранулярных прав | |
| 67 | +| `AccessGroupCDRFilter` | Правила фильтрации CDR для групп | |
| 68 | +| `UsersCredentials` | Данные аутентификации пользователей | |
| 69 | +| `LdapConfig` | Конфигурация LDAP-сервера | |
| 70 | + |
| 71 | +### Ключевые компоненты |
| 72 | +- **UsersUIACL**: Основная логика модификации ACL, интегрированная с MikoPBX |
| 73 | +- **UsersUIAuthenticator**: Обработка локальной и LDAP-аутентификации |
| 74 | +- **AutoLinkedActionsResolver**: Автоматическая связка прав UI↔API |
| 75 | +- **UsersUICDRFilter**: Фильтрация видимости CDR |
| 76 | + |
| 77 | +## Установка |
| 78 | + |
| 79 | +1. Скачайте модуль из маркетплейса MikoPBX или GitHub Releases |
| 80 | +2. Загрузите через **Модули → Установить модуль** в панели управления |
| 81 | +3. Включите модуль |
| 82 | +4. Настройте группы доступа и назначьте пользователей |
| 83 | + |
| 84 | +## Требования |
| 85 | + |
| 86 | +- MikoPBX 2025.1.1 или выше |
| 87 | +- PHP 8.3+ |
| 88 | +- Действующая лицензия (коммерческий модуль) |
| 89 | + |
| 90 | +## Настройка |
| 91 | + |
| 92 | +### Создание группы доступа |
| 93 | + |
| 94 | +1. Перейдите в **Модули → Управление доступом** |
| 95 | +2. Нажмите **Добавить группу доступа** |
| 96 | +3. Настройте: |
| 97 | + - Название и описание группы |
| 98 | + - Переключатель полного доступа (для администраторов) |
| 99 | + - Домашнюю страницу после входа |
| 100 | + - Права на интерфейс |
| 101 | + - Права на REST API |
| 102 | + - Настройки фильтра CDR |
| 103 | + |
| 104 | +### Добавление пользователей |
| 105 | + |
| 106 | +1. Перейдите в раздел **Сотрудники** |
| 107 | +2. Откройте карточку сотрудника |
| 108 | +3. На вкладке **Вход в MikoPBX**: |
| 109 | + - Включите доступ для входа |
| 110 | + - Задайте логин и пароль |
| 111 | + - Выберите группу доступа |
| 112 | + - При необходимости включите LDAP-аутентификацию |
| 113 | + |
| 114 | +### Настройка LDAP |
| 115 | + |
| 116 | +1. Перейдите на вкладку **Настройки LDAP** в модуле |
| 117 | +2. Настройте: |
| 118 | + - Адрес и порт сервера |
| 119 | + - Учётные данные администратора для запросов |
| 120 | + - Базовый DN |
| 121 | + - Фильтр пользователей и атрибуты |
| 122 | +3. Проверьте подключение и получение списка пользователей |
| 123 | + |
| 124 | +## Интеграция с API |
| 125 | + |
| 126 | +Модуль автоматически управляет правами для REST API v3: |
| 127 | + |
| 128 | +``` |
| 129 | +GET /pbxcore/api/v3/{resource} → getList |
| 130 | +GET /pbxcore/api/v3/{resource}/{id} → getRecord |
| 131 | +POST /pbxcore/api/v3/{resource} → create |
| 132 | +PUT /pbxcore/api/v3/{resource}/{id} → update |
| 133 | +DELETE /pbxcore/api/v3/{resource}/{id} → delete |
| 134 | +``` |
| 135 | + |
| 136 | +## Разработка |
| 137 | + |
| 138 | +### Запуск тестов |
| 139 | + |
| 140 | +```bash |
| 141 | +# Юнит-тесты (PHP) |
| 142 | +./vendor/bin/phpunit |
| 143 | + |
| 144 | +# Интеграционные тесты (Python) |
| 145 | +cd Tests/Integration |
| 146 | +pip install -r requirements.txt |
| 147 | +cp .env.example .env |
| 148 | +# Настройте .env для вашего экземпляра MikoPBX |
| 149 | +pytest |
| 150 | +``` |
| 151 | + |
| 152 | +### Структура проекта |
| 153 | + |
| 154 | +``` |
| 155 | +ModuleUsersUI/ |
| 156 | +├── App/ |
| 157 | +│ ├── Controllers/ # MVC-контроллеры |
| 158 | +│ ├── Forms/ # Формы Phalcon |
| 159 | +│ └── Views/ # Шаблоны Volt |
| 160 | +├── Lib/ |
| 161 | +│ ├── ACL/ # Логика контроля доступа |
| 162 | +│ └── *.php # Основные библиотеки |
| 163 | +├── Models/ # ORM-модели Phalcon |
| 164 | +├── Messages/ # Переводы (i18n) |
| 165 | +├── Setup/ # Скрипты установки |
| 166 | +├── Tests/ # Тестовые наборы |
| 167 | +└── public/assets/ # Фронтенд-ресурсы |
| 168 | +``` |
| 169 | + |
| 170 | +## Документация |
| 171 | + |
| 172 | +Полная документация доступна по ссылкам: |
| 173 | +- Русский: [docs.mikopbx.com/modules/miko/module-users-u-i](https://docs.mikopbx.com/mikopbx/modules/miko/module-users-u-i) |
| 174 | +- English: [docs.mikopbx.com/modules/miko/module-users-u-i](https://docs.mikopbx.com/mikopbx/v/english/modules/miko/module-users-u-i) |
| 175 | + |
| 176 | +## Поддержка |
| 177 | + |
| 178 | +- Telegram: [@mikopbx_dev](https://t.me/joinchat/AAPn5xSqZIpQnNnCAa3bBw) |
| 179 | +- Email: help@miko.ru |
| 180 | +- Проблемы: [GitHub Issues](https://github.com/mikopbx/ModuleUsersUI/issues) |
| 181 | + |
| 182 | +## Лицензия |
| 183 | + |
| 184 | +GPL-3.0-or-later — подробности в файле [LICENSE](LICENSE). |
| 185 | + |
| 186 | +Copyright © 2017-2025 MIKO LLC |
0 commit comments