def logged_in_user(fetch=True): """ Return the User object for the currently logged in user, or None if the session is not logged in. """ user_id = session.get('user_id', None) if not user_id: return None private_key = session.get('key', None) if not private_key: return None try: unlocked_key = RSA.importKey( private_key, passphrase=current_app.secret_key ) except (ValueError, IndexError, TypeError): return None if not fetch: return True user = User.get(user_id) user._unlocked_key = unlocked_key return user