認証されたユーザーの既定のURLを変更する必要があります。例えば、ルートサイトの要求する応答:認証されたユーザーのPloneの既定のURLを変更する
- [サイトルート]/wellcome01(Ploneの設定インターフェースにより設定されたデフォルトのURL)、匿名ユーザの
- [サイトルート]/wellcome02(認証されたユーザ
のためにいくつかのリソース)によって設定されたので、このリソースを実施するための最良の解決策は何ですか?
認証されたユーザーの既定のURLを変更する必要があります。例えば、ルートサイトの要求する応答:認証されたユーザーのPloneの既定のURLを変更する
のためにいくつかのリソース)によって設定されたので、このリソースを実施するための最良の解決策は何ですか?
あなたは、あなたが次のコードで、あなたのPloneルートでindex_html
のPythonスクリプトを追加することができますいくつかのオプション
1.
を得ました。
if context.portal_membership.isAnonymousUser():
return context.REQUEST.RESPONSE.redirect('welcome01')
else:
return context.REQUEST.RESPONSE.redirect('welcome02')
2.
あなたはこれをregsiterもデは
from Products.Five.browser import BrowserView
from plone import api
class RootRedirector(BrowserView):
def __call__(self):
if api.user.is_anonymous()
return self.request.RESPONSE.redirect('welcome01')
else:
return self.request.RESPONSE.redirect('welcome02')
をリダイレクト私は個人的に自分のサイト上でコードをバージョニングされていない好きではないので、私はあなたが扱うたBrowserViewを書くためにアドバイスSiteRoot(Products.CMFPlone.interfaces.siteroot.IPloneSiteRoot)のみを表示
ログインイベントに反応する場合は、次のように変更してoをリダイレクトしますnは史上初の唯一のログイン(そしておそらく代わりにIUserLoggedInEvent
をしたい):
のconfigure.zcml:
<subscriber for="Products.PlonePAS.events.IUserInitialLoginInEvent"
handler=".hellonewbie.showIntroPage" />
hellonewbie.py:
# -*- coding: utf-8 -*-
from zope.app.component.hooks import getSite
USER_ROLE = 'Member'
INTRO_PAGE_ID = 'new-user-info'
def showIntroPage(event):
"""Login event handler: first login.
For proper users (i.e. Member role) that have
never logged in before, redirect them to a page
that tells them about the system.
"""
user = event.object
if user.has_role(USER_ROLE):
# yup, redirect the guy, he/she's new.
portal = getSite()
request = getattr(portal, "REQUEST", None)
if request:
infopage = portal.restrictedTraverse(INTRO_PAGE_ID, None)
if infopage:
request.response.redirect(infopage.absolute_url())
このソリューションは選択しませんが、他のコードケースでは役立ちます。コードをありがとう。 – gwarah
それとも、ちょうど2つであるビューを使用しますログインされていない場合にのみ表示される要素と、ログインした場合にのみ、TAL条件を介して表示される要素です。
時間の不足のため、私たちは解決策1に従っていました。例をありがとう。 – gwarah