Настройка привилегий сервера Team Speak 3 (Гайд)

В данном месте Вы найдете информацию о настройке привилегий сервера Team Speak 3. Каждый выделенный автором аспект в той или иной части статьи имеет практическое подкрепление и обоснование, т.е. материал в большинстве случаев имеет объяснение написанного, а так же является уникальным на момент его написания.

В процессе проводиться комплексное изучение вопроса настройки по ходу статьи с примерами и наставлениями.

В статье идет исключительно описание работы с системой привилегий, а не с интерфейсом программы.

Данная информация распространяется в рамках проекта «DEFNOX» и письменного разрешения автора с предоставлением ссылки на данную страницу и на проект «DEFNOX».

Также автор статьи принимает вопросы и замечания, помогает по мелочам и будет дополнять данный материал, если посчитает нужным.

Любые предложения автору настроить ваш сервер(а) рассматриваются автором исключительно в рамках проекта «DEFNOX».

Для контакта с автором, используйте данный электронный адрес ниже.

 

Автор статьи рассматривает только правильно оформленные электронные письма:

  1. Сообщение должно содержать тему: »Вопрос по настройке TS3 (х)» (Где »х» краткое содержание вопроса)
  2. Подробно описать проблему, и вообще подумать проблема ли это (Глупые вопросы, аля: как зайти в раздел редактирования переменных будут проигнорированы)
  3. Быть терпеливыми, писем будет много – автор один!

 

Почта автора: nosconator@gmail.com


Система Привилегий Team Speak 3


Итак, прежде чем приступать к самой настройке непосредственно, нам нужно узнать что из себя представляет система привилегий.

Понятие системы привилегий

Система привилегий — это очень универсальная и многофункциональная система, которая определяет, каким пользователям разрешается производить определенные действия.

Привилегии — права на совершение того или иного действия, или запрет совершения того или иного действия, которые получает пользователь тем или иным количеством.

Группа — совокупность прав, которые могут быть назначены тому или иному пользователю.

Принципы базовой выборки значений разрешений

Уровень привилегий — показатель старшинства той или иной совокупности разрешений в не зависимости от их значения. Т.е. возможность перезаписывать совпадающие разрешения в пользу более старшего уровня привилегий. {Данное правило работает тогда и только тогда, когда разрешение не содержит специальных флагов}

Отношение разрешений на одном уровне — если случается так, что в системе встречаются два одинаковых разрешения на одном уровне, то из двух разрешений с разными значениями будет выбрано то, значение которого больше. {Данное правило работает тогда и только тогда, когда разрешение не содержит специальных флагов}

Специальные флаги — это дополнительные значения для разрешений, которые позволяют обойти принципы базовой выборки значений. {См. Следующий раздел}

Теперь, когда у нас есть условный принцип работы системы привилегий, мы можем рассматривать структуру разрешений и их отношение друг к другу.


Структура разрешения в системе привилегий (Value, Skip, Negate, Grant)


Структура одного разрешения представляет из себя набор значений:

1. Имя разрешения

Это основной идентификатор, который является кратким описанием того или иного разрешения (привилегии), который еще указывает на тип значения (Value).

Типов значения всего два: Boolean (Логические) и Integer (Целые).

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

Если имя разрешения начинается с префикса «b_», то оно имеет логический тип.

Если имя разрешения начинается с префикса «i_», то оно имеет целочисленный тип.

2. Значение разрешения (Value)

Подробнее разберем два типа значений с примерами.

2.1. Привилегии со значением типа Boolean

Эти разрешения могут иметь только два значения, TRUE или FALSE (ИСТИНА или ЛОЖЬ).

Пример:

b_virtualserver_modify_name

Взятое в пример разрешение определяет, можете ли вы изменить имя виртуального сервера. Если установлено значение TRUE, вы можете изменить имя виртуального сервера, при значении FALSE или отсутствии значения как такового, изменить имя не получится.

2.2. Привилегии со значением типа Integer

Эти разрешения принимают любые целые числа в качестве значений.

Пример:

i_channel_max_depth

Имя разрешения говорит нам, что разрешение определяет насколько «глубокие» структуры канала вы можете создать.

Если значение установлено на 0 (Ноль), это означает, что вы можете создать только каналы верхнего уровня.

