BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 26 июн 2025, 20:40

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
СообщениеДобавлено: 16 июл 2014, 14:07 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Возвращаясь к давно поднятой теме, которую я не могу сейчас найти, но ответа в которой так и не было.

Как удобно расширять дерево прав в случае с service?
Раньше я добавлял права
Код:
<action id="10002" mask="module=contract;action=UpdateContractPayment;pt=2" title="Занесение банковского перевода"/>
<action id="10003" mask="module=contract;action=UpdateContractPayment;id=new" title="Занесение платежа"/>
<action id="90" mask="module=contract;action=UpdateContractPayment" title="Изменение платежа"/>

и все работало.

Теперь у вас
Код:
<action id="1001"  mask="module=contract;action=UpdateContractPayment;id=new" title="Добавление платежа"/>
<service id="1001" name="PaymentService" operation="paymentUpdate" title="Добавление платежа"/>
<action id="90"  mask="module=contract;action=UpdateContractPayment" title="Изменение платежа"/>
<action id="91"  mask="module=contract;action=DeleteContractPayment" title="Удаление платежа"/>
<service id="91" name="PaymentService" operation="paymentDelete" title="Удаление платежа"/>


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

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

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 июл 2014, 17:57 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 05 сен 2012, 18:20
Сообщения: 457
Карма: 27
Решение есть и часть его решения уже описывали. Чуть позже постараюсь описать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16 июл 2014, 19:16 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Если вы про сообщение stark'а или сообщение Amir'а, то можно попробовать.

Ну и с разными примерчиками :oops:

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 июл 2014, 00:38 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Вечерний ап

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 июл 2014, 06:54 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 05 сен 2012, 18:20
Сообщения: 457
Карма: 27
Код:
<group title="Баланс" xmlns:balance="http://common.balance.contract.kernel.bgbilling.bitel.ru/">   
             <group title="Резервы">
                <service id="1012" name="ReserveService" operation="updateReserve" title="Изменение резервов"> <regexp path="balance:updateReserve/reserve/@id" value="\A[1-9]\d*"/> </service>
            </group>
</group>


Неймспейс как видно формируется на основе пакета бина. Вместо regexp можно использовать eq, одно для регулярных выражений, другое для обычного сравнения.
В path после префикса указываем метод/название обьекта бина(обычно совпадает с бином)/поле бина

Для того чтобы это работало необходимо, что бы в сервайсе у метода был указан @WebParam(name="reserve")( иначе придется обращаться argument0) и у бина в методе получения параметра стояла аннотация @XmlAttribute - обычно это так, но если что, пишите.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2014, 19:37 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
А можно на примере?
В kernel.xml добавил в строчку
Код:
<group title="Договор" xmlns:contract="http://service.common.api.contract.kernel.bgbilling.bitel.ru/">

Дальше добавил правило для поиска договора
Код:
<service id="62" name="ContractService" operation="contractList" title="Поиск договора"/>

Теперь хочу запретить поиск скрытых договоров.

Методом тыка и анализом дебага лога клиента нашел
Цитата:
http://10.0.6.152:8080/bgbilling/executer/ru.bitel.bgbilling.kernel.contract.api/ContractService?wsdl -> {http://service.common.api.contract.kernel.bgbilling.bitel.ru/}ContractService:contractList
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns5:contractList xmlns:ns5="http://service.common.api.contract.kernel.bgbilling.bitel.ru/" xmlns:common="http://common.bitel.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><arg2>-1</arg2><arg3>0</arg3><arg4>1</arg4><arg6>false</arg6><arg7>true</arg7><arg8>true</arg8><arg9 pageCount="0" pageIndex="1" pageSize="25" recordCount="0"/></ns5:contractList></S:Body></S:Envelope>

http://10.0.6.152:8080/bgbilling/execut ... rvice?wsdl -> {http://service.common.api.contract.kernel.bgbilling.bitel.ru/}ContractService:contractList
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns5:contractList xmlns:ns5="http://service.common.api.contract.kernel.bgbilling.bitel.ru/" xmlns:common="http://common.bitel.ru" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><arg2>-1</arg2><arg3>0</arg3><arg4>1</arg4><arg6>false</arg6><arg7>true</arg7><arg8>false</arg8><arg9 pageCount="0" pageIndex="1" pageSize="25" recordCount="0"/></ns5:contractList></S:Body></S:Envelope>



