entaxy-public/documentation/core/permission/SOAP-service-Permission-management.adoc

12 KiB
Raw Blame History

SOAP сервис Permission-management

Permission - сущность для описания и хранения прав.

Поля Permission:

  1. permissionId (long) - идентификатор объекта permission

  2. objectId (long) - идентификатор объекта, для которого проверяются права

  3. objectType (String) - тип объекта, данный параметр соответствует проектной терминалогии: system, system-group

  4. subjectId (String) - идентификатор предмета применяемого права

  5. subjectType (String) - тип предмета

  6. action (String)- тип действия, по умолчанию проставляется значение default

SOAP Сервис Permission управляет созданием и проверкой объекта Permission.

Типы объектов в системе ESB.

  • system - система

  • system-group - группа систем

  • service - сервис

  • account - аккаунт

  • event-topic - топик

Методы сервиса

Check - проверяет описанное право

Принимает параметры

  • objectId (long) - идентификатор объекта, для которого проверяются права

  • objectType (String) - тип объекта

  • subjectId (String) - идентификатор предмета применяемого права

  • subjectType (String) - тип предмета

  • action (String) - тип действия, необязательный по умолчанию проставляется значение default

Пример запроса:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:per="http://www.entaxy.ru/permission/">
    <soapenv:Header/>
    <soapenv:Body>
        <per:permissionCommon>
            <per:objectId>1</per:objectId>
            <per:objectType>system</per:objectType>
            <per:subjectId>2</per:subjectId>
            <per:subjectType>system</per:subjectType>
            <!--Optional:-->
            <per:action>default</per:action>
        </per:permissionCommon>
    </soapenv:Body>
</soapenv:Envelope>

Пример ответа:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <response xmlns="http://www.entaxy.ru/permission/">false</response>
    </soap:Body>
</soap:Envelope>

Get - получает запись Permission

Принимает параметры

permissionId (long) - идентификатор объекта permission

Пример запроса:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:per="http://www.entaxy.ru/permission/">
    <soapenv:Header/>
    <soapenv:Body>
        <per:permissionId>24</per:permissionId>
    </soapenv:Body>
</soapenv:Envelope>

Пример ответа:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <tns:permission xmlns:tns="http://www.entaxy.ru/permission/">
            <tns:permissionId>24</tns:permissionId>
            <tns:objectId>7</tns:objectId>
            <tns:objectType>system</tns:objectType>
            <tns:subjectId>8</tns:subjectId>
            <tns:subjectType>system</tns:subjectType>
            <tns:action>connect</tns:action>
        </tns:permission>
    </soap:Body>
</soap:Envelope>

GetByAllParams - получает запись Permission

Принимает параметры

  • objectId (long) - идентификатор объекта, для которого проверяются права

  • objectType (String) - тип объекта

  • subjectId (String) - идентификатор предмета применяемого права

  • subjectType (String) - тип предмета

  • action (String) - тип действия, необязательный по умолчанию проставляется значение default

Пример запроса:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:per="http://www.entaxy.ru/permission/">
    <soapenv:Header/>
    <soapenv:Body>
        <per:permissionCommon>
            <per:objectId>7</per:objectId>
            <per:objectType>system</per:objectType>
            <per:subjectId>8</per:subjectId>
            <per:subjectType>system</per:subjectType>
            <!--Optional:-->
            <per:action>connect</per:action>
        </per:permissionCommon>
    </soapenv:Body>
</soapenv:Envelope>

Пример ответа:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <tns:permission xmlns:tns="http://www.entaxy.ru/permission/">
            <tns:permissionId>24</tns:permissionId>
            <tns:objectId>7</tns:objectId>
            <tns:objectType>system</tns:objectType>
            <tns:subjectId>8</tns:subjectId>
            <tns:subjectType>system</tns:subjectType>
            <tns:action>connect</tns:action>
        </tns:permission>
    </soap:Body>
</soap:Envelope>

Create - создаёт запись Permission

