Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to export Plone session configuration?

I'd like to export my Plone session configuration to my portal product.

The session configuration is set via the ZMI -> acl-users -> session -> properties

I have tried creating a snapshot of the site but can't locate the session configuration within the snapshot xml...

like image 282
Aaron Williams Avatar asked Oct 06 '22 18:10

Aaron Williams


1 Answers

Indeed, there is no GenericSetup configuration support included in plone.session; there is currently nothing that'll export it for you, nor anything to then import the settings.

You'd have to write a setup step for it instead, and configure the session plugin manually through that.

Add an import step to your configure.zcml configuration file:

<?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>

and add an empty 'sentinel' text file to the same profile directory named youpackage.setup-plonesession.txt

then add a setuphandlers.py module to your package (what handler points to in the above example):

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

Note that we first test if the sentinel file is present; if you reuse your package setup elsewhere the setup step could be run multiple times if you don't do this.

You'll need to refer to the plugin source to get an idea of what you can configure, I'm afraid.

like image 94
Martijn Pieters Avatar answered Oct 10 '22 01:10

Martijn Pieters