2013-02-12 1 views
1

내 응용 프로그램은 Zope 2.12.19 및 Python 2.6.5에서 실행됩니다.Zope 페이지 템플릿 메타 데이터를 읽을 수 없습니다.

pagetemplate.pt.metadata 파일에 액세스 제한이 정의 된 페이지 템플릿 파일 pagetemplate.pt이 있습니다. 이러한 접근 제한은 Zope Products의 웹 페이지를 제외한 모든 웹 페이지에 적용되고 올바르게 작동합니다. .metadata 파일의

내용은 다음과 같습니다 :

[default] 
title= 

[security] 
View=0:Authenticated,Manager,Owner,User 
Access contents information=0:Authenticated,Manager,Owner,User 

예를 들어, 시스템의 모든 사용자를 나열하는 조프 제품이이 위의 페이지 템플릿을 사용합니다. 사용자는 로그인하지 않고 익명으로이 페이지에 액세스 할 수 있으며 이는 메타 데이터 파일이 읽히지 않음을 의미합니다.

그러나 제품 외부의 다른 페이지에 액세스하려면 응용 프로그램에서 사용자가 로그인해야합니다. .metadata 개의 파일을 읽는 제품에 문제가 있습니까?

FYI - 저는 ZODB를 사용하지 않습니다 ... 대신 모든 것이 (소스 코드) 파일 시스템에 있습니다.

configure.zcml의 내용은 다음과 같습니다.

<configure 
    xmlns="http://namespaces.zope.org/zope" 
    xmlns:five="http://namespaces.zope.org/five" 
    xmlns:browser="http://namespaces.zope.org/browser" 
    i18n_domain="AMSPermissions"> 

    <!-- the users manage page --> 
    <browser:page 
    for="OFS.interfaces.IFolder" 
    name="manage-users" 
    template="standard_template.pt" 
    class=".users.UsersView" 
    permission="zope2.View" 
    /> 

    <!-- permissions checker --> 
    <browser:page 
    for="OFS.interfaces.IFolder" 
    name="perm_check" 
    class=".permissions.PermissionsCheckerView" 
    permission="zope2.View" 
    allowed_interface=".interfaces.IPermissionsCheckerView" 
    /> 
</configure>. 

또한 아래는 제품의 샘플 코드입니다.

<html metal:use-macro="context/standard_template/macros/page"> 
    <metal:block fill-slot="heading">Users Overview</metal:block> 
    <metal:block fill-slot="body" tal:define="users view/get_users"> 
    ---------Some code-------- 
    </metal:block> 
</html> 
+0

이러한 페이지 템플릿은 스킨에 정의되어 있습니까, 아니면 브라우저보기에서 사용됩니까 (예 :'configure.zcml'에서 정의)? –

+0

이들은 브라우저보기와 함께 사용됩니다. 예를 들어, configure.zcml에 정의 된 list-users.pt는 페이지 템플리트 파일에 액세스합니다. – Ravi

답변

3

.metadata 파일 피부 객체에 적용됩니다. 브라우저보기의 경우보기의 ZCML 구성에서 사용 권한을 지정해야합니다.

<browser:page 
    for="*" 
    name="somepagename" 
    template="pagetemplate.pt" 
    permission="zope.View" 
    /> 

권한을 지정하십시오. 문맥은 어떤 역할에 어떤 권한이 있는지 정의합니다.

+0

@Ravi : 대답은 일반적인 목적입니다. * .metadata 파일이 무시되는 이유 *에 대답하고 있으며 대신 브라우저보기에서 사용 권한을 처리하는 방법에 대한 포인터를 제공합니다. 그것은 귀하의 특정 상황에 대한 준비가 된 대답을 의미하지 않습니다. –

+0

@Ravi : 애플리케이션에 필요한 정확한 구성은 더 많은 설명이 필요합니다. 직접 문제를 이해하고 문제를 이해하는 데 도움이되는 특정 질문이 있으면 여기로 돌아와보십시오. –

+0

그건 의미가 있습니다. 그러나 ZODB가 파일 시스템 기반이 아닌 대신에 보안 제한이 적용되는 이유 ('.metadata' 파일이 읽혀진다는 의미)를 말해 줄 수 있습니까? 'configure.zcml'도 템플릿 속성을 포함하지 않으며 브라우저에서 제품에 직접 액세스 할 때마다 로그인하라는 메시지를 표시합니다. – Ravi

관련 문제