2012-11-17 3 views
0

이 작업은 쉬워야한다고 생각했지만 실제로 문제를 발견했습니다. 객체에 대한 획득 권한을 확인하고 싶습니다.Zope : 객체에 대한 역할에 대한 획득 허가를 얻는 중

실제 사용자의 역할이나 권한을 확인하고 싶지 않습니다. 개체의 경우 익명의 '액세스 콘텐츠 정보'권한이 있는지 확인하고 싶습니다. 문제의 객체에 권한이 설정되어 있으면 쉽게 수행 할 수 있지만 권한을 얻으면 어려워집니다. 그것은 획득 권한을 부여하지 않기 때문에

siteRoles = ('Anonymous', 'myRole1', 'myRole2', 'Manager') 
permission = 'Access contents information' 

rolesDictList = self.rolesOfPermission(permission) 

roles = [roleDict['name'] for roleDict in rolesDictList if roleDict['selected']] 

for i, role in enumerate(siteRoles): 
    if role in roles: 
     roleMin = i 
     break 

return roleMin 

이 작동하지 않습니다

나는이 시도.

내 다음 아이디어는 획득되지 않은 일부 사용 권한을 찾을 때까지 부모를 위로 걷는 것이 었습니다. 하지만 이것은 계층 구조에서 상위로 설정된 사용 권한을 무시할 것이므로 문제를 실제로 해결하지는 못할 것입니다. (오케이, 획득에 대해 확인하고 상향 계속할 수 있습니다.) 또한 이상한 점이 있습니다. rolesOfPermission에서 'Manager'가 항상 선택됩니다. 이게 왜 그렇게?

어쨌든이 작업을 수행하는 더 간단한 방법이 필요하다고 생각합니까? 이것은 주어진 상황에 대한 특정 권한이 역할의 목록을 반환

from AccessControl.PermissionRole import rolesForPermissionOn 

roles = rolesForPermissionOn(permission, context) 

:

답변

3

는 단순히 rolesForPermissionOn() 기능을 사용합니다. 필요에 따라 인수 합병을 진행합니다.

관련 문제