Как скрыть пользовательские рабочие процессы для определенной роли? - PullRequest
0 голосов
/ 06 июня 2011

Я работаю с ролями и разрешениями. Мне нужно создать разрешение, которое скрывает созданные пользовательские рабочие процессы для перикулярной роли. Когда я добавляю этот файл компонента и мастер в xml, я вообще не могу запустить рабочий процесс. пожалуйста, дайте мне знать, если есть другой способ.


это файл bean, который я создал

публичный список getResources () { this.resources = new ArrayList (4);

  UserTransaction tx = null;
  try
  {
     FacesContext context = FacesContext.getCurrentInstance();
     tx = Repository.getUserTransaction(context, true);
     tx.begin();

     for (String newItem : this.packageItemsToAdd)
     {
        NodeRef nodeRef = new NodeRef(newItem);
        if (this.getNodeService().exists(nodeRef))
        {
           // create our Node representation
           MapNode node = new MapNode(nodeRef, this.getNodeService(), true);
           this.browseBean.setupCommonBindingProperties(node);

           // add property resolvers to show path information
           node.addPropertyResolver("path", this.browseBean.resolverPath);
           node.addPropertyResolver("displayPath", this.browseBean.resolverDisplayPath);

           this.resources.add(node);
        }
        else
        {
           if (logger.isDebugEnabled())
              logger.debug("Ignoring " + nodeRef + " as it has been removed from the repository");
        }
     }

     // commit the transaction
     tx.commit();
  }
  catch (Throwable err)
  {
     Utils.addErrorMessage(MessageFormat.format(Application.getMessage(
           FacesContext.getCurrentInstance(), Repository.ERROR_GENERIC), err.getMessage()), err);
     this.resources = Collections.<Node>emptyList();
     try { if (tx != null) {tx.rollback();} } catch (Exception tex) {}
  }

  return this.resources;

}

вот имплиментат бобов защищенный void resetRichList () { if (this.packageItemsRichList! = null) { this.packageItemsRichList.setValue (нуль); this.packageItemsRichList = null; } }

это XML-файл коллаборационист

1 Ответ

3 голосов
/ 09 июня 2011

Я могу ответить на этот вопрос, но ваш вопрос слишком расплывчат.

Если я просто посмотрю на вопрос, то это очень просто -> Просто создайте оценщик, который проверяет действие настраиваемого рабочего процесса.

Найдите файл web-client-config-workflow-actions.

Изменить или переопределить этот код:

    <action id="start_workflow">
            <label-id>start_workflow</label-id>
            <image>/images/icons/new_workflow.gif</image>
            <evaluator>org.alfresco.web.action.evaluator.StartWorkflowEvaluator</evaluator>
            <action>wizard:startWorkflow</action>
            <action-listener>#{WizardManager.setupParameters}</action-listener>
            <params>
               <param name="item-to-workflow">#{actionContext.id}</param>
            </params>
    </action>

Изменить эту строку:

<evaluator>org.alfresco.web.action.evaluator.StartWorkflowEvaluator</evaluator>

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

<permissions>
    <permission allow="true">Your Role aka Write, Collaborator, etc</permission>
</permissions>
...