Unified Admin System

Unified Admin System 1.0.0.8

Нет прав для скачивания
Сообщения
207
Реакции
420
Помог
10 раз(а)
CrazyHackGUT добавил(а) новый ресурс:

Unified Admin System - Единая система админок

Unified Admin System - ещё одна попытка сделать нормальную админ-систему с поддержкой нескольких серверов. UAS пытается так же разделить загрузчик администраторов и любое взаимодействие пользователя с записями в СУБД в разные плагины, что позволяет установить загрузчик везде, а интерфейс - только на один сервер (или вообще не устанавливать).
Узнать больше об этом ресурсе...
 
Сообщения
207
Реакции
420
Помог
10 раз(а)
Описание структуры базы
Считаю, что оно излишне, ибо пометки к ней оставлены в виде комментариев в самой структуре, но почему бы и нет...
Я постараюсь своевременно обновлять тему, и держать чейнджлог в конце поста.
Плагин старается использовать весь доступный функционал SM по админкам!

Для начала, описание таблиц по именам:
  • uas_admin. В этой таблице хранятся перечисления всех имеющихся в системе администраторов. Перейти к описанию.
  • uas_admin_group. В этой таблице хранятся пары "администратор - сервер - группа". Она используется исключительно для определения, на каких серверах какие группы имеются у Администратора.
    Для тех, кто не понял: система предполагает выдачу более одной группы Администратору. Перейти к описанию.
  • uas_admin_flags. В этой таблице хранятся пары "администратор - сервер". Используется для выгрузки администраторов на сервера. Перейти к описанию.
  • uas_group. Здесь хранятся все имеющиеся админ-группы. Все добавленные однажды сюда группы скачиваются абсолютно на все сервера без исключения. Перейти к описанию.
  • uas_group_immunity. Здесь хранятся пары "группа - группа". Эта таблица позволяет запретить одной группе администраторов как-либо взаимодействовать с другой. Перейти к описанию.
  • uas_group_override. Здесь хранятся переназначения прав для групп ("для группы Х разрешить доступ к команде У", "для группы Z запретить доступ к команде У" и т.д.). Перейти к описанию.
  • uas_override. Переназначения команд. Перейти к описанию.
  • uas_override_server. В этой таблице хранятся пары "переназначение - сервер". Она используется для выяснения, какие оверрайды на какой сервер должны быть загружены. Перейти к описанию.
  • uas_server. Здесь мы храним все сервера. Таблица строится полностью на основе конфига. Перейти к описанию.
Для начала, рассмотрим, что хранит uas_admin.

uas_admin. В этой таблице хранятся все записи администраторов.
uas_admin.png
  • admin_id. Уникальный идентификатор администратора. Используется исключительно для внутренних нужд.
  • username. Имя администратора.
  • auth_method. Способ авторизации. По-умолчанию, SourceMod поддерживает авторизации ip, steam и name. Пользователи могут создавать свои способы авторизации, потому тип у колонки varchar, а не enum.
  • auth_value. Значение, передаваемое аутентификатору. Для ip - IP-адрес игрока, для steam - SteamID любого вида (кроме ссылок), и так далее.
  • password. Серверный пароль. НЕ ДОЛЖЕН БЫТЬ ЗАХЕШИРОВАН КАК-ЛИБО, ИСПОЛЬЗУЕТСЯ САМИМ SM ДЛЯ АУТЕНТИФИКАЦИИ.
  • flags. Имеющиеся админ-флаги у администратора в виде побитовой суммы флагов.
  • immunity. Иммунитет администратора.

uas_admin_group. Здесь хранятся записи, обозначающие плагину, к какой группе какой администратор принадлежит, и на каких серверах конкретно распространяются эти права. Все администраторы, добавленные в эту таблицу, будут так же загружены плагином, независимо от uas_admin_flags.
uas_admin_group.png
  • admin_group_id. Уникальный идентификатор записи. Не используется загрузчиком.
  • admin_id. Идентификатор администратора из таблицы uas_admin.
  • server_id. Идентификатор сервера из таблицы uas_server.
  • title. Имя группы из таблицы uas_group.
  • deleted_at. Время, когда у Администратора был убран доступ. Если NULL - предполагается, что удаления не было, и у пользователя вечный доступ. Если любое иное значение - используется как "когда админка в этой группе должна истечь".
Эта таблица не предполагает прямого удаления прав у Администраторов. Вместо этого, используйте deleted_at.

