2012-08-31 7 views
5

私のPloneセッション設定を私のポータル製品にエクスポートしたいと思います。Ploneセッションの設定をエクスポートするには?

セッション構成はZMI経由で設定されている - > ACL-ユーザー - >セッション - >プロパティ

私は、サイトのスナップショットを作成しようとしたが、スナップショットのXML内のセッション構成を見つけることができません。..

答えて

4

実際、plone.sessionに含まれるGenericSetup構成サポートはありません。現在のところ、それをエクスポートするものは何もなく、設定をインポートするものもありません。

代わりにセットアップ手順を書いて、セッションプラグインを手動で設定する必要があります。

あなたconfigure.zcml設定ファイルへのインポート手順を追加します。そして、あなたのパッケージにsetuphandlers.pyモジュールを追加

<?xml version="1.0"?> 
<configure 
    xmlns="http://namespaces.zope.org/zope" 
    xmlns:genericsetup="http://namespaces.zope.org/genericsetup" 

<genericsetup:importStep 
    name="yourpackage.a_unique_id_for_your_step" 
    title="Configures the plone.session plugin" 
    description="Perhaps an optional description" 
    handler="your.package.setuphandlers.setupPloneSession" 
    /> 

</configure> 

youpackage.setup-plonesession.txt

という名前の同じプロファイルディレクトリに空の「センチネル」テキストファイルを追加します(上記の例ではhandlerが指しているもの):

def setupPloneSession(context): 
    if context.readDataFile('youpackage.setup-plonesession.txt') is None: 
     return 

    portal = context.getSite() 
    plugin = portal.acl_users.session 

    # Configure the plugin manually 
    plugin.path = '/' 
    plugin.cookie_name = '__ac' 
    plugin.cookie_domain = '' 

    # Set up a shared auth_tkt secret 
    plugin._shared_secret = 'YourSharedSecretKey' 
    plugin.mod_auth_tkt = True 

メモthaセンチネルファイルが存在するかどうか最初にテストします。他の場所でパッケージ設定を再利用する場合、セットアップ手順はこれをしないと何度も実行することができます。

構成可能なアイデアを得るには、plugin sourceを参照する必要があります。恐れがあります。

+0

これはすばらしい答えですMartijn! –

+1

import_steps.xmlは、アドオンを削除するとサイトを破壊する永続的なインポート手順を作成するため、決して使用しないでください。 zcmlを使用してインポート手順を宣言する必要があります。http://collective-docs.readthedocs.org/en/latest/components/genericsetup.html?highlight=import%20step#custom-installer-code-setuphandlers-py – toutpt

+1

@toutpt :良い点、私の答えを調整しました。 –

関連する問題