Если оно установлено на 1, вы также можете создавать подканалы.

Установив значение 2 у вас есть разрешение создавать под-под-каналы и т.д.

Как и со многими разрешениями, которые не имеют никакого логического предела, i_channel_max_depth также имеет особое значение -1, которое определяет отсутствие лимита максимальной глубины для структуры каналов.

2.3. Разрешения типа Power (Сила) и Needed_power (Необходимая сила)

Эти привилегии являются частным случаем разрешений типа Integer.

Они используются исключительно вместе: один элемент дает нам права на действие, а другой проверяет достаточность этих прав для выполнения этого действия.

Действие будет применено тогда и только тогда, когда параметр power больше или равен параметру needed_power.

Пример:

i_client_kick_power

i_client_needed_kick_power

Если вы хотите кикнуть клиента с сервера, система разрешений будет сравнивать ваш kick_power с needed_kick_power у данного клиента. Если у вас есть такое же или большее значение power, чем needed_power у данного клиента, тогда вы сможете кикнуть этого клиента. Если же вы имеете меньшее значение силы, кикнуть клиента не получится.

В результате это дает нам возможность гибко настраивать группы для определенных целей, например, можно предоставить группу для администрации вашего сервера, у которой будут разрешения на кик исключительно гостей с сервера, но не более того.

Далее будут даны понятия дополнительных параметров для разрешений, которые подробно будут объяснены на конкретных примерах, начиная со следующей главы.

3. Флаг «Skip» (Пропустить)

Это дополнительное значение для разрешения, которое позволяет обойти принцип старшинства уровней привилегий, и указывает системе привилегий, что если помеченное флагом значение разрешения из всех предложенных  имеет не самый высокий уровень привилегии, то именно это значение должно быть выбрано как результирующее.

Из двух одинаковых разрешений со флагом «Skip» будет выбрано то, значение которого наибольшее, по принципу отношения разрешений на одном уровне.

4. Флаг «Negate» (Свести на нет)

Это дополнительное значение для разрешения, которое позволяет обойти принцип отношения разрешений на одном уровне, и указывает системе привилегий, что если помеченное флагом значение разрешения из всех предложенных самое минимальное, то именно это значение должно быть выбрано как результирующее.

Флаг «Negate» не изменяет свой принцип работы для разрешений, помеченных флагом «Skip», если эти разрешения находятся на одном уровне.

Если флаг «Skip» установлен на разрешении уровнем выше, то именно это значение разрешения будет результирующим.

 5.Разрешения типа «Grant»

Каждое разрешение имеет связанный с ним i_needed_modify_power_ ? (? — Название разрешения), например b_client_ban_create имеет связанное с ним разрешение, которое называется i_needed_modify_power_client_ban_create. В интерфейсе клиента разрешения типа needed_modify_power отображаются как дополнительное значение «Grant» для данной привилегии, а не в качестве самостоятельного разрешения в системе привилегий.

Дополнительный  параметр «Grant» дает разрешение клиенту на изменение первоначального значения конкретной переменной на любое, ограниченное только типом переменной.

Разрешения типа «Grant» регулируют, какие и какой силы привилегии клиенту разрешено предоставлять или отбирать у групп, каналов или клиентов, и являются ключом к модификации системы разрешений, потому изначально предоставлены исключительно администраторам.

О том как и пользоваться данным типом, будет объяснено в отдельном разделе.

 


Уровни Привилегий (С примерами)


Способ получения привилегий клиентом определяется через систему 5 (Пяти) уровней. Каждый уровень может перезаписать разрешения предыдущего уровня. Если значение разрешения не было предоставлено ни на одном из этих 5 уровней, то оно будет равняться 0 (Нулю) или FALSE в зависимости от типа переменной.

Подробнее об уровнях:

Уровень 1: Группы сервера

Уровень 2: Специальные привилегии клиента

Уровень 3: Специальные привилегии канала

Уровень 4: Группы каналов

Уровень 5: Специальные привилегии канала и клиента

Пример:

Вы находитесь в группе сервера «Guest» (Ур. 1), которая имеет разрешение b_channel_modify_name значение FALSE.

Но вы также состоите в группе канала «Channel Admin» (Ур. 4) которая имеет b_channel_modify_name значение TRUE.

