Перейти к содержанию

Настройка Привилегий TeamSpeak 3


Hummer

Рекомендуемые сообщения

  • Администратор

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


 

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

 

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

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


 

  • 1. Имя разрешения
  • Это основной идентификатор, который является кратким описанием того или иного разрешения (привилегии), который еще указывает на тип значения (Value)
    Какой тип значения использует разрешение очень легко определить по начальному префиксу в имени разрешения.
    Если имя разрешения начинается с префикса 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 (Группа по умочанию). Когда новый (ранее неизвестный) клиент присоединяется к серверу, он автоматически становится членом этой группы. Кроме того, если вы в настоящее время в группе по умолчанию и вас назначили в другую группу, вы автоматически покинете группу по умолчанию.

    Пример: Допустим, вы являетесь членом трех групп сервера: Админ, Супер Модератор и Модератор
    Админ имеет i_client_kick_power = 70
    Супер Модератор имеет i_client_kick_power  = 60
    Модератор не имеет i_client_kick_power  (Если параметр не задан он равен 0)
    В результате чего на Ур. 1 для вас i_client_kick_power будет равен 70, так как это самое высокое значение, которое вы имеете от всех групп сервера.

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

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

    Пример:
    Вы создали группу сервера под названием Sticky. Она содержит только одно разрешение: Для i_channel_join_power установлено значение -1, и флаг Negate применяется к этому разрешению Теперь, если я предоставить эту группу любому клиенту, он не сможет больше перемещаться по каналам. Это также работает, если клиент имеет разрешение i_channel_join_power с неотрицательным значением. Причина прекращения возможности переключения каналов кроется в том, что обычно канал имеет разрешение i_channel_needed_join_power, которое, даже если не установлено, задается как (Ноль). Так как -1 , то клиент данной группы не сможет присоединиться к каналу.

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

    Пример:
    Как администратор вашего сервера вы не хотите, чтобы группа канала ограничивала ваши разрешения группы Админ в каком либо плане. Путем добавления флага Skip все разрешения в этой группе сервера вы убедитесь, что независимо от значений разрешений группы канала, вы останетесь с разрешениями группы сервера Админ, т.е. группа канала не окажет никакого влияния на ваши способности.

     
  • Уровень 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.Channel Guest, которая присваивается любому клиенту, присоединяющемуся в канал первый раз.
2.Channel Admin, которая предоставляется клиенту, который создает новый канал.

 

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

Специальные привилегии канала и клиента это сочетание разрешений клиента (Ур. 2) и разрешений канала (Ур. 3).
Они применяются к клиенту и каналу одновременно тогда и только тогда, когда указанный клиент, и указанный канал взаимодействуют  друг с другом.
Это используется клиентом, для функции приоритета голосового чата, когда вы получили статус приоритета Priority speaker (Статус на приоритет голоса), то к специальным привилегиям канала и клиента добавляется разрешение b_client_is_priority_speaker для вашего клиента и текущего канала.
Как с Ур.3 и Ур. 4, привилегии Ур. 5, которые логически могут быть применены к области канала, будут действовать только в каналах, в которых у вас есть такое разрешение.

 

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




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

 

  • 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 изменить нельзя.

Изменено пользователем Hummer
Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...