Example #1
0
    def logout(cls):
        if not cls.__current_user.is_authorized():
            return

        session = cls.__current_user.session
        if len(session) != 0:
            session["user"]["id"] = None
            redis.set(cls.__current_user.sid, session)
Example #2
0
    def login(cls, login, password):
        if cls.__current_user.is_authorized():
            return True

        user = User.get_by_login(login)
        hash_alg = hashlib.new(current_app.config.get("HASH_ALGORITHM", "sha1"))
        hash_alg.update(password.encode())

        if user.password == hash_alg.hexdigest():
            sid = cls.__current_user.sid
            if sid is not None:
                session = {
                    "create_datetime": datetime.now().isoformat(),
                    "touch_datetime": datetime.now().isoformat(),
                    "user": {
                        "id": user.id
                    }
                }
                redis.set(sid, pickle.dumps(session))
                return True
            return False
        else:
            return False
Example #3
0
 def _touch(sid, session):
     session['touch_datetime'] = datetime.now().isoformat()
     redis.set(sid, pickle.dumps(session))