pyramid_cubicweb/core.py
changeset 11575 97110b4af42f
parent 11568 a9940c6cd693
child 11580 e8f8a211e503
equal deleted inserted replaced
11574:af1021553648 11575:97110b4af42f
   238     Not meant for direct use, use ``request.cw_cnx`` instead.
   238     Not meant for direct use, use ``request.cw_cnx`` instead.
   239 
   239 
   240     :param request: A pyramid request
   240     :param request: A pyramid request
   241     :returns type: :class:`cubicweb.server.session.Connection`
   241     :returns type: :class:`cubicweb.server.session.Connection`
   242     """
   242     """
   243     cnx = repoapi.ClientConnection(request.cw_session)
   243     session = request.cw_session
       
   244     if session is None:
       
   245         return None
       
   246     cnx = repoapi.ClientConnection(session)
   244 
   247 
   245     def cleanup(request):
   248     def cleanup(request):
   246         if (request.exception is not None and not isinstance(
   249         if (request.exception is not None and not isinstance(
   247             request.exception, (
   250             request.exception, (
   248                 httpexceptions.HTTPSuccessful,
   251                 httpexceptions.HTTPSuccessful,
   284     Not meant for direct use, use ``request.cw_session`` instead.
   287     Not meant for direct use, use ``request.cw_session`` instead.
   285     """
   288     """
   286     repo = request.registry['cubicweb.repository']
   289     repo = request.registry['cubicweb.repository']
   287 
   290 
   288     if not request.authenticated_userid:
   291     if not request.authenticated_userid:
   289         session = repo_connect(
   292         eid = request.registry.get('cubicweb.anonymous_eid')
   290             request, repo, eid=request.registry['cubicweb.anonymous_eid'])
   293         if eid is None:
       
   294             return None
       
   295         session = repo_connect(request, repo, eid=eid)
   291     else:
   296     else:
   292         session = request._cw_cached_session
   297         session = request._cw_cached_session
   293 
   298 
   294     return session
   299     return session
   295 
   300 
   303 
   308 
   304     Not meant for direct use, use ``request.cw_request`` instead.
   309     Not meant for direct use, use ``request.cw_request`` instead.
   305 
   310 
   306     """
   311     """
   307     req = CubicWebPyramidRequest(request)
   312     req = CubicWebPyramidRequest(request)
   308     req.set_cnx(request.cw_cnx)
   313     cnx = request.cw_cnx
       
   314     if cnx is not None:
       
   315         req.set_cnx(request.cw_cnx)
   309     return req
   316     return req
   310 
   317 
   311 
   318 
   312 def get_principals(login, request):
   319 def get_principals(login, request):
   313     """ Returns the group names of the authenticated user.
   320     """ Returns the group names of the authenticated user.
   356     """
   363     """
   357     repo = config.registry['cubicweb.repository']
   364     repo = config.registry['cubicweb.repository']
   358 
   365 
   359     with repo.internal_cnx() as cnx:
   366     with repo.internal_cnx() as cnx:
   360         login = config.registry['cubicweb.config'].anonymous_user()[0]
   367         login = config.registry['cubicweb.config'].anonymous_user()[0]
   361         config.registry['cubicweb.anonymous_eid'] = cnx.find(
   368         if login is not None:
   362             'CWUser', login=login).one().eid
   369             config.registry['cubicweb.anonymous_eid'] = cnx.find(
       
   370                 'CWUser', login=login).one().eid
   363 
   371 
   364     config.add_request_method(
   372     config.add_request_method(
   365         _cw_session, name='cw_session', property=True, reify=True)
   373         _cw_session, name='cw_session', property=True, reify=True)
   366     config.add_request_method(
   374     config.add_request_method(
   367         _cw_cnx, name='cw_cnx', property=True, reify=True)
   375         _cw_cnx, name='cw_cnx', property=True, reify=True)