X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=localauth%2Fmanifoldbackend.py;h=504a85be1eaf2f7a28a5a9f70b2cfcba7c5dc0f1;hb=3a35ca5961754c1a0b8cbdd7aa717dcd837f3a43;hp=9c19c9b2a53992f3c5aa1ccc7ec1beedb4a30851;hpb=8e18c9ff4a961c70f897ca3915959d2fa3f7fb38;p=unfold.git diff --git a/localauth/manifoldbackend.py b/localauth/manifoldbackend.py index 9c19c9b2..504a85be 100644 --- a/localauth/manifoldbackend.py +++ b/localauth/manifoldbackend.py @@ -7,6 +7,10 @@ from manifold.core.query import Query from myslice.settings import config, logger, DEBUG +from portal.actions import authority_check_pis + +# from unfold.sessioncache import SessionCache + # Name my backend 'ManifoldBackend' class ManifoldBackend: @@ -29,12 +33,13 @@ class ManifoldBackend: sessions = sessions_result.ok_value() if not sessions: logger.error("GetSession failed: {}".format(sessions_result.error())) - return + return None session = sessions[0] - logger.debug("SESSION : {}".format(session)) + logger.debug("SESSION : {}".format(session.keys())) # Change to session authentication api.auth = {'AuthMethod': 'session', 'session': session['session']} + #api.auth = session_auth self.api = api # Get account details @@ -43,19 +48,23 @@ class ManifoldBackend: persons = persons_result.ok_value() if not persons: logger.error("GetPersons failed: {}".format(persons_result.error())) - return + return None person = persons[0] logger.debug("PERSON : {}".format(person)) + + request.session['manifold'] = {'auth': api.auth, 'person': person, 'expires': session['expires']} + #logger.info("{} {} <{}> logged in"\ # .format(person['config']['first_name'], person['config']['last_name'], person['config']['email'])) - request.session['manifold'] = {'auth': api.auth, 'person': person, 'expires': session['expires']} + #SessionCache().store_auth(request, session_auth) + except ManifoldException as e: logger.error("ManifoldException in Auth Backend: {}".format(e.manifold_result)) except Exception as e: logger.error("Exception in Manifold Auth Backend: {}".format(e)) import traceback - traceback.print_exc() + logger.error(traceback.format_exc()) return None try: @@ -71,6 +80,8 @@ class ManifoldBackend: if 'lastname' in person: user.last_name = person['lastname'] + user.pi = authority_check_pis (request, user.email) + request.session['user'] = {'email':user.email,'pi':user.pi,'firstname':user.first_name,'lastname':user.last_name} return user # Required for your backend to work properly - unchanged in most scenarios