Так как группа каналов более высокого уровня, чем группы серверов, то вы можете изменить имя конкретного канала в котором вы состоите в группе «Channel Admin».

Теперь мы обсудим каждый уровень и их особые свойства в деталях.

Уровень 1: Группы сервера

Каждый клиент является частью одной или нескольких групп серверов. Эти группы серверов могут содержать любое количество разрешений, которые вы получаете

когда становится частью группы. Так как вы можете быть частью нескольких групп

одновременно, и так как то же самое разрешение может предоставляется в нескольких из этих групп. Система привилегий использует лучшее или наивысшее значение разрешения из всех доступных для него в качестве результата.

Так как каждый клиент всегда часть, по меньшей мере, одной группы серверов, есть специальная группа, которая может быть настроена в конфигурации сервера, называется

«Default Server Group» (Группа по умочанию). Когда новый (ранее неизвестный) клиент присоединяется к серверу, он автоматически становится членом этой группы.

Кроме того, если вы в настоящее время в группе по умолчанию и вас назначили в другую группу, вы автоматически покинете группу по умолчанию.

Пример:

Допустим, вы являетесь членом трех групп сервера: «Admin Server», «Clan Leader» и «War Organizer».

«Admin Server» имеет i_client_kick_power = 50.

«Clan Leader» имеет i_client_kick_power = 100.

«War Organizer» не имеет i_client_kick_power (Если параметр не задан он равен 0).

В результате чего на Ур. 1 для вас i_client_kick_power будет равен 100, так как это самое высокое значение, которое вы имеете от всех групп сервера.

Иногда вы можете захотеть создать новую группу, что негативно влияет на клиентов, которые помещаются в нее. Например, создадим группу с названием «Sticky» (Липкий), которая запрещает клиенту перемещение по каналам, или группу с названием «Silent» (Тишина), которая удаляет привилегии использовать голосовой чат. Чтобы это работало, нам понадобится флаг «Negate».

Если вы являетесь членом группы, которая имеет разрешение c флагом «Negate», вы не будете получать самое высокое значение этого разрешения, а наоборот, получите помеченное флагом значение, при условии, что оно меньше остальных.

Пример:

Вы создали группу сервера под названием «Sticky». Она содержит только одно разрешение:

Для i_channel_join_power установлено значение -1, и флаг «Negate» применяется к этому разрешению.

Теперь, если я предоставить эту группу любому клиенту, он не сможет больше перемещаться по каналам.

Это также работает, если клиент имеет разрешение i_channel_join_power с неотрицательным значением.

Причина прекращения возможности переключения каналов кроется в том, что обычно канал имеет разрешение i_channel_needed_join_power, которое, даже если не установлено, задается как (Ноль).

Так как -1 < 0, то клиент данной группы не сможет присоединиться к каналу.

Так как серверные группы это Ур. 1 привилегий, вполне возможно, что они будут перезаписаны привилегиями более высокого уровня.

Поскольку это так, иногда желательно предотвратить перезапись разрешениями групп каналов (Ур. 4), например, есть флаг «Skip» .

Если разрешение в любой группе сервера (Ур. 1) или в специальной привилегии клиента (Ур. 2) имеет флаг «Skip», это разрешение не будет изменено любым перекрытием разрешений группами каналов (Ур. 4) или специальными привилегиями канала (Ур. 3).

Пример:

Как администратор вашего сервера вы не хотите, чтобы группа канала ограничивала ваши разрешения группы «Admin Server» в каком либо плане.

Путем добавления флага «Skip» все разрешения в этой группе сервера вы убедитесь, что независимо от значений разрешений группы канала, вы останетесь с разрешениями группы сервера «Admin Server», т.е. группа канала не окажет никакого влияния на ваши способности.

Уровень 2: Специальные привилегии клиента

Эти разрешения устанавливаются на конкретного клиента, и они будут перезаписывать любые разрешения Ур. 1. На разрешения Ур. 2 также может быть установлен флаг «Skip», для того чтобы, Группы каналов (Ур. 4) и Специальные привилегии канала (Ур. 3) не будут перезаписывать значение этих разрешений.

Пример:

Вы находитесь в группе «Guest», которая имеет i_client_kick_power равное 0.

