2014-12-17 5 views
1

폴더의 개체에 대한 문서 작업에 대한 빠른 링크가 포함 된 사용자 지정 폴더 목록을 작성하려고합니다.개체에 대한 'object_buttons'작업 받기

portal_actions = getToolByName(self.context, 'portal_actions') 
actions = portal_actions.listActionInfos(object=obj, categories=('object_buttons',)) 

을하지만 어떤 이유로 actions 항상에만 복사 조치를 포함

내가 폴더의 브라우저보기에서 할 지정된 객체 obj에 대해 정의 된 작업을로드합니다. 개체 삭제, 이름 바꾸기 등이 없습니다. 동일한 사용자 (관리자)와 Plone UI를 사용할 때 객체에 대한 모든 작업에 액세스 할 수 있습니다.

새로운 더미 작업을 실험 한 결과 문제의 원인은 listActionInfos이 수행하는 사용 권한 및 조건이어야합니다. 하지만 여기에 나는 꼼짝 못함 ... 액션에 대한 사용 권한 및 조건 식을 확인하는 데 사용 된 평가 컨텍스트를 비교하면 브라우저보기의 호출과 개체의 일반 Plone UI 사이에 큰 차이가 없음을 알 수 있습니다.

무엇이 문제 일 수 있습니까?

답변

0

문제점의 원인을 발견했습니다.

게시 된 코드는 정상적으로 작동하지만 Zope의 보안 기계가 내보기의 실제 역할보다 다른 권한이 적은 다른 역할을 사용하도록 설득했습니다. 어떻게 든 뷰의 __init__ 메서드에서 다른 브라우저 뷰 객체를 생성하면이 이상한 동작이 발생합니다.