def user_id_for_session_id(self, session_id=None):
        """
        overloads from parent. looks for user_id in the database and returns it
        :param session_id: session id
        :return: user id.
        """
        if session_id:

            UserSession.load_from_file()
            user_session_list = UserSession.search({'session_id': session_id})

            if user_session_list:
                session = user_session_list[0]
                user_id = session.user_id
                if hasattr(session, 'created_at'):
                    current = datetime.utcnow()
                    if user_id:
                        if self.session_duration <= 0 \
                                or not self.session_duration:
                            return user_id
                        if (session.created_at + timedelta(
                                seconds=self.session_duration)) < current:
                            return None

                        return user_id

        return None
    def destroy_session(self, request=None):
        """ Destroy the session
        """
        if request is None:
            return False

        session_id = self.session_cookie(request)
        if session_id is None:
            return False

        user_id = self.user_id_for_session_id(session_id)
        if not user_id:
            return False

        session_ids = UserSession.search({'session_id': session_id})
        if not session_ids:
            return False

        try:
            session_ids[0].remove()
            UserSession.save_to_file()
        except Exception:
            return False

        return True
Exemple #3
0
    def destroy_session(self, request=None):
        """Remove Session from Database"""
        if request is None:
            return False

        session_id = self.session_cookie(request)
        if session_id is None:
            return False

        user_id = self.user_id_for_session_id(session_id)

        if not user_id:
            return False

        user_session = UserSession.search({'session_id': session_id})

        if not user_session:
            return False

        user_session = user_session[0]

        try:
            user_session.remove()
            UserSession.save_to_file()
        except Exception:
            return False

        return True
    def user_id_for_session_id(self, session_id=None):
        """
            Make user id to session

            Args:
                session_id: String of the session

            Return:
                User ID if not is expired
        """
        if session_id is None:
            return None

        UserSession.load_from_file()
        user_sess = UserSession.search({'session_id': session_id})

        if not user_sess:
            return None

        user = user_sess[0]

        if user is None:
            return None

        expired_tm = user.created_at + \
            timedelta(seconds=self.session_duration)

        if expired_tm < datetime.now():
            return None

        return user.user_id
Exemple #5
0
 def create_session(self, user_id=None):
     """ Generates a session ID
     """
     session_id = super().create_session(user_id)
     if user_id is None:
         return None
     user_session = UserSession(user_id=user_id, session_id=session_id)
     user_session.save()
     return session_id
Exemple #6
0
 def create_session(self, user_id=None):
     """
     method that create a new session
     """
     if user_id:
         session_id = super().create_session(user_id)
         user = UserSession(user_id=user_id, session_id=session_id)
         user.save()
         return session_id
     return None
Exemple #7
0
 def create_session(self, user_id=None):
     """ create a session and store session_id in storage """
     if not user_id:
         return None
     session_id = super().create_session(user_id)
     if not session_id:
         return
     user = UserSession(user_id=user_id, session_id=session_id)
     user.save()
     return session_id
Exemple #8
0
 def create_session(self, user_id=None):
     """create a session
     """
     if user_id is None:
         return None
     session_id = super().create_session(user_id)
     if session_id is None:
         return None
     session = UserSession(user_id, session_id)
     session.save()
     return session
 def create_session(self, user_id=None):
     """
     create_session.
     """
     if user_id:
         session_id = super().create_session(user_id)
         if not session_id:
             return
         new_user = UserSession(user_id=user_id, session_id=session_id)
         new_user.save()
         return session_id
 def create_session(self, user_id: str = None) -> str:
     """
     create_session function
     """
     if user_id is None:
         return None
     session_id = super().create_session(user_id)
     if session_id is None:
         return None
     user_session = UserSession(user_id=user_id, session_id=session_id)
     user_session.save()
     return session_id
 def create_session(self, user_id=None):
     """
     overloads parents create_session. Creates a UserSession Object and
     saves it in the database
     :param user_id:
     :return:
     """
     session_id = super().create_session(user_id=user_id)
     if session_id:
         user_session = UserSession(user_id=user_id, session_id=session_id)
         user_session.save()
         return session_id