Принимает параметры

  • objectId (long) - идентификатор объекта, для которого проверяются права

  • objectType (String) - тип объекта

  • subjectId (String) - идентификатор предмета применяемого права

  • subjectType (String) - тип предмета

  • action (String) - тип действия, необязательный по умолчанию проставляется значение default

Пример запроса:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:per="http://www.entaxy.ru/permission/">
    <soapenv:Header/>
    <soapenv:Body>
        <per:permissionCommon>
            <per:objectId>7</per:objectId>
            <per:objectType>account</per:objectType>
            <per:subjectId>1234</per:subjectId>
            <per:subjectType>system-group</per:subjectType>
            <!--Optional:-->
            <per:action>send</per:action>
        </per:permissionCommon>
    </soapenv:Body>
</soapenv:Envelope>

Пример ответа:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <tns:permission xmlns:tns="http://www.entaxy.ru/permission/">
            <tns:permissionId>25</tns:permissionId>
            <tns:objectId>7</tns:objectId>
            <tns:objectType>account</tns:objectType>
            <tns:subjectId>1234</tns:subjectId>
            <tns:subjectType>system-group</tns:subjectType>
            <tns:action>send</tns:action>
        </tns:permission>
    </soap:Body>
</soap:Envelope>

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

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>org.hibernate.exception.ConstraintViolationException: could not execute statement</faultstring>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

Update - изменяет запись Permission

Принимает параметры

  • permissionId (long) - идентификатор объекта permission

  • objectId (long) - идентификатор объекта, для которого проверяются права

  • objectType (String) - тип объекта, данный параметр соответствует проектной терминалогии: system, system-group

  • subjectId (String) - идентификатор предмета применяемого права

  • subjectType (String) - тип предмета

  • action (String) - тип действия, необязательный по умолчанию проставляется значение default

Пример запроса:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:per="http://www.entaxy.ru/permission/">
    <soapenv:Header/>
    <soapenv:Body>
        <per:permission>
            <per:permissionId>23</per:permissionId>
            <per:objectId>8</per:objectId>
            <per:objectType>account</per:objectType>
            <per:subjectId>1234</per:subjectId>
            <per:subjectType>system-group</per:subjectType>
            <!--Optional:-->
            <per:action>send</per:action>
        </per:permission>
    </soapenv:Body>
</soapenv:Envelope>

Пример ответа:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <tns:permission xmlns:tns="http://www.entaxy.ru/permission/">
            <tns:permissionId>23</tns:permissionId>
            <tns:objectId>8</tns:objectId>
            <tns:objectType>account</tns:objectType>
            <tns:subjectId>1234</tns:subjectId>
            <tns:subjectType>system-group</tns:subjectType>
            <tns:action>send</tns:action>
        </tns:permission>
    </soap:Body>
</soap:Envelope>

В случае если запись не найдена возвращается ошибка

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>No entity found for query</faultstring>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

Delete - удаляет запись Permission

Принимает параметры

  • objectId (long) - идентификатор объекта, для которого проверяются права

  • objectType (String) - тип объекта

  • subjectId (String) - идентификатор предмета применяемого права

  • subjectType (String) - тип предмета

  • action (String) - тип действия, необязательный по умолчанию проставляется значение default

Пример запроса:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:per="http://www.entaxy.ru/permission/">
    <soapenv:Header/>
    <soapenv:Body>
        <per:permissionCommon>
            <per:objectId>7</per:objectId>
            <per:objectType>account</per:objectType>
            <per:subjectId>1234</per:subjectId>
            <per:subjectType>system-group</per:subjectType>
            <!--Optional:-->
            <per:action>send</per:action>
        </per:permissionCommon>
    </soapenv:Body>
</soapenv:Envelope>

Пример ответа:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <response xmlns="http://www.entaxy.ru/permission/">true</response>
    </soap:Body>
</soap:Envelope>

В случае если запись не найдена возвращается ошибка

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body>
        <soap:Fault>
            <faultcode>soap:Server</faultcode>
            <faultstring>No entity found for query</faultstring>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>