Формулировка проблемы: необходима возможность блокировать отправку документов на согласование, ознакомление и утверждение определённой группе пользователей.
Связанные задачи: 2.46.INT1.
Решение: необходимо реализовать обработчик
процесса (listener), использующий механизм,
описанный в задаче 2.46.INT1, который
будет определять, кому (каким группам пользователей Synergy) можно
отправлять что-либо (что именно — зависит от типа процесса, на
который назначен этот обработчик) и кто это может делать. Обработчик
должен иметь собственный конфигурационный файл
${jboss.server.config.dir}/arta/ext/send-control.xml
следующего вида:
<?xml version="1.0" encoding="UTF-8"?>
<send-control>
<from>
<allow>35</allow>
<allow>42</allow>
</from>
<to>
<deny сomment="Вы не можете отправлять что-либо на согласование данному пользователю">7</deny>
</to>
</send-control>
Блоки from и to обязательны, их может быть только по одному в конфигурационном файле.
Внутри блока from может находиться по одной или несколько директив
allow. Внутри блока to — одна или несколько
директив deny. В этих директивах в которых
указывается идентификатор группы. Директивы allow
и deny выполняются по порядку следования в блоке, до первого
соответствия. По умолчанию разрешён доступ на запуск процесса всем в
адрес всех.
Обработка правил доступа осуществляется так:
определяется пользователь, которому адресован процесс (адресат) и пользователь, который запустил процесс (отправитель).
читается блок to и выясняется, можно ли адресату что-либо отправлять.
если для адресата определено ограничение в блоке to, то обрабатывается блок from и отправитель проверяется на предмет разрешения доступа.
если адресат найден в блоке to, а отправитель не найден в блоке from, тогда обработчик завершает обрабатываемый процесс с комментарием, указанным в необязательном параметре comment того блока deny, где найден адресат.
Например, конфигурационный файл, приведённый выше, разрешает адресовать что-либо пользователям из группы с идентификатором 7 только пользователям из групп с идентификаторами 35 и 42.