author | Adrien Di Mascio <Adrien.DiMascio@logilab.fr> |
Tue, 17 Nov 2009 11:46:07 +0100 | |
branch | stable |
changeset 3869 | ec6463886ac4 |
parent 2172 | cf8f9180e63e |
child 4212 | ab6573088b4a |
permissions | -rw-r--r-- |
""" :organization: Logilab :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), license is LGPL v2. :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses """ 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