misc/cwzope/cwzope.py
author Sandrine Ribeau <sandrine.ribeau@logilab.fr>
Thu, 13 Nov 2008 17:24:59 -0800
changeset 70 f80ac3de185b
parent 0 b97547f5f1fa
child 1977 606923dff11b
permissions -rw-r--r--
Rename index file from indef.fr.txt to index.txt to dit Sphinx needs and adjusted conf file in consequence. Moved images from fr/ to book/ so that images would be in central location for both en and fr books.

from AccessControl import getSecurityManager 

from cubicweb.dbapi import connect, Connection, Cursor
from cubicweb.common.utils import ResultSet, ResultSetIterator, ResultSetRow, Entity

Connection.__allow_access_to_unprotected_subobjects__ = 1
Cursor.__allow_access_to_unprotected_subobjects__ = 1
ResultSet.__allow_access_to_unprotected_subobjects__ = 1
ResultSetIterator.__allow_access_to_unprotected_subobjects__ = 1
ResultSetRow.__allow_access_to_unprotected_subobjects__ = 1
Entity.__allow_access_to_unprotected_subobjects__ = 1

CNX_CACHE = {}

def get_connection(context, user=None, password=None,
                   host=None, database=None, group='cubicweb'):
    """get a connection on an cubicweb server"""
    request = context.REQUEST
    zope_user = getSecurityManager().getUser()
    if user is None:
        user = zope_user.getId()
    key = (user, host, database)
    try:
        return CNX_CACHE[key]
    except KeyError:
        if password is None:
            password = zope_user._getPassword()
        cnx = connect(user, password, host, database, group)
        CNX_CACHE[key] = cnx
        return cnx