2012-01-23 3 views
5

다음 작업이 있습니다. 관리자를 제외한 모든 사용자가 Alfresco에서 콘텐츠를 삭제할 수 없습니다. 그에 대한 권한 서비스를 사용 해요,하지만 작동하지 않습니다Alfresco 모든 사용자가 콘텐츠를 삭제하는 것을 금지합니다.

private void setReadOnly(ScriptNode node) { 
     permissionService.deletePermissions(node.getNodeRef()); 
     permissionService.setPermission(node.getNodeRef(), 
PermissionService.ALL_AUTHORITIES, PermissionService.CONSUMER, true); 
} 

을하지만 난 내 사용자를 추가 해요 경우 (예 - 템플릿 디자이너) 다른 그룹 경우에 비해 콘텐츠를 차단하기위한 새로운 권한을 추가 그 후 내 사용자는 콘텐츠를 삭제하고 새로운 콘텐츠 (폴더 인 경우) 및 기타 콘텐츠를 추가해야합니다. 내 문제를 해결할 수있는 또 다른 방법 -

(예 : 그룹 - "TEMPLATE_DESIGNER"역할 - "코디네이터")
private void setReadOnly(ScriptNode node) { 
     permissionService.deletePermissions(node.getNodeRef()); 
     permissionService.setInheritParentPermissions(node.getNodeRef(), false); 
} 

그러나 어떤 이유로 적합하지 않습니다. 제발, 답변 - 모든 사용자 (관리자 제외)에 대한 콘텐츠 삭제를 금지하는 방법은 무엇입니까? 감사합니다.

+0

당신이 * 모든 * 사용자 삭제를 억제해야합니까에 제프 냄비에 의해이 PDF을 확인 취소/체크 할 수 없다, 아니면 그냥 선택 사용자/그룹? 질문이 설명의 TEMPLATE_DESIGNER 부분과 충돌합니다. – skuro

답변

2

permissionDefinitions.xml을 변경하고 모든 역할에 대한 삭제 권한을 삭제할 수 없습니까?

admin에게는 별도의 역할이 있습니다. 그대로 두십시오.

업데이트 : 단지 한 폴더 만 수행하려는 경우 수동으로 사용 권한을 설정할 수 있습니다. 선택을 취소하고 그룹 & 그룹을 편집 권한으로 설정합니다. 코디네이터에게만 삭제 권한이 있습니다. 페이지 : Docs

삭제 권한이있는 소유자의 권한을 제거하려는 경우. 소유자를 제거하는 Javascript를 작성하십시오.

+0

아니요, 특정 콘텐츠 (한 폴더 만)에서만 필요하기 때문에 아니요. – VladislavLysov

+0

답변을 업데이트했습니다. 주석이 너무 길어졌습니다. –

+0

프로그래밍 방식으로이 작업을 수행해야합니다. 내가 처음 게시물에 쓴 것처럼 - 내가 소유자를 제거하거나 권한을 상속 제거 - lucene 검색이 자바 스크립트에서 작동하지 않습니다, 그리고 나는 (관리자로서 자바 코드에서 자바 스크립트 코드를 실행 - 그게 효과가 좋지 않아 arround 춤을 필요가있다). 이 문제를 해결하려면 다른 방법이 필요합니다. – VladislavLysov

2

OK 두 번째 답변 :

이 NodeServicePolicies.BeforeDeleteNodePolicy를 구현하는 동작을 만듭니다.

이 동작은 사용자가 항목을 삭제하려고 시도 할 때마다 트리거됩니다. 그러면 NodeRef가 생깁니다. 거기에서 노드가 어떤 노드인지 그리고 삭제 가능 여부를 확인할 수 있습니다.

이 작업을 수행하는 가장 좋은 방법은이다 :

  • 광고 사용자 정의 측면 및 설정 사용자 지정 메타 데이터 부울 또는 무언가가 사용자 정의 노드 유형을, 동작
  • 과를 평가하거나 정의 자바 스크립트 또는 자바 스크립트를 트리거하는 규칙에 의해. 그리고 그 필드가 숨겨진 수 있도록, 그래서 사용자는

Btw는 만드는 행동 :

+0

예, 저는 행동을 사용하고 있지만,이 방법은 나에게 좋지 않습니다. 이 사용 권한을 사용하고 싶습니다. 이제는 내 사용자 정의 모델 aspect 인 "systemLocked"를 추가하고 permissionDefinitions를 추가합니다.xml – VladislavLysov

+0

?? 왜이 권한을 사용 하시겠습니까? 나는 당신이 묻는 것들로 당신이 완전히 분명하지 않다는 것을 의미합니다. 귀하의 질문을 모호하게 보아주십시오 ... 원하는 것을 올바르게 적어 두십시오. 로마보다 더 많은 방법이 있습니다. –

+0

나는이 문제를 해결했다. 나는 이것을 위해 부트 스트랩을 사용하고있다. 답변 해 주셔서 감사합니다. – VladislavLysov

관련 문제