[WIP] Simple Role Based Access Control

amxx [WIP] Simple Role Based Access Control 1.0.0

Нет прав для скачивания
Установка
  1. Для работы плагина нужна система авторизации. Скачайте и установите её следуя той инструкции.
  2. Распакуйте содержимое папки include из архива в директорию: amxmodx/scripting/include/
  3. Распакуйте simple_rbac.sma и simple_rbac_shell.sma в директорию: amxmodx/scripting
  4. Скомпилируйте плагин (инструкция).
  5. Скопируйте скомпилированные файлы .amxx в директорию: amxmodx/plugins/
  6. Пропишите .amxx в файле /amxmodx/configs/plugins.ini
Настройки
Для изменения настроек подключения к БД следует открыть amxmodx/scripting/include/simple_rbac/database/mysql.inc и отредактировать необходимые поля.
Код:
/*============================= Конфигурация базы данных ===================================*/
new const db_host[]     = "localhost";
new const db_username[] = "root";
new const db_password[] = "root";
new const db_database[] = "zombielite";
/*==========================================================================================*/
API
Код:
/**
* Метод регистрирует новую группу/привилегию (см. GroupStruct)
* @Param GroupStruct:api_key; - ключ
* @Param any:value;           - значение
* @OptParam [...];            - последовательность пар ключ-значение
* @return group_id            - уникальный номер группы/привилегии
*
* @usage rbac_group_add(api_key, value[, api_key, value[...]);
* @usage rbac_group_add(GroupStruct, group);
* @usage rbac_group_add(gs_name, "Sudoers", gs_tag, "su");
*/
native rbac_group_add(...);


/**
* Метод получает группу/привилегию по её id
* @Param GroupStruct:api_key; - ключ
* @Param any:value;           - значение
* @OptParam [...];            - последовательность пар ключ-значение
* @RetParam data[GroupStruct];- массив, в который будут записаны значения
*
* @usage rbac_group_get(api_key, value[, api_key, value[...]);
* @usage rbac_group_get(GroupStruct, group);
* @usage rbac_group_get(gs_name, "Sudoers");
*/
native rbac_group_get(...);


/**
* Метод изменяе группу/привилегию по её id
* @Param group_id;            - уникальный номер группы/привилегии, которую будем менять
* @Param GroupStruct:api_key; - ключ
* @Param any:value;           - значение
* @OptParam [...];            - последовательность пар ключ-значение
*
* @usage rbac_group_set(group_id, api_key, value[, api_key, value[...]);
* @usage rbac_group_set(1, GroupStruct, group);
* @usage rbac_group_set(1, gs_name, "Sudoers");
*/
native rbac_group_set(...);


/**
* Метод проверяет принадлежность игрока к группе, или наличие привилегии
* @Param player_id;           - номер игрока на сервере
* @Param group_id;            - уникальный номер группы/привилегии
*
* @usage rbac_mebmer_of(player_id, group_id);
* @usage rbac_mebmer_of(1, 5);
*/
native rbac_member_of(...);



/**
* Метод изменяет связку пользователь-группа
* @Param user_id;             - уникальный номер игрока
* @Param group_name;          - название группы
* @Param UserGroupStruct:key; - ключ
* @Param any:value;           - значение
* @OptParam [...];            - последовательность пар ключ-значение
*
* @usage rbac_usermod(user_id, group_name, api_key, value[, api_key, value[...]);
* @usage rbac_usermod(1, "VIP", ugs_expire, %timestamp%);
*/
native rbac_usermod(...);


/**
* Метод удаляет у игрока группу/привилегию по её имени из БД
* @Param player_id;           - номер игрока на сервере
* @Param group_name;          - имя группы
*
* @usage rbac_deluser(player_id, group_name);
* @usage rbac_deluser(1, "VIP");
*/
native rbac_deluser(...);


/**
* Метод даёт единоразово игроку группу/привилегию по её id (в БД не заносится)
* @Param player_id;           - номер игрока на сервере
* @Param group_id;            - уникальный номер группы/привилегииие
*
* @usage rbac_promote(player_id, group_id);
* @usage rbac_promote(1, 5);
*/
native rbac_promote(...);


/**
* Метод удаляет группу у игрока (без взаимодействия с БД)
* @Param player_id;           - номер игрока на сервере
* @Param group_id;            - уникальный номер группы/привилегииие
*
* @usage rbac_demote(player_id, group_id);
* @usage rbac_demote(1, 5);
*/
native rbac_demote(...);
Сверху Снизу