class SessionDBAuth(SessionExpAuth):
    """ SessionDBAuth class
    """
    def __init__(self):
        super().__init__()
        self.user_session = UserSession()

    def create_session(self, user_id=None):
        """ Overloads SessionExpAuth create_session
        """
        if user_id is None:
            return None
        session_id = super().create_session(user_id)
        self.user_session.session_id = session_id
        self.user_session.user_id = user_id
        self.user_session.save()
        return session_id

    def user_id_for_session_id(self, session_id=None):
        """ Overloads method in SessionExpAuth
            Returns User ID by requesting UserSession in DB using session_id
        """
        if session_id is None:
            return None
        UserSession.load_from_file()
        user_session = UserSession.search({'session_id': session_id})
        if not user_session:
            return None
        session = user_session[0]
        session_dictionary = self.user_id_by_session_id.get(session_id)
        if not session_dictionary:
            return None
        created_at = session_dictionary.get('created_at')
        expiration = created_at + timedelta(seconds=self.session_duration)
        if expiration < datetime.now():
            return None
        return session.user_id

    def destroy_session(self, request=None):
        """ Overloads method in SessionExpAuth
            Destroys UserSession based on the Session ID from user cookie
        """
        if request is None:
            return False
        session_id = self.session_cookie(request)
        if not session_id:
            return False
        session_list = UserSession.search({'session_id': session_id})
        if len(session_list) < 1:
            return False
        current_session = session_list[0]
        current_session.remove()
        return True
Exemple #13
0
 def user_id_for_session_id(self, session_id=None):
     """Get user ID from session
     """
     if not session_id:
         return None
     UserSession.load_from_file()
     users = UserSession.search({'session_id': session_id})
     for u in users:
         delta = timedelta(seconds=self.session_duration)
         if u.created_at + delta < datetime.now():
             return None
         return u.user_id
 def create_session(self, user_id=None):
     """ creates and stores new instance
         of UserSession and returns the Session ID
     """
     if not user_id:
         return
     session_id = super().create_session(user_id)
     if not session_id:
         return
     session = UserSession(user_id=user_id, session_id=session_id)
     session.save()
     return session_id
    def create_session(self, user_id=None):
        """ Save an instance of the user session """
        if user_id is None:
            return None

        session_id = super().create_session(user_id)
        if session_id is None:
            return None

        session = UserSession(user_id=user_id, session_id=session_id)
        session.save()

        return session_id
    def create_session(self, user_id=None):
        """[create sesion]

        Args:
            user_id ([type], optional): [id]. Defaults to None.
        """
        if user_id:
            session = super().create_session(user_id)
            if session:
                user = UserSession(user_id=user_id, session_id=session)
                user.save()
                return session
        return None
Exemple #17
0
    def create_session(self, user_id=None):
        ''' Create and store session. '''
        if user_id is None:
            return None

        # Get session ID from parent class method
        session_id = super().create_session(user_id)

        # Create and save instance of UserSession with user ID and session ID
        user_session = UserSession(user_id=user_id, session_id=session_id)
        user_session.save()

        return session_id
 def user_id_for_session_id(self, session_id=None):
     """ that returns the User ID by requesting UserSession
         in the database based on session_id
     """
     if not session_id:
         return None
     UserSession.load_from_file()
     users = UserSession.search({'session_id': session_id})
     for user in users:
         delta = timedelta(seconds=self.session_duration)
         if user.created_at + delta < datetime.now():
             return None
         return user.user_id
 def create_session(self, user_id=None):
     """ overloaded create_session method """
     sess_id = super().create_session(user_id)
     if sess_id is None:
         return None
     try:
         sess = UserSession()
         sess.user_id = user_id
         sess.session_id = sess_id
         db_session.add(sess)
         db_session.commit()
         return sess.session_id
     except:
         return None
Exemple #20
0
 def create_session(self, user_id=None):
     """
     creates and stores new instance of UserSession
     and returns the Session ID
     """
     if not user_id:
         return None
     session_id = super().create_session(user_id)
     if not session_id:
         return None
     session_data = {"user_id": user_id, "session_id": session_id}
     obj = UserSession(**session_data)
     obj.save()
     return session_id
Exemple #21
0
 def destroy_session(self, request=None):
     """Delete the user session / log out
     """
     if request:
         session_id = self.session_cookie(request)
         if not session_id:
             return False
         if not self.user_id_for_session_id(session_id):
             return False
         users = UserSession.search({'session_id': session_id})
         for u in users:
             u.remove()
             UserSession.save_to_file()
             return True
     return False
