diff --git a/upload/devcraft/locales/ru_RU/dleapi.xliff b/upload/devcraft/locales/ru_RU/dleapi.xliff
index fb0e903..aa479db 100644
--- a/upload/devcraft/locales/ru_RU/dleapi.xliff
+++ b/upload/devcraft/locales/ru_RU/dleapi.xliff
@@ -1,2 +1,1389 @@
-
-API-ключAPI-ключНовыйНовыйЗагрузка…Загрузка…КлючКлючКопироватьКопироватьКогдаКогдаИстекаетИстекаетУровеньУровеньЗапросить ключЗапросить ключОдобритьОдобритьОтказатьОтказатьМетод не разрешёнМетод не разрешёнДопустимоДопустимоМаршрут не найденМаршрут не найденНеверный или неактивный API-ключНеверный или неактивный API-ключНеверный логин или парольНеверный логин или парольНет API-ключа пользователя и гостевого ключаНет API-ключа пользователя и гостевого ключаНеверный client_id или client_secretНеверный client_id или client_secretКлиент не разрешает grant_type=client_credentialsКлиент не разрешает grant_type=client_credentialsAPI-ключ клиента неактивенAPI-ключ клиента неактивенНужны оба: client_id и client_secretНужны оба: client_id и client_secretКлиент не разрешает grant_type=passwordКлиент не разрешает grant_type=passwordНеверный clientНеверный clientКлиент не разрешает grant_type=authorization_codeКлиент не разрешает grant_type=authorization_codeКод недействителенКод недействителенredirect_uri не совпадаетredirect_uri не совпадаетОшибка проверки PKCEОшибка проверки PKCEAPI-ключ неактивенAPI-ключ неактивенRefresh token недействителенRefresh token недействителенСвязанный access token не найденСвязанный access token не найденКлиент или ключ неактивенКлиент или ключ неактивенКлиент не разрешает grant_type=refresh_tokenКлиент не разрешает grant_type=refresh_tokenНеизвестный или неактивный client_idНеизвестный или неактивный client_idУ клиента не задан redirect_uriУ клиента не задан redirect_uriredirect_uri не совпадает с зарегистрированным у клиентаredirect_uri не совпадает с зарегистрированным у клиентаПопытка взлома!Попытка взлома!Неподдерживаемый credential_typeНеподдерживаемый credential_typeУкажите credential_type или grant_typeУкажите credential_type или grant_typeНужны client_id и redirect_uriНужны client_id и redirect_uriАвторизация пройдена, но сброшена в демо-режимеАвторизация пройдена, но сброшена в демо-режимеНеизвестная таблицаНеизвестная таблицаЗапись не найденаЗапись не найденаНужен fields{} или name+valueНужен fields{} или name+valueПоле не найденоПоле не найденоНужен multipart field fileНужен multipart field fileНовость не найденаНовость не найденаМетод требует значениеМетод требует значениеНельзя выполнить операцию: не задан первичный ключ.Нельзя выполнить операцию: не задан первичный ключ.Неизвестная колонка «{column}» для таблицы {table}Неизвестная колонка «{column}» для таблицы {table}Нет права «{action}» на таблицу «{table}»Нет права «{action}» на таблицу «{table}»Неизвестный методНеизвестный методБезопасностьБезопасностьАлгоритм HMACАлгоритм HMACАлгоритм для генерации API-ключей.Алгоритм для генерации API-ключей.СекретСекретСекретная строка для HMAC. Оставьте пустым для автогенерации при сохранении.Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении.Длина ключаДлина ключаДлина генерируемого API-ключа.Длина генерируемого API-ключа.Маскировать чувствительные поляМаскировать чувствительные поляЗадано DEMO_MODE в .env — маскирование принудительно включено.Задано DEMO_MODE в .env — маскирование принудительно включено.Скрывать пароли, IP и хеши в ответах API (CRUD).Скрывать пароли, IP и хеши в ответах API (CRUD).OAuth2OAuth2TTL access token (сек)TTL access token (сек)Время жизни access token в секундах.Время жизни access token в секундах.Уровни доступаУровни доступаУровень доступа по умолчаниюУровень доступа по умолчаниюИспользуется при самогенерации ключа и если группа DLE не привязана на странице синхронизации.Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации.Профиль пользователяПрофиль пользователяПоказывать блок API-ключа в профилеПоказывать блок API-ключа в профилеЕсли выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys.Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys.Разрешить пользователям генерировать ключРазрешить пользователям генерировать ключЕсли выключено — кнопка запроса не показывается; ключ выдаёт администратор.Если выключено — кнопка запроса не показывается; ключ выдаёт администратор.Уведомления о заявкахУведомления о заявкахУведомлять по почте при заявке на ключУведомлять по почте при заявке на ключЛС на сайте при заявке на ключЛС на сайте при заявке на ключГруппы DLEГруппы DLEПолучатели уведомлений о заявках.Получатели уведомлений о заявках.ПользователиПользователиДополнительные получатели уведомлений о заявках (по user_id).Дополнительные получатели уведомлений о заявках (по user_id).PM: тема заявкиPM: тема заявкиТема личного сообщения для администраторов о новой заявке на API-ключ.Тема личного сообщения для администраторов о новой заявке на API-ключ.Плейсхолдеры заявки (PM)Плейсхолдеры заявки (PM)Заявка на API-ключЗаявка на API-ключPM: текст заявкиPM: текст заявкиТекст личного сообщения администраторам о новой заявке на API-ключ.Текст личного сообщения администраторам о новой заявке на API-ключ.Уведомления о решенииУведомления о решенииУведомлять по почте об одобрении / отказеУведомлять по почте об одобрении / отказеЛС об одобрении / отказеЛС об одобрении / отказеPM: тема одобренияPM: тема одобренияТема личного сообщения пользователю при одобрении API-ключа.Тема личного сообщения пользователю при одобрении API-ключа.Плейсхолдеры одобрения (PM)Плейсхолдеры одобрения (PM)API-ключ одобренAPI-ключ одобренPM: текст одобренияPM: текст одобренияТекст личного сообщения пользователю при одобрении API-ключа.Текст личного сообщения пользователю при одобрении API-ключа.PM: тема отказаPM: тема отказаТема личного сообщения пользователю при отказе в API-ключе.Тема личного сообщения пользователю при отказе в API-ключе.Плейсхолдеры отказа (PM)Плейсхолдеры отказа (PM)API-ключ отклонёнAPI-ключ отклонёнPM: текст отказаPM: текст отказаТекст личного сообщения пользователю при отказе в API-ключе.Текст личного сообщения пользователю при отказе в API-ключе.Ваша заявка на API-ключ отклонена.Ваша заявка на API-ключ отклонена.Email-шаблоныEmail-шаблоныEmail: тема заявкиEmail: тема заявкиТема письма администраторам о новой заявке на API-ключ.Тема письма администраторам о новой заявке на API-ключ.Плейсхолдеры заявки (email)Плейсхолдеры заявки (email)Email: тело заявкиEmail: тело заявкиHTML или текст письма администраторам о новой заявке на API-ключ.HTML или текст письма администраторам о новой заявке на API-ключ.Email: тема одобренияEmail: тема одобренияТема письма пользователю при одобрении API-ключа.Тема письма пользователю при одобрении API-ключа.Плейсхолдеры решения (email)Плейсхолдеры решения (email)Email: тема отказаEmail: тема отказаТема письма пользователю при отказе в API-ключе.Тема письма пользователю при отказе в API-ключе.Email: тело решенияEmail: тело решенияHTML или текст письма пользователю при одобрении либо отказе в API-ключе.HTML или текст письма пользователю при одобрении либо отказе в API-ключе.Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2ГлавнаяГлавнаяAPI-ключиAPI-ключиСинхронизация с группамиСинхронизация с группамиЗаявки на ключЗаявки на ключOAuth-клиентыOAuth-клиентыНастройкиНастройкиЖурнал измененийЖурнал измененийСписок API-ключейСписок API-ключейАктивенАктивенПользовательПользовательДействияДействияДаДаПраваПраваОтключитьОтключитьУдалитьУдалитьКлючей пока нетКлючей пока нетСоздать ключСоздать ключПоказать формуПоказать формуСкрыть формуСкрыть формуУровень доступаУровень доступа— вручную / без уровня —— вручную / без уровня —При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже.При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже.СоздатьСоздатьСохранитьСохранитьОтменаОтменаПрава доступа к таблицам (если уровень не задан или для legacy-ключей)Права доступа к таблицам (если уровень не задан или для legacy-ключей)Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется.Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется.ТаблицаТаблицаЧтениеЧтениеВключить всеВключить всеЗаписьЗаписьПравкаПравкаУдалениеУдалениеСписок таблиц SchemaRegistry пустСписок таблиц SchemaRegistry пустЕсли группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную.Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную.Группа DLE → уровень доступаГруппа DLE → уровень доступаГруппаГруппа— не задано —— не задано —Группы не найденыГруппы не найденыЭндпоинты Authorization ServerЭндпоинты Authorization ServerСкопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP).Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP).Сохраните client_secret сейчасСохраните client_secret сейчасон показывается один раз и больше не будет доступен.он показывается один раз и больше не будет доступен.СкрытьСкрытьИмяИмяИзменитьИзменитьКлиентов пока нетКлиентов пока нетСоздать клиентСоздать клиентOAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается.OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается.Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret».Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret».Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать.Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать.Пересоздать client_secretПересоздать client_secretНовый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента.Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента.НазваниеНазваниеНапр. Mobile app, CI, PostmanНапр. Mobile app, CI, PostmanТолько для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id.Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id.— выберите —— выберите —Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи».Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи».Redirect URIRedirect URIСсылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым.Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым.Grant typesGrant typesсервер-сервер без пользователясервер-сервер без пользователялогин/пароль пользователя DLEлогин/пароль пользователя DLEбраузерный OAuth-код (нужен Redirect URI)браузерный OAuth-код (нужен Redirect URI)обновление access_tokenобновление access_tokenКакие способы получения токена разрешены этому клиенту. Хотя бы один обязателен.Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен.Неактивный клиент не сможет получать новые токены.Неактивный клиент не сможет получать новые токены.Заявки на API-ключЗаявки на API-ключСтатусСтатусДатаДатаОтклонитьОтклонитьЗаявок нетЗаявок нетСорт.Сорт.Премод.Премод.Уровней пока нетУровней пока нетСоздать уровеньСоздать уровеньСортировкаСортировкаПремодерация заявок на ключПремодерация заявок на ключТолько свои записиТолько свои записиПолный доступ (cheater)Полный доступ (cheater)Маскировать IPМаскировать IPМаскировать пароли/хешиМаскировать пароли/хешиМаскировать лишние ПДнМаскировать лишние ПДнScopes уровня (read / write / edit / delete)Scopes уровня (read / write / edit / delete)API v2 (/api/v2) на CycleORM из DevCraft Admin.API v2 (/api/v2) на CycleORM из DevCraft Admin.OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer.OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer.credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo.credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo.OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL.OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL.Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX).Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX).DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml.DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml.Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK).Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK).Каталог Schema таблиц DLE в api/includes/Schemas.Каталог Schema таблиц DLE в api/includes/Schemas.OpenAPI (swagger-php) и документация OAD в mhdocs.OpenAPI (swagger-php) и документация OAD в mhdocs.Загрузка файлов через штатный пайплайн DLE.Загрузка файлов через штатный пайплайн DLE.Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12).Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12).Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация).Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация).HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard.HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard.SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema().SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema().Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray).Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray).GET-кэш TableQuery через CacheControl (dle_api_query, TTL).GET-кэш TableQuery через CacheControl (dle_api_query, TTL).Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption.Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption.Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md).Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md).Совместимость с DLE 20.0 (xfields.json, dual category, conversations).Совместимость с DLE 20.0 (xfields.json, dual category, conversations).Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml.Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml.Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2.Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2.OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php.OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php.API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён.API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён.Приём сырого API-ключа как Bearer на ресурсах /table.Приём сырого API-ключа как Bearer на ресурсах /table.Оптимизация кода под PHP 8.2Оптимизация кода под PHP 8.2Минимально поддерживаемая версия DLE - 16.0Минимально поддерживаемая версия DLE - 16.0Изменён список алгоритмов на hash_hmac_algosИзменён список алгоритмов на hash_hmac_algosУбрана процедура проверки атрибута в таблицеУбрана процедура проверки атрибута в таблицеОптимизирован кодОптимизирован кодГенерация ключа привязана к времениГенерация ключа привязана к времениДобавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный"Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный"Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документациюДобавлена возможность генерировать свои рутеры на основе базы данных => читайте документациюОбновлены данные для таблиц базы данныхОбновлены данные для таблиц базы данныхОбновлена документация APIОбновлена документация APIМинимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.хМинимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.хБезопасный вывод данных (IP, пароли и хэш суммы)Безопасный вывод данных (IP, пароли и хэш суммы)Добавлена функция вывода только принадлежащих API-ключу записейДобавлена функция вывода только принадлежащих API-ключу записейДобавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений)Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений)Для удаления новостей была использована функция движкаДля удаления новостей была использована функция движкаДля удаления комментариев была использована функция движкаДля удаления комментариев была использована функция движкаИзменил нумерование версийИзменил нумерование версийcomposer настроил под версию PHP 5.6composer настроил под версию PHP 5.6Были исправлены несколько багов, спасибо @jyaraliБыли исправлены несколько багов, спасибо @jyaraliИсправлена проверка ключей в базе данныхИсправлена проверка ключей в базе данныхДобавлена проверка по длине значения для типа "string"Добавлена проверка по длине значения для типа "string"Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет)Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет)Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователейДля пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователейДля авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде.Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде.Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей.Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей.При регистрации и авторизации возвращается массив данных об этом пользователеПри регистрации и авторизации возвращается массив данных об этом пользователеПервая стандартная версияПервая стандартная версиягостьгостьDLE APIDLE APIГенерация ключа запрещенаГенерация ключа запрещенаУ вас уже есть активный API-ключУ вас уже есть активный API-ключНе задан уровень доступа по умолчаниюНе задан уровень доступа по умолчаниюЗаявка уже ожидает рассмотренияЗаявка уже ожидает рассмотренияЗаявка отправлена на модерациюЗаявка отправлена на модерациюОшибкаОшибкаНекорректный идентификаторНекорректный идентификаторЗаявка не найденаЗаявка не найденаЗаявка уже обработанаЗаявка уже обработанаОдобреноОдобреноОтклоненоОтклоненоКлюч созданКлюч созданRedirect URI должен быть ссылкой http(s)Redirect URI должен быть ссылкой http(s)Выберите хотя бы один grant_typeВыберите хотя бы один grant_typeУкажите действующий API-ключУкажите действующий API-ключКлиент не найденКлиент не найденКлиент сохранёнКлиент сохранёнСинхронизация сохраненаСинхронизация сохраненаКлюч не найденКлюч не найденСхема настроек недоступнаСхема настроек недоступнаФайл конфигурации недоступен для записиФайл конфигурации недоступен для записиКаталог конфигурации недоступен для записиКаталог конфигурации недоступен для записиВсе поля недействительныВсе поля недействительныВниманиеВниманиеЧастичное сохранение с ошибкамиЧастичное сохранение с ошибкамиСохраненоСохраненоКлюч сохранёнКлюч сохранёнКлюч удалёнКлюч удалёнclient_secret пересозданclient_secret пересозданКлюч включёнКлюч включёнКлюч отключёнКлюч отключёнУдаленоУдаленоТребуется авторизацияТребуется авторизацияНедостаточно правНедостаточно правНельзя запрашивать ключ за другого пользователяНельзя запрашивать ключ за другого пользователяНе удалосьНе удалосьНедостаточно прав для модерацииНедостаточно прав для модерацииЗаявка не найдена или уже обработанаЗаявка не найдена или уже обработанаУровень не найденУровень не найденУкажите название уровняУкажите название уровняOAuth-клиент созданOAuth-клиент созданКлиент удалёнКлиент удалёнИстория измененийИстория изменений
\ No newline at end of file
+
+
+
+
+
+ API-ключ
+ API-ключ
+
+
+ Новый
+ Новый
+
+
+ Загрузка…
+ Загрузка…
+
+
+ Ключ
+ Ключ
+
+
+ Копировать
+ Копировать
+
+
+ Когда
+ Когда
+
+
+ Истекает
+ Истекает
+
+
+ Уровень
+ Уровень
+
+
+ Запросить ключ
+ Запросить ключ
+
+
+ Одобрить
+ Одобрить
+
+
+ Отказать
+ Отказать
+
+
+ Метод не разрешён
+ Метод не разрешён
+
+
+ Допустимо
+ Допустимо
+
+
+ Маршрут не найден
+ Маршрут не найден
+
+
+ Неверный или неактивный API-ключ
+ Неверный или неактивный API-ключ
+
+
+ Неверный логин или пароль
+ Неверный логин или пароль
+
+
+ Нет API-ключа пользователя и гостевого ключа
+ Нет API-ключа пользователя и гостевого ключа
+
+
+ Неверный client_id или client_secret
+ Неверный client_id или client_secret
+
+
+ Клиент не разрешает grant_type=client_credentials
+ Клиент не разрешает grant_type=client_credentials
+
+
+ API-ключ клиента неактивен
+ API-ключ клиента неактивен
+
+
+ Нужны оба: client_id и client_secret
+ Нужны оба: client_id и client_secret
+
+
+ Клиент не разрешает grant_type=password
+ Клиент не разрешает grant_type=password
+
+
+ Неверный client
+ Неверный client
+
+
+ Клиент не разрешает grant_type=authorization_code
+ Клиент не разрешает grant_type=authorization_code
+
+
+ Код недействителен
+ Код недействителен
+
+
+ redirect_uri не совпадает
+ redirect_uri не совпадает
+
+
+ Ошибка проверки PKCE
+ Ошибка проверки PKCE
+
+
+ API-ключ неактивен
+ API-ключ неактивен
+
+
+ Refresh token недействителен
+ Refresh token недействителен
+
+
+ Связанный access token не найден
+ Связанный access token не найден
+
+
+ Клиент или ключ неактивен
+ Клиент или ключ неактивен
+
+
+ Клиент не разрешает grant_type=refresh_token
+ Клиент не разрешает grant_type=refresh_token
+
+
+ Неизвестный или неактивный client_id
+ Неизвестный или неактивный client_id
+
+
+ У клиента не задан redirect_uri
+ У клиента не задан redirect_uri
+
+
+ redirect_uri не совпадает с зарегистрированным у клиента
+ redirect_uri не совпадает с зарегистрированным у клиента
+
+
+ Попытка взлома!
+ Попытка взлома!
+
+
+ Неподдерживаемый credential_type
+ Неподдерживаемый credential_type
+
+
+ Укажите credential_type или grant_type
+ Укажите credential_type или grant_type
+
+
+ Нужны client_id и redirect_uri
+ Нужны client_id и redirect_uri
+
+
+ Авторизация пройдена, но сброшена в демо-режиме
+ Авторизация пройдена, но сброшена в демо-режиме
+
+
+ Неизвестная таблица
+ Неизвестная таблица
+
+
+ Запись не найдена
+ Запись не найдена
+
+
+ Нужен fields{} или name+value
+ Нужен fields{} или name+value
+
+
+ Поле не найдено
+ Поле не найдено
+
+
+ Нужен multipart field file
+ Нужен multipart field file
+
+
+ Новость не найдена
+ Новость не найдена
+
+
+ Метод требует значение
+ Метод требует значение
+
+
+ Нельзя выполнить операцию: не задан первичный ключ.
+ Нельзя выполнить операцию: не задан первичный ключ.
+
+
+ Неизвестная колонка «{column}» для таблицы {table}
+ Неизвестная колонка «{column}» для таблицы {table}
+
+
+ Нет права «{action}» на таблицу «{table}»
+ Нет права «{action}» на таблицу «{table}»
+
+
+ Неизвестный метод
+ Неизвестный метод
+
+
+ Безопасность
+ Безопасность
+
+
+ Алгоритм HMAC
+ Алгоритм HMAC
+
+
+ Алгоритм для генерации API-ключей.
+ Алгоритм для генерации API-ключей.
+
+
+ Секрет
+ Секрет
+
+
+ Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении.
+ Секретная строка для HMAC. Оставьте пустым для автогенерации при сохранении.
+
+
+ Длина ключа
+ Длина ключа
+
+
+ Длина генерируемого API-ключа.
+ Длина генерируемого API-ключа.
+
+
+ Маскировать чувствительные поля
+ Маскировать чувствительные поля
+
+
+ Задано DEMO_MODE в .env — маскирование принудительно включено.
+ Задано DEMO_MODE в .env — маскирование принудительно включено.
+
+
+ Скрывать пароли, IP и хеши в ответах API (CRUD).
+ Скрывать пароли, IP и хеши в ответах API (CRUD).
+
+
+ OAuth2
+ OAuth2
+
+
+ TTL access token (сек)
+ TTL access token (сек)
+
+
+ Время жизни access token в секундах.
+ Время жизни access token в секундах.
+
+
+ Уровни доступа
+ Уровни доступа
+
+
+ Уровень доступа по умолчанию
+ Уровень доступа по умолчанию
+
+
+ Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации.
+ Используется при самогенерации ключа и если группа DLE не привязана на странице синхронизации.
+
+
+ Профиль пользователя
+ Профиль пользователя
+
+
+ Показывать блок API-ключа в профиле
+ Показывать блок API-ключа в профиле
+
+
+ Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys.
+ Если выключено — блок виден только при включённой самогенерации / заявке. Ключ берётся из таблицы api_keys.
+
+
+ Разрешить пользователям генерировать ключ
+ Разрешить пользователям генерировать ключ
+
+
+ Если выключено — кнопка запроса не показывается; ключ выдаёт администратор.
+ Если выключено — кнопка запроса не показывается; ключ выдаёт администратор.
+
+
+ Уведомления о заявках
+ Уведомления о заявках
+
+
+ Уведомлять по почте при заявке на ключ
+ Уведомлять по почте при заявке на ключ
+
+
+ ЛС на сайте при заявке на ключ
+ ЛС на сайте при заявке на ключ
+
+
+ Группы DLE
+ Группы DLE
+
+
+ Получатели уведомлений о заявках.
+ Получатели уведомлений о заявках.
+
+
+ Пользователи
+ Пользователи
+
+
+ Дополнительные получатели уведомлений о заявках (по user_id).
+ Дополнительные получатели уведомлений о заявках (по user_id).
+
+
+ PM: тема заявки
+ PM: тема заявки
+
+
+ Тема личного сообщения для администраторов о новой заявке на API-ключ.
+ Тема личного сообщения для администраторов о новой заявке на API-ключ.
+
+
+ Плейсхолдеры заявки (PM)
+ Плейсхолдеры заявки (PM)
+
+
+ Заявка на API-ключ
+ Заявка на API-ключ
+
+
+ PM: текст заявки
+ PM: текст заявки
+
+
+ Текст личного сообщения администраторам о новой заявке на API-ключ.
+ Текст личного сообщения администраторам о новой заявке на API-ключ.
+
+
+ Уведомления о решении
+ Уведомления о решении
+
+
+ Уведомлять по почте об одобрении / отказе
+ Уведомлять по почте об одобрении / отказе
+
+
+ ЛС об одобрении / отказе
+ ЛС об одобрении / отказе
+
+
+ PM: тема одобрения
+ PM: тема одобрения
+
+
+ Тема личного сообщения пользователю при одобрении API-ключа.
+ Тема личного сообщения пользователю при одобрении API-ключа.
+
+
+ Плейсхолдеры одобрения (PM)
+ Плейсхолдеры одобрения (PM)
+
+
+ API-ключ одобрен
+ API-ключ одобрен
+
+
+ PM: текст одобрения
+ PM: текст одобрения
+
+
+ Текст личного сообщения пользователю при одобрении API-ключа.
+ Текст личного сообщения пользователю при одобрении API-ключа.
+
+
+ PM: тема отказа
+ PM: тема отказа
+
+
+ Тема личного сообщения пользователю при отказе в API-ключе.
+ Тема личного сообщения пользователю при отказе в API-ключе.
+
+
+ Плейсхолдеры отказа (PM)
+ Плейсхолдеры отказа (PM)
+
+
+ API-ключ отклонён
+ API-ключ отклонён
+
+
+ PM: текст отказа
+ PM: текст отказа
+
+
+ Текст личного сообщения пользователю при отказе в API-ключе.
+ Текст личного сообщения пользователю при отказе в API-ключе.
+
+
+ Ваша заявка на API-ключ отклонена.
+ Ваша заявка на API-ключ отклонена.
+
+
+ Email-шаблоны
+ Email-шаблоны
+
+
+ Email: тема заявки
+ Email: тема заявки
+
+
+ Тема письма администраторам о новой заявке на API-ключ.
+ Тема письма администраторам о новой заявке на API-ключ.
+
+
+ Плейсхолдеры заявки (email)
+ Плейсхолдеры заявки (email)
+
+
+ Email: тело заявки
+ Email: тело заявки
+
+
+ HTML или текст письма администраторам о новой заявке на API-ключ.
+ HTML или текст письма администраторам о новой заявке на API-ключ.
+
+
+ Email: тема одобрения
+ Email: тема одобрения
+
+
+ Тема письма пользователю при одобрении API-ключа.
+ Тема письма пользователю при одобрении API-ключа.
+
+
+ Плейсхолдеры решения (email)
+ Плейсхолдеры решения (email)
+
+
+ Email: тема отказа
+ Email: тема отказа
+
+
+ Тема письма пользователю при отказе в API-ключе.
+ Тема письма пользователю при отказе в API-ключе.
+
+
+ Email: тело решения
+ Email: тело решения
+
+
+ HTML или текст письма пользователю при одобрении либо отказе в API-ключе.
+ HTML или текст письма пользователю при одобрении либо отказе в API-ключе.
+
+
+ Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2
+ Неофициальное REST/SDK API для DLE: ключи, OAuth2 Bearer, /api/v2
+
+
+ Главная
+ Главная
+
+
+ API-ключи
+ API-ключи
+
+
+ Синхронизация с группами
+ Синхронизация с группами
+
+
+ Заявки на ключ
+ Заявки на ключ
+
+
+ OAuth-клиенты
+ OAuth-клиенты
+
+
+ Настройки
+ Настройки
+
+
+ Журнал изменений
+ Журнал изменений
+
+
+ Список API-ключей
+ Список API-ключей
+
+
+ Активен
+ Активен
+
+
+ Пользователь
+ Пользователь
+
+
+ Действия
+ Действия
+
+
+ Да
+ Да
+
+
+ Права
+ Права
+
+
+ Отключить
+ Отключить
+
+
+ Удалить
+ Удалить
+
+
+ Ключей пока нет
+ Ключей пока нет
+
+
+ Создать ключ
+ Создать ключ
+
+
+ Показать форму
+ Показать форму
+
+
+ Скрыть форму
+ Скрыть форму
+
+
+ Уровень доступа
+ Уровень доступа
+
+
+ — вручную / без уровня —
+ — вручную / без уровня —
+
+
+ При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже.
+ При выборе уровня флаги own_only/cheater берутся из уровня. Без уровня — матрица scopes ниже.
+
+
+ Создать
+ Создать
+
+
+ Сохранить
+ Сохранить
+
+
+ Отмена
+ Отмена
+
+
+ Права доступа к таблицам (если уровень не задан или для legacy-ключей)
+ Права доступа к таблицам (если уровень не задан или для legacy-ключей)
+
+
+ Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется.
+ Чтение — просмотр; Запись — создание; Правка — изменение; Удаление — удаление. При уровне с cheater матрица игнорируется.
+
+
+ Таблица
+ Таблица
+
+
+ Чтение
+ Чтение
+
+
+ Включить все
+ Включить все
+
+
+ Запись
+ Запись
+
+
+ Правка
+ Правка
+
+
+ Удаление
+ Удаление
+
+
+ Список таблиц SchemaRegistry пуст
+ Список таблиц SchemaRegistry пуст
+
+
+ Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную.
+ Если группа не привязана — при самогенерации используется уровень по умолчанию из настроек; на ключах уровень задаётся вручную.
+
+
+ Группа DLE → уровень доступа
+ Группа DLE → уровень доступа
+
+
+ Группа
+ Группа
+
+
+ — не задано —
+ — не задано —
+
+
+ Группы не найдены
+ Группы не найдены
+
+
+ Эндпоинты Authorization Server
+ Эндпоинты Authorization Server
+
+
+ Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP).
+ Скопируйте URL для интеграции внешних OAuth-клиентов (DLE = IdP).
+
+
+ Сохраните client_secret сейчас
+ Сохраните client_secret сейчас
+
+
+ он показывается один раз и больше не будет доступен.
+ он показывается один раз и больше не будет доступен.
+
+
+ Скрыть
+ Скрыть
+
+
+ Имя
+ Имя
+
+
+ Изменить
+ Изменить
+
+
+ Клиентов пока нет
+ Клиентов пока нет
+
+
+ Создать клиент
+ Создать клиент
+
+
+ OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается.
+ OAuth-клиент выдаёт access_token для вызовов /api/v2. Права запросов берёт из выбранного API-ключа (scopes). После создания сохраните client_id и client_secret — секрет больше не показывается.
+
+
+ Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret».
+ Редактирование: название, API-ключ, Redirect URI, grant types и активность. client_id не меняется; секрет — только через «Пересоздать client_secret».
+
+
+ Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать.
+ Идентификатор клиента не меняется. Секрет можно перевыпустить кнопкой ниже — старый сразу перестанет работать.
+
+
+ Пересоздать client_secret
+ Пересоздать client_secret
+
+
+ Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента.
+ Новый секрет покажется один раз над таблицей. Обновите его во всех приложениях, которые используют этого клиента.
+
+
+ Название
+ Название
+
+
+ Напр. Mobile app, CI, Postman
+ Напр. Mobile app, CI, Postman
+
+
+ Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id.
+ Только для списка в админке. На выдачу токенов не влияет. Если пусто — подставится client_id.
+
+
+ — выберите —
+ — выберите —
+
+
+ Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи».
+ Обязательно. Определяет, к каким таблицам и с какими правами (read/write/delete) сможет обращаться Bearer-токен этого клиента. Ключ создаётся на вкладке «Ключи».
+
+
+ Redirect URI
+ Redirect URI
+
+
+ Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым.
+ Ссылка http(s). Нужна для grant authorization_code. Должна точно совпадать с redirect_uri при /oauth/authorize и обмене кода. Для password / client_credentials можно оставить пустым.
+
+
+ Grant types
+ Grant types
+
+
+ сервер-сервер без пользователя
+ сервер-сервер без пользователя
+
+
+ логин/пароль пользователя DLE
+ логин/пароль пользователя DLE
+
+
+ браузерный OAuth-код (нужен Redirect URI)
+ браузерный OAuth-код (нужен Redirect URI)
+
+
+ обновление access_token
+ обновление access_token
+
+
+ Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен.
+ Какие способы получения токена разрешены этому клиенту. Хотя бы один обязателен.
+
+
+ Неактивный клиент не сможет получать новые токены.
+ Неактивный клиент не сможет получать новые токены.
+
+
+ Заявки на API-ключ
+ Заявки на API-ключ
+
+
+ Статус
+ Статус
+
+
+ Дата
+ Дата
+
+
+ Отклонить
+ Отклонить
+
+
+ Заявок нет
+ Заявок нет
+
+
+ Сорт.
+ Сорт.
+
+
+ Премод.
+ Премод.
+
+
+ Уровней пока нет
+ Уровней пока нет
+
+
+ Создать уровень
+ Создать уровень
+
+
+ Сортировка
+ Сортировка
+
+
+ Премодерация заявок на ключ
+ Премодерация заявок на ключ
+
+
+ Только свои записи
+ Только свои записи
+
+
+ Полный доступ (cheater)
+ Полный доступ (cheater)
+
+
+ Маскировать IP
+ Маскировать IP
+
+
+ Маскировать пароли/хеши
+ Маскировать пароли/хеши
+
+
+ Маскировать лишние ПДн
+ Маскировать лишние ПДн
+
+
+ Scopes уровня (read / write / edit / delete)
+ Scopes уровня (read / write / edit / delete)
+
+
+ API v2 (/api/v2) на CycleORM из DevCraft Admin.
+ API v2 (/api/v2) на CycleORM из DevCraft Admin.
+
+
+ OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer.
+ OAuth2 Authorization Server: authorize, token, revoke; доступ только через Bearer.
+
+
+ credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo.
+ credential_type api_key|auth|oauth_client; ресурсы только AuthToken; GET /me и /oauth/userinfo.
+
+
+ OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL.
+ OAuth AS discovery, authorize по сессии DLE, копируемые endpoint URL.
+
+
+ Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX).
+ Уровни доступа, синхронизация с группами, заявки на ключ, профиль (public AJAX).
+
+
+ DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml.
+ DEMO_MODE / DLEAPI_SECURE из .env; email-шаблоны через install.xml.
+
+
+ Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK).
+ Fluent-билдеры prepareNewPost / prepareNewUser / preparePlugin / prepareNewUsergroup (in-process и HTTP SDK).
+
+
+ Каталог Schema таблиц DLE в api/includes/Schemas.
+ Каталог Schema таблиц DLE в api/includes/Schemas.
+
+
+ OpenAPI (swagger-php) и документация OAD в mhdocs.
+ OpenAPI (swagger-php) и документация OAD в mhdocs.
+
+
+ Загрузка файлов через штатный пайплайн DLE.
+ Загрузка файлов через штатный пайплайн DLE.
+
+
+ Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12).
+ Фильтр постов по одной категории при нескольких (FIND_IN_SET / issue #12).
+
+
+ Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация).
+ Админ-модуль DleApi для DevCraft Admin ≥ 200.4.0 (только конфигурация).
+
+
+ HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard.
+ HTTP /table/{name}: интроспекция таблиц вне SchemaRegistry + TableScopeGuard.
+
+
+ SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema().
+ SDK facades: DcApi::news() / user() / comment() / conversation() / plugin() / file() / staticPage() / schema().
+
+
+ Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray).
+ Fluent CRUD на AbstractTableSchema (with / create / save / delete / filter / fromArray).
+
+
+ GET-кэш TableQuery через CacheControl (dle_api_query, TTL).
+ GET-кэш TableQuery через CacheControl (dle_api_query, TTL).
+
+
+ Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption.
+ Админка: multi получатели уведомлений, WYSIWYG для PM; panel-title через caption.
+
+
+ Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md).
+ Админка: FormPanel ключей/уровней/OAuth свёрнут на узком экране (Metro d-none / d-block-md).
+
+
+ Совместимость с DLE 20.0 (xfields.json, dual category, conversations).
+ Совместимость с DLE 20.0 (xfields.json, dual category, conversations).
+
+
+ Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml.
+ Таблицы api_keys / api_scope / OAuth создаются Cycle-миграциями DevCraft (Models + AbstractEntity), а не DDL в install.xml.
+
+
+ Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2.
+ Scopes: колонка edit; own_only/cheater на уровне; trailing slash на всех маршрутах v2.
+
+
+ OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php.
+ OpenAPI: описание ApiError без PHPDoc {@see}; Schema без пометки install.php.
+
+
+ API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён.
+ API v1 (Slim + Illuminate Capsule, X-Api-Key) полностью удалён.
+
+
+ Приём сырого API-ключа как Bearer на ресурсах /table.
+ Приём сырого API-ключа как Bearer на ресурсах /table.
+
+
+ Оптимизация кода под PHP 8.2
+ Оптимизация кода под PHP 8.2
+
+
+ Минимально поддерживаемая версия DLE - 16.0
+ Минимально поддерживаемая версия DLE - 16.0
+
+
+ Изменён список алгоритмов на hash_hmac_algos
+ Изменён список алгоритмов на hash_hmac_algos
+
+
+ Убрана процедура проверки атрибута в таблице
+ Убрана процедура проверки атрибута в таблице
+
+
+ Оптимизирован код
+ Оптимизирован код
+
+
+ Генерация ключа привязана к времени
+ Генерация ключа привязана к времени
+
+
+ Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный"
+ Добавлена возможность добавлять ключи независимо от пользователя => для этого нужно выбрать в меню пользователя "Гость / Неавторизованный"
+
+
+ Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию
+ Добавлена возможность генерировать свои рутеры на основе базы данных => читайте документацию
+
+
+ Обновлены данные для таблиц базы данных
+ Обновлены данные для таблиц базы данных
+
+
+ Обновлена документация API
+ Обновлена документация API
+
+
+ Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х
+ Минимальные требования к серверу поднял до минимально требуемой версии от DLE-News -> 7.4, возможно не будет работать на версиях ниже 15.х
+
+
+ Безопасный вывод данных (IP, пароли и хэш суммы)
+ Безопасный вывод данных (IP, пароли и хэш суммы)
+
+
+ Добавлена функция вывода только принадлежащих API-ключу записей
+ Добавлена функция вывода только принадлежащих API-ключу записей
+
+
+ Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений)
+ Добавлена функция массовых действий (удаление, (де-)активация, снятие / добавление ограничение, снятие / удаление администраторских ограничений)
+
+
+ Для удаления новостей была использована функция движка
+ Для удаления новостей была использована функция движка
+
+
+ Для удаления комментариев была использована функция движка
+ Для удаления комментариев была использована функция движка
+
+
+ Изменил нумерование версий
+ Изменил нумерование версий
+
+
+ composer настроил под версию PHP 5.6
+ composer настроил под версию PHP 5.6
+
+
+ Были исправлены несколько багов, спасибо @jyarali
+ Были исправлены несколько багов, спасибо @jyarali
+
+
+ Исправлена проверка ключей в базе данных
+ Исправлена проверка ключей в базе данных
+
+
+ Добавлена проверка по длине значения для типа "string"
+ Добавлена проверка по длине значения для типа "string"
+
+
+ Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет)
+ Массивы с ячейками таблиц были обновлены до значений DLE 14.1 (на ранние версии DLE это никак не влияет)
+
+
+ Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей
+ Для пользователей был использован штатный API класс самой DLE, чтобы авторизовать и регистрировать пользователей
+
+
+ Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде.
+ Для авторизации пользователей нужно при помощи метода POST указать следующий путь URL: api/v1/users/auth. В заголовке обязательно должны быть значения имя пользователя и его пароль в незакодированном виде.
+
+
+ Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей.
+ Для регистрации пользователя нужно при помощи метода POST указать следующий путь URL: api/v1/users/register. В заголовке нужно указать имя пользователя, пароль, электронную почту и ID группы пользователей.
+
+
+ При регистрации и авторизации возвращается массив данных об этом пользователе
+ При регистрации и авторизации возвращается массив данных об этом пользователе
+
+
+ Первая стандартная версия
+ Первая стандартная версия
+
+
+ гость
+ гость
+
+
+ DLE API
+ DLE API
+
+
+ Генерация ключа запрещена
+ Генерация ключа запрещена
+
+
+ У вас уже есть активный API-ключ
+ У вас уже есть активный API-ключ
+
+
+ Не задан уровень доступа по умолчанию
+ Не задан уровень доступа по умолчанию
+
+
+ Заявка уже ожидает рассмотрения
+ Заявка уже ожидает рассмотрения
+
+
+ Заявка отправлена на модерацию
+ Заявка отправлена на модерацию
+
+
+ Ошибка
+ Ошибка
+
+
+ Некорректный идентификатор
+ Некорректный идентификатор
+
+
+ Заявка не найдена
+ Заявка не найдена
+
+
+ Заявка уже обработана
+ Заявка уже обработана
+
+
+ Одобрено
+ Одобрено
+
+
+ Отклонено
+ Отклонено
+
+
+ Ключ создан
+ Ключ создан
+
+
+ Redirect URI должен быть ссылкой http(s)
+ Redirect URI должен быть ссылкой http(s)
+
+
+ Выберите хотя бы один grant_type
+ Выберите хотя бы один grant_type
+
+
+ Укажите действующий API-ключ
+ Укажите действующий API-ключ
+
+
+ Клиент не найден
+ Клиент не найден
+
+
+ Клиент сохранён
+ Клиент сохранён
+
+
+ Синхронизация сохранена
+ Синхронизация сохранена
+
+
+ Ключ не найден
+ Ключ не найден
+
+
+ Схема настроек недоступна
+ Схема настроек недоступна
+
+
+ Файл конфигурации недоступен для записи
+ Файл конфигурации недоступен для записи
+
+
+ Каталог конфигурации недоступен для записи
+ Каталог конфигурации недоступен для записи
+
+
+ Все поля недействительны
+ Все поля недействительны
+
+
+ Внимание
+ Внимание
+
+
+ Частичное сохранение с ошибками
+ Частичное сохранение с ошибками
+
+
+ Сохранено
+ Сохранено
+
+
+ Ключ сохранён
+ Ключ сохранён
+
+
+ Ключ удалён
+ Ключ удалён
+
+
+ client_secret пересоздан
+ client_secret пересоздан
+
+
+ Ключ включён
+ Ключ включён
+
+
+ Ключ отключён
+ Ключ отключён
+
+
+ Удалено
+ Удалено
+
+
+ Требуется авторизация
+ Требуется авторизация
+
+
+ Недостаточно прав
+ Недостаточно прав
+
+
+ Нельзя запрашивать ключ за другого пользователя
+ Нельзя запрашивать ключ за другого пользователя
+
+
+ Не удалось
+ Не удалось
+
+
+ Недостаточно прав для модерации
+ Недостаточно прав для модерации
+
+
+ Заявка не найдена или уже обработана
+ Заявка не найдена или уже обработана
+
+
+ Уровень не найден
+ Уровень не найден
+
+
+ Укажите название уровня
+ Укажите название уровня
+
+
+ OAuth-клиент создан
+ OAuth-клиент создан
+
+
+ Клиент удалён
+ Клиент удалён
+
+
+ История изменений
+ История изменений
+
+
+ DevCraftPublic недоступен
+ DevCraftPublic недоступен
+
+
+ Бессрочно
+ Бессрочно
+
+
+ API-ключ активен
+ API-ключ активен
+
+
+ Заявка отправлена
+ Заявка отправлена
+
+
+ Ожидает решения администратора.
+ Ожидает решения администратора.
+
+
+ Пожалуйста, подождите, заявка ещё рассматривается.
+ Пожалуйста, подождите, заявка ещё рассматривается.
+
+
+ Заявка не одобрена
+ Заявка не одобрена
+
+
+ Повторно отправить заявку можно в любой момент.
+ Повторно отправить заявку можно в любой момент.
+
+
+ Пользователь ещё не запросил ключ
+ Пользователь ещё не запросил ключ
+
+
+ Ключ ещё не создан
+ Ключ ещё не создан
+
+
+ Нажмите кнопку, чтобы отправить заявку или получить ключ.
+ Нажмите кнопку, чтобы отправить заявку или получить ключ.
+
+
+ Ключ выдаёт администратор.
+ Ключ выдаёт администратор.
+
+
+ Сеть недоступна
+ Сеть недоступна
+
+
+ Ключ скопирован в буфер обмена.
+ Ключ скопирован в буфер обмена.
+
+
+ Не удалось автоматически скопировать ключ.
+ Не удалось автоматически скопировать ключ.
+
+
+ Нет
+ Нет
+
+
+ Доступные плейсхолдеры
+ Доступные плейсхолдеры
+
+
+ Создание ключа…
+ Создание ключа…
+
+
+ Сохранение ключа…
+ Сохранение ключа…
+
+
+ Загрузка прав…
+ Загрузка прав…
+
+
+ Удаление ключа…
+ Удаление ключа…
+
+
+ Обновление ключа…
+ Обновление ключа…
+
+
+ Создание клиента…
+ Создание клиента…
+
+
+ Сохранение клиента…
+ Сохранение клиента…
+
+
+ Загрузка клиента…
+ Загрузка клиента…
+
+
+ Пересоздание секрета…
+ Пересоздание секрета…
+
+
+ Удаление клиента…
+ Удаление клиента…
+
+
+ Сохранение уровня…
+ Сохранение уровня…
+
+
+ Загрузка уровня…
+ Загрузка уровня…
+
+
+ Удаление уровня…
+ Удаление уровня…
+
+
+ Сохранение синхронизации…
+ Сохранение синхронизации…
+
+
+ Обработка заявки…
+ Обработка заявки…
+
+
+ Выполнение…
+ Выполнение…
+
+
+ Права ключа #{id}
+ Права ключа #{id}
+
+
+ Готово
+ Готово
+
+
+ Скопировано в буфер обмена
+ Скопировано в буфер обмена
+
+
+ Выделите текст и нажмите Ctrl+C
+ Выделите текст и нажмите Ctrl+C
+
+
+ Клиент #{id}
+ Клиент #{id}
+
+
+ DevCraft.Ajax недоступен
+ DevCraft.Ajax недоступен
+
+
+ Сеть или сервер недоступен
+ Сеть или сервер недоступен
+
+
+ Пересоздать client_secret? Старый секрет сразу перестанет работать.
+ Пересоздать client_secret? Старый секрет сразу перестанет работать.
+
+
+ Удалить ключ?
+ Удалить ключ?
+
+
+ Включить
+ Включить
+
+
+ Удалить клиент?
+ Удалить клиент?
+
+
+ Удалить уровень?
+ Удалить уровень?
+
+
+ Уровень #{id}
+ Уровень #{id}
+
+
+ Поступила новая заявка на API-ключ.
+Пользователь: {%user_id%}
+Уровень доступа: {%level%}
+Номер заявки: {%request_id%}
+Открыть заявку: {%request_url%}
+ Поступила новая заявка на API-ключ.
+Пользователь: {%user_id%}
+Уровень доступа: {%level%}
+Номер заявки: {%request_id%}
+Открыть заявку: {%request_url%}
+
+
+ Ваш API-ключ одобрен.
+Ключ: {%api_key%}
+ Ваш API-ключ одобрен.
+Ключ: {%api_key%}
+
+
+
+