Так как вы хотите, чтобы конкретный клиент имел возможность кикать других клиентов без назначения этого конкретного клиента в группу сервера с нужными разрешениями, вы можете дать клиенту специальное разрешение i_client_kick_power равное 100.

Так как Специальные привилегии клиента это разрешения Ур. 2, они будут перезаписывать разрешения групп сервера (Ур. 1), и клиент с группой сервера «Guest» и этим специальным  разрешением сможет кикать других клиентов с сервера.

Уровень 3: Специальные привилегии канала

Специальные привилегии канала аналогичны Специальным привилегиям клиента, но применяются на уровне канала. Один из примеров того, как это может быть использовано, чтобы контролировать, кому позволено говорить в канале. Просто установите значение i_client_needed_talk_power на канале, и только клиенты с равным или более высоким значением разрешения i_client_talk_power будет иметь возможность говорить в этом канале. Другие случаи полезного использования могут быть каналы, в которые могут зайти только некоторым клиентам (через i_channel_needed_join_power), или просмотр описания которых доступно только  для некоторых клиентов (через i_channel_needed_subscribe_power). Все Специальные привилегии канала, которые логически могут быть применены к области канала имеют силу только в пределах канала. Например, если Специальные привилегии канала дают высокое значение разрешению i_client_kick_power, вы можете кикать клиентов, которые находятся в этом канале, но не клиентов, которые прибывают в других каналах.

Не стоит забывать, что есть привилегии, которые не логично применять к разрешениям канала.

Они могут так же могут быть назначены клиенту через данный уровень привилегий.

Пример:

Разрешение b_virtualserver_stop будет работать точно так же, как если бы оно было задано с помощью группы серверов.

Уровень 4: Группы каналов

Каждый клиент является частью ровно одной группы каналов. Когда клиенту назначается в новую группу канала, сервер автоматически удаляет этого клиента из предыдущей группы каналов. Все разрешения, полученные через группы каналов, могут быть применены только на уровне канала.

Пример:

Вам предоставляется разрешение b_channel_modify_password, оно позволит вам изменить пароль канала, в котором вы имеете это разрешение.

Есть две специальные группы каналов, которые задаются в настройках сервера.

1.«Default Channel Group», которая присваивается любому клиенту, присоединяющемуся в канал первый раз.

2.»Default Channel Admin Group», которая предоставляется клиенту, который создает новый канал.

Уровень 5: Специальные привилегии канала и клиента

Специальные привилегии канала и клиента это сочетание разрешений клиента (Ур. 2) и разрешений канала (Ур. 3).

Они применяются к клиенту и каналу одновременно тогда и только тогда, когда указанный клиент, и указанный канал взаимодействуют  друг с другом.

Это используется клиентом, для функции приоритета голосового чата, когда вы получили статус приоритета «Priority speaker» (Статус на приоритет голоса), то к специальным привилегиям канала и клиента добавляется разрешение b_client_is_priority_speaker для вашего клиента и текущего канала.

Как с Ур.3 и Ур. 4, привилегии Ур. 5, которые логически могут быть применены к области канала, будут действовать только в каналах, в которых у вас есть такое разрешение.

Информации об устройстве системы привилегий более достаточно, чтобы перейти к самой настройке.


Важные аспекты настройки привилегий


Данный раздел посвящен подходу к проблемам настройки и некоторым замечаниям, направленным на улучшение самого процесса.

Правила хорошего тона

0. Группа «Admin Server» неприкосновенна!!!!

Просто молитесь на нее и не трогайте! Иначе рискуете не хило потратить время на восстановление ее работоспособности. Не повторяйте чужих ошибок.

1. Начинайте всегда с чистого листа

Пожалуй, самое основное с чего нужно начать, это создать новую чистую группу без каких либо прав. Нужно это, чтобы не делать лишней работы по исключению неиспользуемых разрешений.

По-моему опыту, скажу, что проще добавлять разрешения, чем убирать их, да и ориентироваться вам будет проще в конкретных нужных значениях, а не в «каше» нужных с ненужными.

2. Исключайте неиспользуемые разрешения из групп

Если так случилось, что вам приходится работать с ранее созданной группой, то верным решением будет очистить ее от «мусора», а именно от того функционала, который ей в принципе не нужен.

