Формулировка проблемы: необходима возможность блокировать отправку документов на согласование, ознакомление и утверждение определённой группе пользователей.
Связанные задачи: 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.