私たちはPlone 4サイトを維持しており、特別な役割を持つ認証済みのユーザーのみがアクセスできる「foo」というフォルダの特別なビューを持っています。認証されたユーザーは、次のようにビューにアクセスすることができます。Plone:匿名ユーザーの特定のビューのログインフォームへのリダイレクトを有効にするにはどうすればよいですか?
http://<host>:<port>/Plone/foo/@@special-view
しかし、匿名ユーザーがUnauthorized
例外がスローされ、ビューにアクセスしようとした場合:
Unauthorized: Your user account does not have the required permission.
Access to 'macros' of (FSPageTemplate at /Plone/foo/main_template) denied.
Your user account, Anonymous User, exists at (unknown). Access requires
View_Permission, granted to the following roles: ['Extern', 'Manager',
'Member', 'Site Administrator']. Your roles in this context are
['Anonymous'].
> /home/ted/work/ps/eggs/AccessControl-2.13.13-py2.7-linux-x86_64.egg/
AccessControl/ImplPython.py(797)raiseVerbose()-> raise Unauthorized(text)
profiles/default/types/foo.xml
でアクションの定義がどのように見えますこの:私たちは、匿名ユーザーがログインページとAFにリダイレクトすることを実現するにはどうすればよい
<action title="Special View" action_id="special-view" category="object" condition_expr=""
url_expr="string:${object_url}/special-view" visible="True">
<permission value="Modify portal content" />
</action>
最初にアクセスしたいURLにリダイレクトされましたか?
興味深いことに、これは既にフォルダ "foo"内に存在するコンテンツオブジェクトでは機能していますが、フォルダ自体ではなく、特別な表示では機能していません。これらのオブジェクトのために、ユーザがログインフォームを表示し、ログインした後、要求されたページにリダイレクトされます。このURLにリダイレクトされます
:
http://<host>:<port>/Plone/acl_users/credentials_cookie_auth/require_login?came_from=http%3A//<host>%3A<port>/Plone/foo/@@special-view
デバッグがPASのチャレンジがこれらの場合に行われることを私たちに示したが、特別な視点でこの機能を有効にする方法はわかりません。
UPDATE 2016年6月23日
私はconfigure.zcml
にこの<browser:page
定義を追加しましたが、それは何も変更しませんでした:
<browser:page
name="new-members"
for="cnrd.vctypes.interfaces.ICnrdMemberFolder"
class=".behaviors.cnrd_member_folder.ShowNewMembers"
permission="cmf.ModifyPortalContent"
/>
'configure.zcml'の対応する'
' configure.zcml'に '
action-permissionは、アクションボタンがUI内のユーザーに提供されているかどうかを定義します。興味深いのは、フォルダにはエラーがありますが、子にはアクセスできないということです.won-stateとlocal-roles(共有タブを介して)のパーミッションを確認してください。リダイレクトを強制する場合は、次を参照してください:http://stackoverflow.com/questions/1222880/an-easy-way-to-redirect-certain-roles-in-zope/1226761#1226761 –