Для обычных серверов, арендованных на хостингах, обычно, это «ServerQuery» Привилегии, для сбора информации о сервере, клиентах и управление сервером, клиентами из вне.

«ServerQuery» является командной строкой администрирования как инструмент / особенность сервера TeamSpeak 3.

Есть два способа использования «ServerQuery»:

•   Telnet 

•   Web Interface

Так как на хостингах большинство операций автоматизировано через «ServerQuery» одна на несколько десятков тысяч серверов, доступ клиентам в нее закрыт, и вряд ли выдается или будет выдан, поэтому смело можно их выключить.

Исключением может стать гостевая группа сервера «Server Guest», которая может использоваться хостингом для мониторинга арендованного сервера, так что лучше оставить в ней данные разрешения без изменений.

3. Исключайте i_group_auto_update_type

При создании или редактировании групп сервера отличных как либо от стандартных или при изменении стандартных групп, выключайте данное разрешение, дабы избежать последствий потери конфигурации группы.

В начале моей практики из-за данного разрешения, мне приходилось чуть ли не после каждого апдейта заново настраивать часть групп, потому что они принимали вид стандартных групп. Доставляло это много неудобств.

И еще, раз уж пошла речь о данном разрешении, нелишним будет информация о нем и о его стандартных значениях:

Всякий раз, когда Система Привилегий обновляется, сервер автоматически попытается назначить новые права доступа к существующим группам.

За автоматическое обновление отвечает разрешение i_group_auto_update_type.

Пример:

Все стандартные группы имеют уже заданные значения.

Значение 10: Группа будет обрабатываться как «Channel Guest»

Значение 15: Группа будет обрабатываться как «Server Guest»

Значение 20: Группа будет обрабатываться как «Query Guest»

Значение 25: Группа будет обрабатываться как «Channel Voice»

Значение 30: Группа будет обрабатываться как «Server Normal»

Значение 35: Группа будет обрабатываться как «Channel Operator»

Значение 40: Группа будет обрабатываться как «Channel Admin»

Значение 45: Группа будет обрабатываться как «Admin Server»

Значение 50: Группа будет обрабатываться как «Query Admin»

Если Система Привилегий обновляется, все группы, имеющие свои i_group_auto_update_type со значениями до 45 будут обновляться автоматически.

4. Редактирующее не редактирует себя

Самое главное для любых групп, которые вносят изменения куда, в чем, кому, где, когда-либо — они не должны иметь доступ делать те же операции с собой и менять свои же значения дабы избежать нарушение работоспособности всей системы привилегий или создавать восстание против власти админа, что нежелательно в принципе.

5. Не забыть задать правильные значения для силовых разрешений (Power и Needed Power)

Также не стоит забывать, о связках силовых разрешений! Потому что по стандарту, если значения разрешений не заданы, то они равны (Нулю), значит значения разрешений удовлетворяют условию для выполнения той или иной операции, т.е. несколько клиентов в одной группе с неправильно заданными силовыми разрешениями могут творить над друг другом самоуправство. Приведу ряд разрешений, которые могут доставить проблем.

Особенно это нужно в группе сервера «Server Guest»:

Всем перечисленным привилегиям ниже, я рекомендую ставить значение -1 во избежания неприятных последствий.

i_client_kick_from_server_power 
i_client_kick_from_channel_power 
i_client_ban_power 
i_client_move_power 
i_group_member_add_power
i_group_member_remove_power

6. Продумайте иерархию групп

Чем лучше вы будете представлять как относятся друг к другу группы, какая от какой зависит, и какая какую сможет «наказать» тем или иным способом, тем лучше и быстрее вы сделаете настройку. Всегда начинайте от меньшего к большему, по увеличению функционала.

Немного справочного материала:

Для добавления клиента в  группы сервера или каналов, вам необходимо разрешение i_group_member_add_power, значение которого больше или равно значения i_group_needed_member_add_power конкретной группы, в которую должен быть добавлен клиент.

Аналогично, для удаления клиента из групп сервера или каналов, вам необходимо разрешение i_group_member_remove_power, значение которого должно быть больше или равно значения i_group_needed_member_remove_power конкретной группы, из которой должен быть удален клиент.

Никогда не оставляйте параметры i_group_needed_member_add_power и i_group_needed_member_remove_power не заданными — равными, или меньше 0 (Нуля) для любых групп сервера и групп каналов!