Exemple #22
0
    def create_session(self, user_id=None):
        """
        Creates a session ID.
        """
        if user_id is None:
            return None

        session_id = super().create_session(user_id)
        if session_id is None:
            return None

        user_session_data = {'session_id': session_id, 'user_id': user_id}
        user_session = UserSession(**user_session_data)
        user_session.save()
        return session_id
 def destroy_session(self, request=None):
     """ that destroys the UserSession based on the Session ID
         from the request cookie
     """
     if request:
         session_id = self.session_cookie(request)
         if not session_id:
             return False
         if not self.user_id_for_session_id(session_id):
             return False
         users = UserSession.search({'session_id': session_id})
         for user in users:
             user.remove()
             UserSession.save_to_file()
             return True
     return False
Exemple #24
0
    def user_id_for_session_id(self, session_id=None):
        """ returns the User ID by requesting UserSession in
            the database based on session_id
        """
        if type(session_id) is not str:
            return None
        try:
            users_sessions = UserSession.search({'session_id': session_id})
        except Exception:
            return None

        if len(users_sessions) == 0:
            return None

        user_session = users_sessions[0]

        if self.session_duration <= 0:
            return user_session.user_id

        created_at_session = user_session.created_at

        duration_session = created_at_session + timedelta(
            seconds=self.session_duration
        )

        if duration_session < datetime.now():
            return None

        return user_session.user_id
 def create_session(self, user_id=None):
     """ create a new session for a user overloaded """
     sess = super().create_session(user_id)
     if sess is None:
         return None
     UserSession(user_id=user_id, session_id=sess).save()
     return sess
Exemple #26
0
    def user_id_for_session_id(self, session_id=None):
        """
        Returns a User ID based on a Session ID.
        """
        if session_id is None:
            return None

        UserSession.load_from_file()
        user = UserSession.search({'session_id': session_id})
        if not user:
            return None

        user = user[0]
        timing = timedelta(seconds=self.session_duration) + user.created_at
        if timing < datetime.now():
            return None
        return user.user_id
    def user_id_for_session_id(self, session_id=None):
        """ Get the user id for session
        """
        if session_id is None:
            return None

        UserSession.load_from_file()
        session_ids = UserSession.search({'session_id': session_id})

        if not session_ids:
            return None

        if datetime.utcnow() > session_ids[0].created_at + timedelta(
                seconds=self.session_duration):
            return None

        return session_ids[0].user_id
    def create_session(self, user_id=None):
        """ Create Session
        """
        if user_id is None:
            return None

        session_id = super().create_session(user_id)
        if session_id is None:
            return None

        user_session = UserSession(**{
            'user_id': user_id,
            'session_id': session_id
        })
        user_session.save()

        return session_id
 def destroy_session(self, request=None):
     """ destroy/logout of the session overloaded """
     if super().destroy(request):
         sess = self.session_cookie(request)
         sessData = UserSession.search({"session_id": sess})
         if sessData is not None:
             [x.remove() for x in sessData]
             return True
     return False
Exemple #30
0
 def create_session(self, user_id=None):
     """ This module is for session DB auth which stores sessions in db """
     if not user_id:
         return None
     session_id = super().create_session(user_id)
     if not session_id:
         return
     UserSession(user_id=user_id, session_id=session_id).save()
     return session_id
    def post(self):
        """ User sends gold and route info to server.
        Request
            uid - user_id
            cid - channel_id
            data - message
        """
        data = json.loads(self.request.body)
        uid = data['uid']
        print uid
        cid = data['cid']
        print cid
        ucg = data['current_gold']
        print "The user's current gold is " + ucg
        r = data['route']
        print "The route is: " + r

        pointsList = r.split(";")
        ndb.GeoPoint()
        rid = uid + "-" + cid
        route = Route(route_id=rid, list_of_points=[])
        for i in range(len(pointsList)):
            lng = pointsList[i].split()[0]
            lat = pointsList[i].split()[1]
            route.list_of_points.append(ndb.GeoPoint(lng, lat))
        route.put()
        usid = uid + "-" + cid
        user_session = UserSession(user_session_id=usid, base_point="",
                                   drop_off_point="", user_current_gold=ucg, route_id=rid)
        user_session.put()
        # session = Session.query(Session.channel_id == cid).get()
        pubnub = Pubnub(publish_key=PUBLISH_KEY,
                        subscribe_key=SUBSCRIBE_KEY, ssl_on=False, uuid=str(uid))
        pubnub.subscribe(cid, callback)
        pubnub.publish(cid, uid + " has selected a route")
        response = {'user-session-id': usid}
        self.response.out.write(json.dumps(response))