Update to v2025.2#139
Merged
GamerVII-NET merged 60 commits intomasterfrom Sep 28, 2025
Merged
Conversation
Реализована возможность разблокировать пользователей по критерию оборудования. Добавлена новая типизация, обработка запросов и обновление данных в таблице игроков.
Реализована валидация типа загрузчика для профилей, благодаря которой скрываются вкладки и функции, недоступные для пользователя с типом Vanilla. Также внесены изменения в интерфейс: автоматическое переключение на главную вкладку при недоступной "Моды".
Изменен подход к форматированию даты: добавлена проверка корректности даты и удалены всплывающие подсказки с относительным временем. Теперь отображается только форматированная дата или символ "-", если данные отсутствуют.
Реализован компонент диалога для отображения подробностей игрока, включая текстуры, историю авторизаций и список IP-адресов. Обновлены действия в таблице: добавлена возможность просмотра карточки игрока, улучшено управление блокировками и добавлено удаление игроков.
Реализован диалог подтверждения перед удалением игрока из таблицы, включающий текст и детали игрока. Добавлена блокировка кнопок во время выполнения удаления и улучшена обработка этого процесса для предотвращения ошибок.
Реализованы дополнительные фильтры поиска: UUID, IP, HWID, сортировка, блокировка и количество игроков на страницу. Улучшена работа формы поиска, добавлена поддержка отложенного выполнения запросов через debounce и новое управление состояниями. Обновлены типы и функции API для обработки новых фильтров.
Форма фильтров полностью переработана: добавлен компонент Card для организации структуры, улучшена визуализация полей и фильтров с иконками. Реализовано отображение активных фильтров в виде тегов и возможность сброса значений фильтров, добавлены новые элементы управления и улучшен UX для удобства пользователя.
Изменен подход к компоновке элементов фильтров: добавлены новые CSS-классы для организации сетки и улучшена визуализация кнопки сброса. Теперь элементы фильтров подстраиваются под разную ширину экрана, улучшая адаптивность интерфейса.
Реализован индикатор статуса запущенного лаунчера в таблице игроков, а также обновлены соответствующие типы. Это улучшает информативность интерфейса и позволяет быстро оценить активность игроков.
Реализована многовкладочная структура в карточке игрока с использованием компонента Tabs, позволяющая организовать информацию по категориям: обзор, текстуры, авторизации, сети/IP и сервер. Это улучшает навигацию, повышает удобство использования интерфейса и делает данные более структурированными.
Добавлены функции для отображения иконок устройств в истории авторизаций, улучшена визуализация данных (добавлен HWID, доработан вид протокола, адресов и времени). Также переработаны стили диалога: добавлены ограничения высоты и скроллинг для улучшения читаемости.
Изменен номер версии в `package.json` и `package-lock.json` для подготовки к развертыванию обновления. Это обеспечивает согласованность версий и помогает управлять релизами.
Обновлены параметры подключения во всех используемых хабах (`useConnectionHub`) и сервисе API: опция `withCredentials` установлена в `true`, а заголовок `Access-Control-Allow-Credentials` удален. Это улучшает безопасность и корректность взаимодействия с сервером, обеспечивая передачу учетных данных с запросами.
Реализованы компоненты для управления ролями, правами и схемой назначения RBAC. Включены вкладки для пользователей, матрицы прав, ролей и прав, а также основные функции: создание, редактирование, удаление и назначение. Это позволяет настраивать полномочия пользователей и улучшает администрирование системы.
Реализованы методы для проверки наличия всех или некоторых прав из группы у роли, а также функция переключения группы прав с обновлением состояния. Обновлен интерфейс таблицы для отображения групп с чекбоксами, что улучшает управление правами внутри групп и упрощает работу администраторов.
Добавлена обработка ошибок в интерцепторе ответа API с использованием тостов (sonner) для отображения сообщений об ошибках. Удалено отображение ошибок в компоненте `RolesPermissionsTab`, так как уведомления теперь централизованы. Это улучшает пользовательский опыт и унифицирует обработку ошибок в приложении.
Удалены уточнения "CRUD" в заголовках вкладок "Роли" и "Права". Это делает интерфейс визуально чище и облегчает восприятие пользователем.
Реализован компонент `RoleWithPermsHover`, отображающий подсказку с правами роли при наведении на ее название. Это улучшает интерфейс, упрощая просмотр связанных данных, и делает работу с таблицей пользователей более удобной.
Изменено название вкладки в настройках с "Роли" на "Роли и права". Это уточнение делает интерфейс более информативным и отражает содержимое функции.
Добавлена проверка на роль "Администратор" для ограничения ее редактирования, удаления и изменения прав. Это предотвращает некорректные действия над системой и делает управление более безопасным.
Добавлены диалоги для создания, редактирования и удаления ролей, а также выпадающее меню с действиями. Это делает интерфейс более удобным, упрощает взаимодействие с ролями и улучшает пользовательский опыт.
Реализовано модальное окно для создания и редактирования прав, а также обновлена структура интерфейса управления. Теперь права сгруппированы, добавлена функциональность обновления с помощью кнопки, что делает взаимодействие пользователя более удобным и интуитивным.
Добавлены стили и метки для обозначения системных прав в таблице и списке. Системные права теперь помечены красной линией и бейджем "SYSTEM", а их изменение или удаление запрещено. Это улучшает UX, предотвращая некорректные изменения критически важных прав.
Рефакторинг проверки системных прав с использованием новой функции `isSystemPerm`. Это повышает читаемость кода и консистентность обработки атрибутов системных прав в разных частях интерфейса. Также исправлены стили и отступы для улучшения визуального восприятия.
Реализована функция `base64UrlDecode` для корректной обработки base64Url-строк, включая поддержку Node.js окружения. Обновлен метод `getTokenExpiredTime` с учетом ошибок, что делает его более устойчивым и предотвращает некорректный парсинг данных токена.
Реализована форма для создания пользователей с валидацией данных в модальном окне. Добавлена функция `createUser` в API для взаимодействия с сервером. Изменения улучшают управление пользователями и делают процесс создания нового пользователя удобнее.
Добавлена возможность удаления пользователей через диалог подтверждения. Реализованы функции `deleteUser` в интерфейсе и API, а также обновлена таблица пользователей для отображения новой кнопки действия. Эти изменения повышают удобство управления пользователями и добавляют важную функцию для удаления.
Произведено форматирование кода для повышения читаемости, включая выравнивание отступов и переработку функций валидации паролей. Эти изменения улучшают поддерживаемость кода и обеспечивают более четкое форматирование текста в интерфейсе.
Произведено форматирование кода для повышения читаемости, включая выравнивание отступов и переработку функций валидации паролей. Эти изменения улучшают поддерживаемость кода и обеспечивают более четкое форматирование текста в интерфейсе.
Вкладка "API ключи" была закомментирована и временно скрыта из пользовательского интерфейса. Это изменение упрощает настройки, исключая недоступный функционал, и позволяет сосредоточиться на текущих доработках.
Все импорты в файле `Settings.tsx` изменены на использование одинарных кавычек. Это улучшает консистентность кода и соответствует общепринятым стандартам форматирования.
Вкладка "Роли и права" теперь содержит бейдж "Beta" для обозначения тестового функционала. Это улучшает интерфейс, делая более очевидным статус данной функции для пользователей.
Реализована новая страница для отображения информации перед первым запуском. Включает инструкции по настройкам, кнопки действий и подсказки для улучшения пользовательского опыта.
Реализованы новые страницы для раздела MNT, включая общие компоненты и лэйауты. Страница "Настройка" предоставляет форму для указания адреса API сервера, тогда как "Первый запуск" содержит начальную информацию для пользователей. Улучшена структура кода с акцентом на переиспользуемость компонентов.
Создана новая страница для отображения лицензионного соглашения, содержащая юридическую информацию и текст соглашения. Добавлены кнопки действий для принятия условий и перехода к следующему этапу настройки.
Реализован компонент `ClientTransition` для анимаций перехода страниц в разделе MNT, что улучшает визуальное восприятие. Обновлены стили с добавлением эффектов `FadeIn` и `SlideIn`. В форме настройки добавлены новые поля для указания параметров проекта, включая наименование.
На странице "Настройка" добавлены три новых поля для ввода имени пользователя, пароля администратора и его подтверждения. Эти изменения обеспечивают возможность настройки учетных данных для дальнейшего использования.
В форме страницы "Настройка" добавлены состояния для обработки значений полей, включая имя проекта, учетные данные администратора и подтверждение пароля. Реализована валидация совпадения пароля и подтверждения, а также отправка данных на сервер с обработкой ошибок и индикатором загрузки.
Добавлено использование переменной окружения `NEXT_PUBLIC_BACKEND_URL` для задания значения по умолчанию адреса API сервера. Также обновлен плейсхолдер в поле ввода, чтобы он соответствовал текущему адресу по умолчанию.
На странице настройки добавлено визуальное предупреждение для случаев, когда протокол страницы и адреса бекенда не совпадают. Реализован компонент с tooltip и детальным описанием возможных проблем смешанного контента, а также предложениями по их решению.
На странице настройки реализовано состояние `fetchFailed` для обработки ошибок подключения к бекенду. Добавлено предупреждение с описанием возможных причин проблемы и рекомендациями по её устранению. Улучшена логика обработки полей ввода для сброса состояния ошибки при изменении адреса бекенда.
Добавлена логика для разборов ошибок в формате JSON с выводом более информативных сообщений. Реализовано резервное чтение текстового ответа при некорректном формате данных.
На странице настройки MNT добавлено новое поле для ввода email администратора. Email теперь передается в объект данных при сохранении настроек, а также появляется в интерфейсе с соответствующими стилями оформления и валидацией.
Добавлена логика для обработки ответа с сервера, включая сохранение accessToken и профиля пользователя в локальное хранилище. Это обеспечивает автоматическое перенаправление на страницу дашборда после успешной авторизации.
Изменено использование переменной окружения на динамическое определение адреса через `window.location.origin` для обеспечения корректной работы как на клиенте, так и на сервере. Добавлены проверки для предотвращения ошибок в средах SSR и обеспечения совместимости с различными окружениями.
Расширена конфигурация workflows для обработки ветки develop. Теперь публикация Docker-образов и обработка pull request будут действительны также для ветки develop.
Обновлено использование поля `UserName` в запросе на сервер: заменено на корректное поле `name` из профиля пользователя. Это исправление устраняет возможные ошибки при авторизации и обеспечивает корректную передачу данных.
Заменено использование `status` на `isPending` и `isError` для упрощения логики отображения компонентов. Это изменение повышает читаемость кода и улучшает обработку состояний загрузки и ошибок.
Добавлен метод `refresh` для обновления accessToken с сохранением профиля пользователя. Реализована защита запросов с помощью автоматического обновления токена, предотвращающая сбои при истечении его срока.
Временное изменение для инициализации `javaVersions` пустым массивом вместо использования хука `useGetJavaVersions`. Это позволяет предотвратить возможные ошибки на этапе загрузки данных или рефакторинга.
Изменены типы полей фильтров `findName`, `findUuid`, `findIp`, `findHwid` с пустых строк на значения `undefined`. Это улучшает корректность работы с необязательными значениями и упрощает логику проверки на их наличие.
…Table Закомментировано скелетонное отображение для сохранения структуры фильтров и предотвращения перенагрузки. Добавлено условное изменение прозрачности таблицы при загрузке, что улучшает пользовательский опыт и делает отображение более понятным.
Удалены лишние классы `after:flex`, присутствующие без необходимости. Это устраняет потенциальные проблемы с отображением и улучшает читаемость структуры компонентов.
Реализована логика ожидания установки accessToken в локальное хранилище после регистрации и авторизации. Это предотвращает возможные проблемы с доступом к защищённым страницам без установленного токена и улучшает пользовательский опыт при навигации.
# Conflicts: # .github/workflows/docker-package-publish.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Обновление визуала страницы с игроками
Добавлена возможность блокировки по железу
Добавлена поддержка снятия блокировки по железу
Реализована возможность разблокировать пользователей по критерию оборудования. Добавлена новая типизация, обработка запросов и обновление данных в таблице игроков.
Реализована валидация типа загрузчика для профилей, благодаря которой скрываются вкладки и функции, недоступные для пользователя с типом Vanilla. Также внесены изменения в интерфейс: автоматическое переключение на главную вкладку при недоступной "Моды".
Изменен подход к форматированию даты: добавлена проверка корректности даты и удалены всплывающие подсказки с относительным временем. Теперь отображается только форматированная дата или символ "-", если данные отсутствуют.
Реализован компонент диалога для отображения подробностей игрока, включая текстуры, историю авторизаций и список IP-адресов. Обновлены действия в таблице: добавлена возможность просмотра карточки игрока, улучшено управление блокировками и добавлено удаление игроков.
Реализован диалог подтверждения перед удалением игрока из таблицы, включающий текст и детали игрока. Добавлена блокировка кнопок во время выполнения удаления и улучшена обработка этого процесса для предотвращения ошибок.
Реализованы дополнительные фильтры поиска: UUID, IP, HWID, сортировка, блокировка и количество игроков на страницу. Улучшена работа формы поиска, добавлена поддержка отложенного выполнения запросов через debounce и новое управление состояниями. Обновлены типы и функции API для обработки новых фильтров.
Форма фильтров полностью переработана: добавлен компонент Card для организации структуры, улучшена визуализация полей и фильтров с иконками. Реализовано отображение активных фильтров в виде тегов и возможность сброса значений фильтров, добавлены новые элементы управления и улучшен UX для удобства пользователя.
Изменен подход к компоновке элементов фильтров: добавлены новые CSS-классы для организации сетки и улучшена визуализация кнопки сброса. Теперь элементы фильтров подстраиваются под разную ширину экрана, улучшая адаптивность интерфейса.
Реализован индикатор статуса запущенного лаунчера в таблице игроков, а также обновлены соответствующие типы. Это улучшает информативность интерфейса и позволяет быстро оценить активность игроков.
Реализована многовкладочная структура в карточке игрока с использованием компонента Tabs, позволяющая организовать информацию по категориям: обзор, текстуры, авторизации, сети/IP и сервер. Это улучшает навигацию, повышает удобство использования интерфейса и делает данные более структурированными.
Добавлены функции для отображения иконок устройств в истории авторизаций, улучшена визуализация данных (добавлен HWID, доработан вид протокола, адресов и времени). Также переработаны стили диалога: добавлены ограничения высоты и скроллинг для улучшения читаемости.
Изменен номер версии в
package.jsonиpackage-lock.jsonдля подготовки к развертыванию обновления. Это обеспечивает согласованность версий и помогает управлять релизами.withCredentialsдля подключенияОбновлены параметры подключения во всех используемых хабах (
useConnectionHub) и сервисе API: опцияwithCredentialsустановлена вtrue, а заголовокAccess-Control-Allow-Credentialsудален. Это улучшает безопасность и корректность взаимодействия с сервером, обеспечивая передачу учетных данных с запросами.Реализованы компоненты для управления ролями, правами и схемой назначения RBAC. Включены вкладки для пользователей, матрицы прав, ролей и прав, а также основные функции: создание, редактирование, удаление и назначение. Это позволяет настраивать полномочия пользователей и улучшает администрирование системы.
Реализованы методы для проверки наличия всех или некоторых прав из группы у роли, а также функция переключения группы прав с обновлением состояния. Обновлен интерфейс таблицы для отображения групп с чекбоксами, что улучшает управление правами внутри групп и упрощает работу администраторов.
Добавлена обработка ошибок в интерцепторе ответа API с использованием тостов (sonner) для отображения сообщений об ошибках. Удалено отображение ошибок в компоненте
RolesPermissionsTab, так как уведомления теперь централизованы. Это улучшает пользовательский опыт и унифицирует обработку ошибок в приложении.RolesPermissionsTabУдалены уточнения "CRUD" в заголовках вкладок "Роли" и "Права". Это делает интерфейс визуально чище и облегчает восприятие пользователем.
Реализован компонент
RoleWithPermsHover, отображающий подсказку с правами роли при наведении на ее название. Это улучшает интерфейс, упрощая просмотр связанных данных, и делает работу с таблицей пользователей более удобной.Изменено название вкладки в настройках с "Роли" на "Роли и права". Это уточнение делает интерфейс более информативным и отражает содержимое функции.
Добавлена проверка на роль "Администратор" для ограничения ее редактирования, удаления и изменения прав. Это предотвращает некорректные действия над системой и делает управление более безопасным.
Добавлены диалоги для создания, редактирования и удаления ролей, а также выпадающее меню с действиями. Это делает интерфейс более удобным, упрощает взаимодействие с ролями и улучшает пользовательский опыт.
Реализовано модальное окно для создания и редактирования прав, а также обновлена структура интерфейса управления. Теперь права сгруппированы, добавлена функциональность обновления с помощью кнопки, что делает взаимодействие пользователя более удобным и интуитивным.
Добавлены стили и метки для обозначения системных прав в таблице и списке. Системные права теперь помечены красной линией и бейджем "SYSTEM", а их изменение или удаление запрещено. Это улучшает UX, предотвращая некорректные изменения критически важных прав.
Рефакторинг проверки системных прав с использованием новой функции
isSystemPerm. Это повышает читаемость кода и консистентность обработки атрибутов системных прав в разных частях интерфейса. Также исправлены стили и отступы для улучшения визуального восприятия.Реализована функция
base64UrlDecodeдля корректной обработки base64Url-строк, включая поддержку Node.js окружения. Обновлен методgetTokenExpiredTimeс учетом ошибок, что делает его более устойчивым и предотвращает некорректный парсинг данных токена.Реализована форма для создания пользователей с валидацией данных в модальном окне. Добавлена функция
createUserв API для взаимодействия с сервером. Изменения улучшают управление пользователями и делают процесс создания нового пользователя удобнее.Добавлена возможность удаления пользователей через диалог подтверждения. Реализованы функции
deleteUserв интерфейсе и API, а также обновлена таблица пользователей для отображения новой кнопки действия. Эти изменения повышают удобство управления пользователями и добавляют важную функцию для удаления.Реализована новая вкладка "API ключи" в настройках, использующая существующую форму
EditSettingsPlatformFormдля минимизации изменений. Также добавлен выбор роли пользователя при создании, с предварительным выбором первой доступной роли, что упрощает управление правами. Эти изменения улучшают удобство интерфейса и расширяют функционал.Произведено форматирование кода для повышения читаемости, включая выравнивание отступов и переработку функций валидации паролей. Эти изменения улучшают поддерживаемость кода и обеспечивают более четкое форматирование текста в интерфейсе.
Произведено форматирование кода для повышения читаемости, включая выравнивание отступов и переработку функций валидации паролей. Эти изменения улучшают поддерживаемость кода и обеспечивают более четкое форматирование текста в интерфейсе.
Вкладка "API ключи" была закомментирована и временно скрыта из пользовательского интерфейса. Это изменение упрощает настройки, исключая недоступный функционал, и позволяет сосредоточиться на текущих доработках.
Все импорты в файле
Settings.tsxизменены на использование одинарных кавычек. Это улучшает консистентность кода и соответствует общепринятым стандартам форматирования.Вкладка "Роли и права" теперь содержит бейдж "Beta" для обозначения тестового функционала. Это улучшает интерфейс, делая более очевидным статус данной функции для пользователей.
fix account menu
Добавлена страница "Первый запуск" для раздела MNT
Реализована новая страница для отображения информации перед первым запуском. Включает инструкции по настройкам, кнопки действий и подсказки для улучшения пользовательского опыта.
Реализованы новые страницы для раздела MNT, включая общие компоненты и лэйауты. Страница "Настройка" предоставляет форму для указания адреса API сервера, тогда как "Первый запуск" содержит начальную информацию для пользователей. Улучшена структура кода с акцентом на переиспользуемость компонентов.
Создана новая страница для отображения лицензионного соглашения, содержащая юридическую информацию и текст соглашения. Добавлены кнопки действий для принятия условий и перехода к следующему этапу настройки.
Реализован компонент
ClientTransitionдля анимаций перехода страниц в разделе MNT, что улучшает визуальное восприятие. Обновлены стили с добавлением эффектовFadeInиSlideIn. В форме настройки добавлены новые поля для указания параметров проекта, включая наименование.На странице "Настройка" добавлены три новых поля для ввода имени пользователя, пароля администратора и его подтверждения. Эти изменения обеспечивают возможность настройки учетных данных для дальнейшего использования.
В форме страницы "Настройка" добавлены состояния для обработки значений полей, включая имя проекта, учетные данные администратора и подтверждение пароля. Реализована валидация совпадения пароля и подтверждения, а также отправка данных на сервер с обработкой ошибок и индикатором загрузки.
Добавлено использование переменной окружения
NEXT_PUBLIC_BACKEND_URLдля задания значения по умолчанию адреса API сервера. Также обновлен плейсхолдер в поле ввода, чтобы он соответствовал текущему адресу по умолчанию.На странице настройки добавлено визуальное предупреждение для случаев, когда протокол страницы и адреса бекенда не совпадают. Реализован компонент с tooltip и детальным описанием возможных проблем смешанного контента, а также предложениями по их решению.
На странице настройки реализовано состояние
fetchFailedдля обработки ошибок подключения к бекенду. Добавлено предупреждение с описанием возможных причин проблемы и рекомендациями по её устранению. Улучшена логика обработки полей ввода для сброса состояния ошибки при изменении адреса бекенда.Добавлена логика для разборов ошибок в формате JSON с выводом более информативных сообщений. Реализовано резервное чтение текстового ответа при некорректном формате данных.
На странице настройки MNT добавлено новое поле для ввода email администратора. Email теперь передается в объект данных при сохранении настроек, а также появляется в интерфейсе с соответствующими стилями оформления и валидацией.
Добавлена логика для обработки ответа с сервера, включая сохранение accessToken и профиля пользователя в локальное хранилище. Это обеспечивает автоматическое перенаправление на страницу дашборда после успешной авторизации.
Изменено использование переменной окружения на динамическое определение адреса через
window.location.originдля обеспечения корректной работы как на клиенте, так и на сервере. Добавлены проверки для предотвращения ошибок в средах SSR и обеспечения совместимости с различными окружениями.Расширена конфигурация workflows для обработки ветки develop. Теперь публикация Docker-образов и обработка pull request будут действительны также для ветки develop.
UserNameв ProfilePageОбновлено использование поля
UserNameв запросе на сервер: заменено на корректное полеnameиз профиля пользователя. Это исправление устраняет возможные ошибки при авторизации и обеспечивает корректную передачу данных.Заменено использование
statusнаisPendingиisErrorдля упрощения логики отображения компонентов. Это изменение повышает читаемость кода и улучшает обработку состояний загрузки и ошибок.Добавлен метод
refreshдля обновления accessToken с сохранением профиля пользователя. Реализована защита запросов с помощью автоматического обновления токена, предотвращающая сбои при истечении его срока.useGetJavaVersionsВременное изменение для инициализации
javaVersionsпустым массивом вместо использования хукаuseGetJavaVersions. Это позволяет предотвратить возможные ошибки на этапе загрузки данных или рефакторинга.Изменены типы полей фильтров
findName,findUuid,findIp,findHwidс пустых строк на значенияundefined. Это улучшает корректность работы с необязательными значениями и упрощает логику проверки на их наличие.Закомментировано скелетонное отображение для сохранения структуры фильтров и предотвращения перенагрузки. Добавлено условное изменение прозрачности таблицы при загрузке, что улучшает пользовательский опыт и делает отображение более понятным.
Удалены лишние классы
after:flex, присутствующие без необходимости. Это устраняет потенциальные проблемы с отображением и улучшает читаемость структуры компонентов.Реализована логика ожидания установки accessToken в локальное хранилище после регистрации и авторизации. Это предотвращает возможные проблемы с доступом к защищённым страницам без установленного токена и улучшает пользовательский опыт при навигации.
Co-authored-by: Terentev A. A. terentev.a.a@recloud.tech
Co-authored-by: vterentev vaterentev@icloud.com