Стоит заметить, что в Системе Привилегий можно создать только одну независимую иерархическую ветку с помощью групп сервера!!!

 


Разрешения для редактирования разрешений (Разрешения типа «Grant»)


Вот и развязка всей статьи, все то на что нужно обращать внимание при работе с любыми разрешениями, если возникает необходимость создавать группы привилегий для их редактирования.

Сделаю отступление и скажу, что в 90% случаев данный материал по настройке не будет полезен для обычных нужд какого либо клана или гильдии. Как самый частый вариант, у вас на сервере будут несколько групп с минимальным нужным функционалом для администрирования сервера для клиентов, которым лазить в раздел разрешений нельзя и тем более менять что-то там крайне нежелательно.  

В моей практике я столкнулся с настройкой группы, которой нужны были разрешения для изменения значений разрешений («Grant» разрешения) один раз.

Напомню, что изначально полностью редактировать все разрешения имеет право только группа сервера «Admin Server», и зачастую ее более чем достаточно. 

 

Итак, для того чтобы редактировать Систему Привилегий или ее раздел, нужна система из  4 (четырех) разрешений для успешного редактирования.

Перечень необходимых разрешения для редактирования СП на определенном уровне:

1. Наличие разрешения для просмотра привилегий определенного уровня

2. Наличие разрешения для редактирования привилегий определенного уровня

3. Наличие разрешения для редактирования переменных СП

4. Наличие у редактируемого разрешения «Grant» привилегии

1+2. Разрешения для просмотра списка привилегий и для редактирования раздела СП (По уровням)

Объединение пунктов выполнено для простоты обращения с материалом и из-за взаимосвязанности пунктов.

Разрешения для редактирования разрешений групп серверов (Уровень 1):

Разрешения для просмотра привилегий данного уровня:

b_virtualserver_servergroup_permission_list со значением TRUE

Разрешения для редактирования привилегий данного уровня:

i_group_permission_modify_power, значение которого больше или равно значения i_group_needed_permission_modify_power конкретной группы каналов, в которой нужно изменить/создать/удалить разрешение.

Разрешения для редактирования разрешений клиента (Уровень 2):

Разрешения для просмотра привилегий данного уровня:

b_virtualserver_client_permission_list со значением TRUE

Разрешения для редактирования привилегий данного уровня:

i_client_permission_modify_power, значение которого больше или равно значения i_client_needed_permission_modify_power конкретного клиента, у которого нужно изменить/создать/удалить разрешение.

Разрешения для редактирования разрешений каналов (Уровень 3):

Разрешения для просмотра привилегий данного уровня:

b_virtualserver_channel_permission_list со значением TRUE

Разрешения для редактирования привилегий данного уровня:

i_channel_permission_modify_power, значение которого больше или равно значения i_channel_needed_permission_modify_power конкретного канала, в котором нужно изменить/создать/удалить разрешение.

Разрешения для редактирования разрешений группы каналов (Уровень 4):

Разрешения для просмотра привилегий данного уровня:

b_virtualserver_channelgroup_permission_list со значением TRUE

Разрешения для редактирования привилегий данного уровня:

i_group_permission_modify_power, значение которого больше или равно значения i_group_needed_permission_modify_power конкретной группы каналов, в которой нужно изменить/создать/удалить разрешение.

T.e. совершенно то же разрешение, что используется для доступа к редактированию групп сервера.

Разрешения для редактирования разрешений канала и клиента (Уровень 5):

Разрешения для просмотра привилегий данного уровня:

b_virtualserver_channelclient_permission_list со значением TRUE

Разрешения для редактирования привилегий данного уровня:

i_client_permission_modify_power, значение которого больше или равно значения i_client_needed_permission_modify_power конкретного клиента, у которого нужно изменить/создать/удалить разрешение.

i_channel_permission_modify_power, значение которого больше или равно значения i_channel_needed_permission_modify_power конкретного канала, в котором нужно изменить/создать/удалить разрешение.

T.e. система из разрешений, что используются для доступа к редактированию разрешений канала и разрешений клиента.

3+4. Разрешение для редактирования переменных СП и разрешения «Grant»

