2017-03-21 6 views
0

저는 Alfresco를 처음 사용하기 때문에 작업과 사용자 그룹이있는 워크 플로우를 만들었습니다. 일부 읽기 전용 필드가있는 다른 사용자 그룹에 동일한 양식을 표시하는 방법이 있는지 알고 싶습니다. 코드를 사용하여 수행하는 방법에 대한 많은 답변이 있었지만 UI 수준에서이를 수행하는 방법이 있는지 알고 싶습니다. (응용 프로그램에서)Alfresco Activiti - 특정 그룹/작업에 대해서만 필드를 읽기로 설정합니다.

+0

IIRC, 당신은 당신이 현재 사용자가 지정된 그룹에 속하는 여부를 확인할 수 있습니다 사용자 지정 컨트롤을 사용하는 경우 다음 읽기 전용 모드를 업데이트 할 수 있어야한다. 이것은 생각이지만 어디서도 시도한 적이 없습니다. –

+0

특정 필드에 대해서만 읽기 전용 모드를 업데이트 할 수 있습니까? –

+0

코드없이 처리 할 수 ​​있습니까? 어떤 컨트롤에 –

답변

3

코드를 작성하지 않고는이 작업을 수행 할 수 없지만 제안을 공유 할 수 있으므로 일부 전문가는 의견을 공유합니다.

두 가지 옵션이 있습니다.

  1. 쓰기 사용자 지정 컨트롤 및 로직 적용 (만 주 측의 변경 및 리포 측의 적은 변화 될 수있다 [비즈니스 로직을 바탕으로).
  2. 다중 워크 플로우 양식을 작성하고 런타임에 논리를 적용하고 양식을 동적으로 표시하십시오.

옵션 1 :

당신은 textfield.ftl 텍스트 상자를 생성하는 동안

tomcat\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\form\controls\textfield.ftl에서, 공유 비활성화 옵션이 아닌지 여부를 확인한다을 참조 할 수 있습니다. 그렇다면 disabled="true" 속성을 추가합니다.

<label for="${fieldHtmlId}">${field.label?html}:<#if field.mandatory><span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></#if></label> 
     <input id="${fieldHtmlId}" name="${field.name}" tabindex="0" 
     /* Other code lines are removed to make it simple to understand */ 
      <#if field.disabled && !(field.control.params.forceEditable?? && field.control.params.forceEditable == "true")>disabled="true"</#if> /> 
     <@formLib.renderFieldHelp field=field /> 

비슷한 논리를 적용하여 사례를 얻을 수도 있지만 코드를 작성해야합니다.

<label for="${fieldHtmlId}">${field.label?html}:<#if field.mandatory><span class="mandatory-indicator">${msg("form.required.fields.marker")}</span></#if></label> 
     <input id="${fieldHtmlId}" name="${field.name}" tabindex="0" 
     /* Other code lines are removed to make it simple to understand */ 
     /* We need to determine, how we will be bringing the condition over here */ 
      <#if <YOUR_CONDITION> =="true")>disabled="true"</#if> /> 
     <@formLib.renderFieldHelp field=field /> 

옵션 2

공유 설정 변경됩니다.

<!-- Edit form With All controls enabled --> 
<config evaluator="task-type" condition="example:Form1AllEnabled"> 
.. 
</config> 

<!-- Edit form With specific controls disabled --> 
<config evaluator="task-type" condition="example:Form1FewControlsDisabled"> 
.. 
</config> 

워크 플로우 (BPMN 파일) 측

<userTask id="form1" name="User Update Task" activiti:assignee="${bpm_assignee.properties.userName}" activiti:formKey="${userUpdateTaskFormKey}"> 
</userTask> 

당신은 대리자를 만들고 동적으로 실행 수준 userUpdateTaskFormKey 변수를 업데이트 할 필요가 변경됩니다.

@Override 
public void execute(final DelegateExecution delegate) throws Exception 
{ 
    String userUpdateTaskFormKey = "example:Form1FewControlsDisabled"; //Keeping it default 
    String currentUserName = authenticationService.getCurrentUserName(); 
    //Apply user business logic .... 
    if (user....your condition) 
    { 
     userUpdateTaskFormKey = "example:Form1AllEnabled"; 
    } 

}