misc/cwzope/cwzope.py
author Pierre-Yves David <pierre-yves.david@logilab.fr>
Mon, 12 Apr 2010 15:21:08 +0200
branchstable
changeset 5218 aebd00a2d316
parent 4212 ab6573088b4a
child 5421 8167de96c523
permissions -rw-r--r--
[fix] fix path unicity process in BytesFileSystemStorage.new_fs_path The previous implementation was bugged (prefixing the whole path with '_' instead of the base name). A new version (using number) replace it. * * * Improve BytesFileSystemStorage.new_fs_path to use available metadata This version try to get some hint about how to name the file using metadata. Using the real file name and extension when available. Keeping the extension might be usefull for exemple in the case of processing that use filename extension to detect content-type.

"""

:organization: Logilab
:copyright: 2001-2010 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