Разрешением для редактирования переменных является i_permission_modify_power, относящееся к типу силовых разрешений, единственным отличием от которых является то, что данному силовому разрешению требуются наличие других разрешений: набор силовых и совокупность из «Grant» привилегий, зависящей от конкретной ситуации.

О силовых разрешениях было рассказано выше.

«Grant» привилегия

Для редактирования любого значения у вас должна быть «Grant» привилегия у этого значения больше 0 (Нуля), причем вы можете изменять значение разрешения на любое в приделах его типа значений.

Пример:

У разрешения i_client_private_textmassage_power c привилегией «Grant» больше 0 (Нуля) можно изменять значение от -999999999 до 999999999.

У разрешения b_client_ignore_bans c привилегией «Grant» больше 0 (Нуля) можно изменять значение от FALSE до TRUE.

Т.е. «Grant» привилегия не накладывает ограничение на конечное значение, что нужно всегда иметь ввиду!

Кроме разрешения i_permission_modify_power, значение которого напрямую зависит от максимального значения «Grant» для разрешений.

Не стоит забывать, что «Grant» разрешение можно удалить, после чего его нельзя будет восстановить напрямую!

Теперь, зная как работают «Grant» разрешения, нужно рассказать, в каких отношениях состоят i_permission_modify_power и «Grant» разрешения какой либо привилегии.

Отношение i_permission_modify_power с «Grant» при изменении значения привилегии

Если значение i_permission_modify_power больше или равно значению «Grant» разрешению конкретной привилегии, тогда можно изменить значение этой привилегии.

Пример:

Допустим, что значение i_permission_modify_power равно 30.

b_channel_join_temporary имеет значение «Grant» равное 25, а i_channel_create_modify_with_codec_maxquality имеет значение «Grant» равное 30.

В обоих случаях изменения значений данных разрешений пройдет успешно.

Но i_client_max_idletime имеет значение «Grant» равное 31, и изменить значение данного разрешения не получится.

Отношение i_permission_modify_power с «Grant» при изменении значения «Grant»

Если значение i_permission_modify_power больше значения «Grant» разрешения конкретной привилегии, тогда можно изменить значение «Grant» этой привилегии до значения равного i_permission_modify_power, или меньше него.

Пример:

Допустим, что значение i_permission_modify_power равно 40.

b_channel_join_temporary имеет значение «Grant» равное 25, следовательно мы можем изменить значение «Grant», как в меньшую (до 1), так и в большую (до 40).

Если поставить значение равное 0 (Нулю), то СП выдаст предупреждение о том, что если вы уберете «Grant» привилегию через заданную группу, то через эту же группу вы его не сможете вернуть!

Отношение i_permission_modify_power с «Grant» значением i_permission_modify_power

Если значение i_permission_modify_power больше значения «Grant» разрешения i_permission_modify_power, тогда можно изменить значение «Grant»  до значения равного i_permission_modify_power.

Пример:

Допустим, что значение i_permission_modify_power равно 25, а значение «Grant» для данного разрешения равно 20.

Значит, мы можем изменить значение «Grant» данного разрешения до 25.

Если значение i_permission_modify_power равно значению «Grant» разрешения i_permission_modify_power, тогда можно изменить значение «Grant»  исключительно меньшую сторону, без возможности обратно поставить равные значения i_permission_modify_power и «Grant» разрешения i_permission_modify_power.

Пример:

Допустим, что значение i_permission_modify_power равно 40, и значение «Grant» для данного разрешения также равно 40.

Значит, мы можем изменить значение «Grant» данного разрешения только до 39. Назад же вернуть значение до 40 мы не сможем, потому что для данного разрешения не логично редактирование самого себя!

Если значение i_permission_modify_power меньше значения «Grant» разрешения i_permission_modify_power, тогда значение i_permission_modify_power изменить нельзя.

На данной ноте теоретическая информация, необходимая для работы с Системой Привилегий, заканчивается. Надеюсь, материал будет кому-то полезен. Не стоит забывать, что самих разрешений в системе привилегий много, и описывать каждое из них попросту не имеет смысла, т.к. все краткие описания уже представлены непосредственно в интерфейсе программы. Всем спасибо за потраченное на статью время, всем удачи и успешных вам часов возни с данной Системой Привилегий! 


Конец


Список вспомогательной литературы: