Exemple #1
0
    def intercept_service(self, continuation, handler_call_details):
        # check session data and check user login state
        try:
            session_key = ''
            metadata = dict(handler_call_details.invocation_metadata)
            print(metadata)
            if 'session_key' in metadata:
                session_key = metadata['session_key']

            print(session_key)
            session = Session.objects.get(pk=session_key)

            data = session.get_decoded()
            if all([data['_auth'] == settings.AUTH_USER_META_VALUE,
                    data['_auth_logged_in'],
                    ]):
                # update last seen date in session
                session_store = SessionStore(session_key)
                session_store['_auth_last_request'] = now().timestamp()
                session_store.save()

                return continuation(handler_call_details)

        except Session.DoesNotExist:
            print("Session does not exist")

        # method_name = str.split(handler_call_details.method, '/')[-1:][0]
        method_name = continuation(handler_call_details).unary_unary.__name__

        if method_name in self._ignored_method:
            return continuation(handler_call_details)

        return self._terminator
def create_pre_authenticated_session(email):
    user = User.objects.create(email=email)
    session = SessionStore()
    session[SESSION_KEY] = user.pk
    session[BACKEND_SESSION_KEY] = settings.AUTHENTICATION_BACKENDS[0]
    session.save()

    return session.session_key
Exemple #3
0
 def save(self) -> 'Session':
     store = SessionStore(session_key=self.user.session_key)
     store['session'] = self
     store.set_expiry(SESSION_TTL)
     store.save()
     self.user.session_key = store.session_key
     self.user.save()
     self.__update_restaurant_pool()
     return self
Exemple #4
0
 def set_current_user(self,request,name):
     key = request.COOKIES['sessionid']
     s = SessionStore(key)
     s['user'] = name
     s.save()
Exemple #5
0
 def set_current_user(self, request, name):
     key = request.COOKIES['sessionid']
     s = SessionStore(key)
     s['user'] = name
     s.save()