Разграничение прав действий

Материал из 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&param=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&param=26&value=&action=TextParamValueUpdate&object=113671&
...
http://192.168.169.3:8080/bgbilling/executer?id=0&title=123&module=contract.object&param_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>
...
Личные инструменты