forum.bitel.ru http://forum.bitel.ru/ |
|
[6.1] Расширение дерева прав в случае с service (CRM) http://forum.bitel.ru/viewtopic.php?f=22&t=9446 |
Страница 1 из 1 |
Автор: | Phricker [ 16 июл 2014, 14:07 ] |
Заголовок сообщения: | [6.1] Расширение дерева прав в случае с service |
Возвращаясь к давно поднятой теме, которую я не могу сейчас найти, но ответа в которой так и не было. Как удобно расширять дерево прав в случае с 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="Удаление платежа"/> При этом одной и той же операцией считается и добавление нового платежа и изменение существующего. Хотелось бы уйти от этого, т.к. люди бывает меняют задними числами платеж. Как это реализовать через дерево прав? Скрипты не предлагать, т.к. согласитесь есть разница между установкой и снятием галочки конкретному юзеру/группе юзеров, и описывание всех их в скрипте |
Автор: | Ildar [ 16 июл 2014, 17:57 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service |
Решение есть и часть его решения уже описывали. Чуть позже постараюсь описать. |
Автор: | Phricker [ 16 июл 2014, 19:16 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Если вы про сообщение stark'а или сообщение Amir'а, то можно попробовать. Ну и с разными примерчиками ![]() |
Автор: | Phricker [ 21 июл 2014, 00:38 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Вечерний ап |
Автор: | Ildar [ 21 июл 2014, 06:54 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Код: <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 - обычно это так, но если что, пишите. |
Автор: | Phricker [ 23 июл 2014, 19:37 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
А можно на примере? В 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="Поиск договора"/> |
Автор: | Phricker [ 23 июл 2014, 19:42 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Хотя Amir писал Цитата: Если где-то вместо имени агрумента arg0 arg1 - то надо нам, написать - это кто-то забыл указать аннотацию для метода. Это к моему случаю относится? |
Автор: | Ildar [ 23 июл 2014, 19:46 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Да, но я уже добавил аннотации. Но еще не выкладывал, думаю завтра выложу. Я там как раз затрагиваю тему contractList в kernel.xml. |
Автор: | Phricker [ 23 июл 2014, 19:50 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Буду ждать тогда. Как раз работу с правами пользователей затеял, которую планировал после перехода на 6.1 |
Автор: | Phricker [ 23 июл 2014, 19:54 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
А обязательно было добавлять в Код: <group title="Договор"> описание xmlns? Код: <group title="Договор" xmlns:contract="http://service.common.api.contract.kernel.bgbilling.bitel.ru/">
|
Автор: | Ildar [ 24 июл 2014, 09:56 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Желательно. Но в общем случае должно работать как и раньше, без указания неймспейса, через ./*/параметр/@поле Права поиска по договору выложены, можете посмотреть. |
Автор: | Ildar [ 24 июл 2014, 10:59 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Вам надо будет так сделать. Код: <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, но лучше сказать нам, чтобы мы ее добавили(а то когда мы ее все таки добавим ваше выражение работать не будет). |
Автор: | madmax [ 28 ноя 2014, 23:57 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Если так прописать то ни тольок скрытые не показывает а вообще все договора. А как запретить только скрытые не показывать 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, но лучше сказать нам, чтобы мы ее добавили(а то когда мы ее все таки добавим ваше выражение работать не будет). |
Автор: | madmax [ 05 дек 2014, 22:42 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
И как решить проблему |
Автор: | Ildar [ 09 дек 2014, 19:32 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Извините, но у нас поменялся формат. В документации он приведен 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. Если я долго не отвечаю по данной теме, пишите пожалуйста в личку |
Автор: | madmax [ 10 дек 2014, 00:53 ] |
Заголовок сообщения: | Re: [6.1] Расширение дерева прав в случае с service (CRM) |
Спасибо работает, вот только появилась другая проблема http://forum.bitel.ru/viewtopic.php?f=22&t=10004 |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |