Skip to content

Проекты, серверы и доступ ​

Проект объединяет владельца, игровые серверы и подписку. Сервер является областью модерации, настроек и подключения расширения. Учётная запись ozProtect, SteamID сотрудника и Minecraft ID игрока имеют разное назначение.

Первый проект ​

  1. Войдите через настроенный аккаунтный сервис. Для текущей панели проверьте привязку Steam: bootstrap использует steam_id учётной записи даже для проекта Minecraft. Minecraft UUID не заменяет аккаунт сотрудника.
  2. Создайте проект с названием и игрой. HTTP project.checkName проверяет совпадение названия; project.create создаёт проект, первый сервер и запускает предусмотренный исходниками trial. Наличие trial в коде не обещает его доступность конкретному аккаунту.
  3. Укажите адрес сервера и query port, проверьте game проекта/сервера. Для изменения имени, иконки и других identity-полей может понадобиться feature server.identity.
  4. Дождитесь нужного статуса модерации/подписки и получите адрес Network и серверные credentials через действующий кабинет.
  5. Установите адаптер своей игры. После подключения проверьте сервер, игроков и журнал событий в панели.

Для управления сервером владельцем используются project.createServer, project.updateServer, project.openServer и другие методы HTTP-справочника. Не передавайте ключ проекта браузеру игрока и не заменяйте им персональную авторизацию сотрудника.

Роли и права ​

УровеньНазначение
Владелец проектаПроверяется по владельцу проекта; управляет проектом и разрешёнными владельцу настройками
Администратор сервераДоступ к серверу и административным операциям в рамках настроек роли
МодераторДействия, разрешённые индивидуальными правами и доступом к серверу
Администратор сервисаОтдельная служебная роль для .cp и административных API; не равна администратору игрового сервера

Панель использует access.getStaff, access.addAdmin/removeAdmin, access.addModer/removeModer, access.getModer/setModer. Backend проверяет Project.HasProjectAccess, Project.HasServerAccess, группы и права конкретного действия. Например, доступ к проверкам использует permission checks, к банам может требоваться bans.

Скрытая кнопка не является защитой API. Доступ к данным проверяется backend; выбранный сервер, роль, лицензия и dedicated scope должны совпасть. Ошибки access_denied, license_upgrade_required или dedicated_project_mismatch означают разные условия, а не необходимость повторять запрос с чужим ID.

Подключение панели ​

Новый браузер получает короткий personal panel token через SSO POST /auth/network-token с cookie/CSRF и выбранным проектом/сервером. account.genNetToken сохраняется для совместимого старого приложения с его ключевым протоколом. Socket.IO использует namespace /client, transport path /socket, WebSocket без polling. После проверки токена, host и доступа сервер отправляет connected с данными инициализации панели.

При смене сервера необходимо работать с его контекстом. Не отправляйте запросы сохранённым сокетом другого сервера. При ozprotect_network_host_mismatch используйте назначенный адрес из проверенного ответа/кабинета; не отключайте проверку host.

Кабинет и панель ​

.land обслуживает владельца и игрока, .web обслуживает повседневную модерацию, .cp обслуживает команду сервиса. Наличие похожего экрана «Биллинг» в двух интерфейсах не делает их права взаимозаменяемыми.

Источники: api/project/Project.js, api/account/Account.js, socket/client/Access.mjs, modules/ProjectStaff.js, common/ApiNet.js, маршруты .web и .cp.

Модерация · Подписки и возможности

Разработано с ❤️ от ozLiginus