Какое правило необходимо в этом случае написать?
Код:
<service id="10001" name="ContractService" operation="contractList" title="Поиск скрытых договоров"> <regexp path="contract:contractList/??????????????????" value="true"/> </service>
<service id="62" name="ContractService" operation="contractList" title="Поиск договора"/>

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2014, 19:42 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Хотя Amir писал
Цитата:
Если где-то вместо имени агрумента arg0 arg1 - то надо нам, написать - это кто-то забыл указать аннотацию для метода.

Это к моему случаю относится?

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2014, 19:46 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 05 сен 2012, 18:20
Сообщения: 457
Карма: 27
Да, но я уже добавил аннотации. Но еще не выкладывал, думаю завтра выложу. Я там как раз затрагиваю тему contractList в kernel.xml.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2014, 19:50 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Буду ждать тогда. Как раз работу с правами пользователей затеял, которую планировал после перехода на 6.1

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 июл 2014, 19:54 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
А обязательно было добавлять
в
Код:
<group title="Договор">

описание xmlns?
Код:
<group title="Договор" xmlns:contract="http://service.common.api.contract.kernel.bgbilling.bitel.ru/">

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2014, 09:56 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 05 сен 2012, 18:20
Сообщения: 457
Карма: 27
Желательно.
Но в общем случае должно работать как и раньше, без указания неймспейса, через ./*/параметр/@поле
Права поиска по договору выложены, можете посмотреть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 24 июл 2014, 10:59 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 05 сен 2012, 18:20
Сообщения: 457
Карма: 27
Вам надо будет так сделать.
Код:
<group title="Поиск по параметрам" xmlns:contract="http://service.common.api.contract.kernel.bgbilling.bitel.ru/">
      <service id="100041" name="ContractService" operation="contractList" title="Поиск скрытых договоров"> <eq path="contract:contractList/hidden/text()" value="true"/> </service>
</group>


Как видите hidden не является атрибутом(а является элементом xml, так как он не поле бина, а параметр запроса), и нам нужно сравнивать его содержимое, для этого используем text().
В принципе так же можно поступать и с полями бинов, если мы забыли указать аннотацию @XmlAttribute, но лучше сказать нам, чтобы мы ее добавили(а то когда мы ее все таки добавим ваше выражение работать не будет).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 ноя 2014, 23:57 
Если так прописать то ни тольок скрытые не показывает а вообще все договора.
А как запретить только скрытые не показывать
Ildar писал(а):
Вам надо будет так сделать.
Код:
<group title="Поиск по параметрам" xmlns:contract="http://service.common.api.contract.kernel.bgbilling.bitel.ru/">
      <service id="100041" name="ContractService" operation="contractList" title="Поиск скрытых договоров"> <eq path="contract:contractList/hidden/text()" value="true"/> </service>
</group>


Как видите hidden не является атрибутом(а является элементом xml, так как он не поле бина, а параметр запроса), и нам нужно сравнивать его содержимое, для этого используем text().
В принципе так же можно поступать и с полями бинов, если мы забыли указать аннотацию @XmlAttribute, но лучше сказать нам, чтобы мы ее добавили(а то когда мы ее все таки добавим ваше выражение работать не будет).


Вернуться к началу
  
 
СообщениеДобавлено: 05 дек 2014, 22:42 
И как решить проблему


Вернуться к началу
  
 
СообщениеДобавлено: 09 дек 2014, 19:32 
Не в сети
Разработчик
Аватара пользователя

Зарегистрирован: 05 сен 2012, 18:20
Сообщения: 457
Карма: 27
Извините, но у нас поменялся формат. В документации он приведен http://bgbilling.ru/v6.1/doc/ch01s22s02.html
Теперь для этого варианта будет так :
Код:
<service id="100041" name="ContractService" operation="contractList" title="Поиск скрытых договоров" expression="hidden"/>

Только вставьте его раньше данного кода в kernel.xml, лучше прямо перед ним
Код:
<service id="62" name="ContractService" operation="contractList" title="Поиск договора"/>
чтобы он первым делом прошел проверку по вашему правилу.

Если у кого есть еще вопросы смело спрашивайте.
p.s. Если я долго не отвечаю по данной теме, пишите пожалуйста в личку


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10 дек 2014, 00:53 
Спасибо работает, вот только появилась другая проблема
http://forum.bitel.ru/viewtopic.php?f=22&t=10004


Вернуться к началу
  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
POWERED_BY
Русская поддержка phpBB
[ Time : 0.056s | 42 Queries | GZIP : On ]