uas_admin_flags. Используется для хранения сопоставления "администратор - сервер". Все добавленные записи в эту таблицу позволяют понять плагину, каких администраторов именно ему надо загружать.
uas_admin_flags.png
  • admin_id. Идентификатор администратора из таблицы uas_admin.
  • server_id. Идентификатор сервера из таблицы uas_server.
  • flags. Имеющиеся админ-флаги у администратора в виде побитовой суммы флагов. Если NULL - используется значение из uas_admin.
  • immunity. Иммунитет администратора. Если NULL - используется значение из uas_admin.
  • deleted_at. Время, когда у Администратора был убран доступ. Если NULL - предполагается, что удаления не было, и у пользователя вечный доступ. Если любое иное значение - используется как "когда админка на этом сервере должна истечь".
Эта таблица не предполагает прямого удаления прав у Администраторов. Вместо этого, используйте deleted_at.

uas_group. Здесь хранятся все имеющиеся админ-группы в системе. Все админ-группы скачиваются абсолютно на все сервера.
uas_group.png
  • title. Имя админ-группы.
  • immunity. Иммунитет админ-группы.
  • flags. Имеющиеся админ-флаги у админ-группы в виде побитовой суммы флагов.
  • deleted_at. Время, когда админ-группа была удалена. Если NULL - предполагается, что админ-группа не была удалена.
Так же, как и в случае с uas_admin, эта таблица не предполагает прямого удаления записей. Используйте deleted_at.

uas_group_immunity. Хранящиеся здесь записи сообщают SM, какие админ-группы не могут "таргетить" пользователей каких админ-групп.
uas_group_immunity.png
  • target. Имя админ-группы из таблицы uas_group.
  • other. Имя админ-группы из таблицы uas_group.
Администраторы группы target получают полный иммунитет от действий администраторов из группы other, независимо от уровней иммунитета.

uas_group_override. Хранимые здесь переназначения сообщают SM, доступ к каким командам/группам команд должен быть разрешён/запрещён каким админ-группам.
uas_group_override.png
  • title. Имя админ-группы из таблицы uas_group.
  • command. Имя команды/группы команд.
  • override_type. Тип команды: одиночная команда или группа команд. Допустимые значения: Command и CommandGroup.
  • has_access. Имеется ли доступ у пользователей админ-группы к команде/группе команд? Допустимые значения: Y и N.

uas_override. Здесь хранятся все переназначения прав на команды.
uas_override.png
  • override_id. Внутренний идентификатор переназначения.
  • command. Имя команды/группы команд.
  • override_type. Тип команды: одиночная команда или группа команд. Допустимые значения: Command и CommandGroup.
  • flags. Требуемые админ-флаги в виде побитовой суммы флагов. Соответственно, 0 снимает требование админки с команды/группы команд.

uas_override_server. В отличие от uas_group, переназначения скачиваются только на определённые сервера. Здесь можно перечислить, какое переназначение на какой сервер должно быть загружено.
uas_override_server.png
  • server_id. Идентификатор сервера из таблицы uas_server. Если использовать NULL в качестве значения - переназначение будет загружен на все сервера.
  • override_id. Идентификатор переназначения из таблицы uas_override.

uas_server. Здесь хранятся все сервера, которые использовали плагин. Плагин сам добавит сервер в эту таблицу, используя заполненные идентификатор, адрес, порт и хостнейм.
Если идентификатор отличается, но пара "адрес-порт" в базе присутствуют - идентификатор будет обновлён и в этой таблице, и во всех других.
uas_server.png
  • server_id. Уникальный идентификатор сервера.
  • address. Адрес сервера, записанный в виде 32-битного числа.
  • port. Порт сервера.
  • hostname. Имя сервера.
  • deleted_at. Время, когда сервер был удалён. Если NULL - предполагается, что сервер не был удалён, и всё ещё используется.
  • synced_at. Время, когда сервер последний раз выполнял синхронизацию.
Прямое удаление в этой таблице так же не предполагается, используйте deleted_at.
  • v0.0.0.1: Первая публикация.
  • v0.0.0.3
    • uas_override: Добавлена новая колонка override_id, изменён PRIMARY KEY c пары полей command, override_type на override_id
    • Добавлена таблица uas_override_server
  • v0.0.0.5
    • Добавлена таблица uas_admin_server
    • uas_override_server: Убрана пометка NOT NULL у server_id
  • v1.0.0.0
    • Удалена таблица uas_admin_authmethod
    • uas_admin: Добавлены колонки auth_method, auth_value
  • v1.0.0.3
    • uas_server: Добавлена колонка synced_at
  • v1.0.0.4
    • uas_admin: Колонка deleted_at удалена.
    • uas_admin_server: Использование NULL в server_id более невозможно.
    • uas_admin_server: Добавлены колонки flags, immunity, deleted_at
    • uas_admin_server: Таблица переименована в uas_admin_flags
    • uas_admin_group: Добавлена колонка deleted_at
 
Последнее редактирование:

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу