Разграничение прав действий
Материал из BiTel WiKi
Разграничение прав действий
Например: Хотим выделить действия "Начисление по всем договорам по VPN" и "Начисление по одному договору VPN". Находим соответствующие запросы:
http://192.168.169.3:8080/bgbilling/executer? mail=bakirov_t%40ufanet.ru& module=dialup& action=RecalculateSessions& date2=30.04.2008& contracts=26019& mid=16& groups=0& date1=01.04.2008& http://192.168.169.3:8080/bgbilling/executer? mail=bakirov_t%40ufanet.ru& module=dialup& action=RecalculateSessions& date2=30.04.2008& mid=16& groups=0& date1=01.04.2008&
В dialup.xml находим соответствующее действие:
<action id="27" mask="module=dialup;action=RecalculateSessions" title="Начисление"/>
Параметр contract будет меняться поэтому используется REGEXP ( префикс R: )
module=dialup;action=RecalculateSessions;contract=R:\d+"
В результате имеем dialup.xml
<action id="10003" mask="module=dialup;action=RecalculateSessions;contracts=R:\d+" title="Начисление по конкретному договору"/> <action id="27" mask="module=dialup;action=RecalculateSessions;" title="Начисление по всем договорам"/>
Права доступа к выбранным параметрам объектов заданного типа
Необходимо разграничить доступ к редактированию и удалению текстовых и списковых параметров объектов заданного типа (в нашем примере, "ЛВС у клиента"), а также к изменению справочников для этих списковых параметров.
Запускаем клиент биллинга в отладочном режиме, открываем договор, пробуем создать объект типа "ЛВС у клиента" и пробуем редактировать его текстовые и списковые параметры, клонировать его, переместить в другой договор и удалить. Затем переходим в "Справочники/Объекты/Значения списков" и пробуем добавлять, редактировать, удалять значения необходимых списковых параметров.
Из отладочного журнала клиента биллинга получаем соответствующие запросы:
... http://192.168.169.3:8080/bgbilling/executer?module=contract.object¶m=25&action=ListParamValueGet&object=113671& ... http://192.168.169.3:8080/bgbilling/executer?id=0&module=contract.object&action=ObjectUpdate&type=5&cid=14458& ... http://192.168.169.3:8080/bgbilling/executer?module=contract.object¶m=26&value=&action=TextParamValueUpdate&object=113671& ... http://192.168.169.3:8080/bgbilling/executer?id=0&title=123&module=contract.object¶m_id=27&action=ListValueUpdate& ... http://192.168.169.3:8080/bgbilling/executer?id=4050&module=contract.object&action=ListValueDelete&
Вставляем свои действия в kernel.xml перед "более общими" действиями:
... <group title="Объекты"> <action id="219" mask="module=contract.object;action=ObjectTable" title="Про смотр объектов договора"/> <action id="220" mask="module=contract.object;action=ObjectParamTable" title ="Просмотр значений параметров объекта"/> <action id="10000" mask="module=contract.object;action=ObjectUpdate;type=5" title="Изменение периода и названия объекта 'ЛВС у клиента'"/> <action id="221" mask="module=contract.object;action=ObjectUpdate" title="Изменение периода и названия объекта"/> <action id="10001" mask="module=contract.object;action=ObjectDelete;type=5" title="Удаление объекта 'ЛВС у клиента'"/> <action id="222" mask="module=contract.object;action=ObjectDelete" title="Удаление объекта"/> <action id="10002" mask="module=contract.object;action=TextParamValueUpdate;param=26" title="Изменение в объекте текстового параметра 'Имя сети (SSID)'"/> <action id="10003" mask="module=contract.object;action=TextParamValueUpdate;param=28" title="Изменение в объекте текстового параметра 'Ключ шифрации'"/> <action id="10004" mask="module=contract.object;action=TextParamValueUpdate;param=29" title="Изменение в объекте текстового параметра 'Логин/пароль для управления устройством'"/> <action id="10005" mask="module=contract.object;action=TextParamValueUpdate;param=30" title="Изменение в объекте текстового параметра 'Серийный номер'"/> <action id="10006" mask="module=contract.object;action=TextParamValueUpdate;param=31" title="Изменение в объекте текстового параметра 'MAC-адрес'"/> <action id="223" mask="module=contract.object;action=TextParamValueUpdate" title="Изменение текстового параметра объекта"/> <action id="224" mask="module=contract.object;action=DateParamValueUpdate" title="Изменение дата параметра объекта"/> <action id="225" mask="module=contract.object;action=AddressParamValueUpdate" title="Изменение адресного параметра объекта"/> <action id="10007" mask="module=contract.object;action=ListParamValueUpdate;param=24" title="Изменение в объекте спискового параметра 'Модель устройства'"/> <action id="10008" mask="module=contract.object;action=ListParamValueUpdate;param=25" title="Изменение в объекте спискового параметра 'Тип подключения'"/> <action id="10009" mask="module=contract.object;action=ListParamValueUpdate;param=27" title="Изменение в объекте спискового параметра 'Тип шифрации'"/> <action id="226" mask="module=contract.object;action=ListParamValueUpdate" title="Изменение спискового параметра объекта"/> <action id="10010" mask="module=contract.object;action=ObjectClone;type=5" title="Клонирование объекта 'ЛВС у клиента'"/> <action id="265" mask="module=contract.object;action=ObjectClone" title="Клонирование объекта"/> <action id="10011" mask="module=contract.object;action=MoveObject;type=5" title="Перемещение объекта 'ЛВС у клиента' в другой договор"/> <action id="252" mask="module=contract.object;action=MoveObject" title="Перемещение объекта в другой договор"/> </group> ... <group title="Значения списковых параметров"> <action id="238" mask="module=contract.object;action=ListValueList" title="Просмотр значений спискового параметра"/> <action id="10012" mask="module=contract.object;action=ListValueDelete;param_id=24" title="Удаление значения спискового параметра 'Модель устройства'"/> <action id="10013" mask="module=contract.object;action=ListValueDelete;param_id=25" title="Удаление значения спискового параметра 'Тип подключения (ЛВС у клиента)'"/> <action id="10014" mask="module=contract.object;action=ListValueDelete;param_id=27" title="Удаление значения спискового параметра 'Тип шифрации'"/> <action id="239" mask="module=contract.object;action=ListValueDelete" title="Удаление значения спискового параметра"/> <action id="10015" mask="module=contract.object;action=ListValueUpdate;param_id=24" title="Обновление значения спискового параметра 'Модель устройства'"/> <action id="10016" mask="module=contract.object;action=ListValueUpdate;param_id=25" title="Обновление значения спискового параметра 'Тип подключения (ЛВС у клиента)'"/> <action id="10017" mask="module=contract.object;action=ListValueUpdate;param_id=27" title="Обновление значения спискового параметра 'Тип шифрации'"/> <action id="240" mask="module=contract.object;action=ListValueUpdate" title="Изменение значения спискового параметра"/> </group> ...
Редактирование статического IP-адреса (фиксированного Framed-IP-Address) в модуле DialUp/VPN
Для задания статического IP-адреса используется соответствующая вкладка в свойствах логина клиента. Попробуем зайти на эту вкладку и выполнить разные манипуляции с IP-адресом. После каждой манипуляции нужно нажимать на "Ок" как внизу самой вкладки "IP-адрес", так и внизу родительской вкладки "Логины", иначе изменения не сохраняются на сервере биллинга. Следует также заметить, что информация о каждой вкладке ("Общие", "IP-адрес", "Атрибуты RADIUS" и т.д.) будет сохраняться с помощью отдельного запроса к серверу биллинга.
Нас интересуют только запросы, относящиеся к вкладке "IP-адрес". Найдем их в отладочном журнале клиента:
http://192.168.169.3:8080/bgbilling/executer?lid=129878&module=dialup&values=1.2.3.4%3Adefault%3A16.05.2008-&action=IPAddressUpdate&mid=16& ... http://192.168.169.3:8080/bgbilling/executer?lid=129878&module=dialup&values=1.2.3.5%3Alocal%3A16.05.2008-&action=IPAddressUpdate&mid=16& ... http://192.168.169.3:8080/bgbilling/executer?lid=129878&module=dialup&values=&action=IPAddressUpdate&mid=16&
Таким образом, любое изменение, в т.ч. и удаление статического IP-адреса, осуществляется с помощью действия IPAddressUpdate. Его и запишем в dialup.xml (а лучше, наверное, попросим разработчиков добавить это действие в dialup.xml в дистрибутиве биллинга).