def execute(): try: auth_session = session['authenticate'] request_datetime = auth_session['request_datetime'] token = auth_session['token'] used = True except KeyError: request_datetime = datetime.now() - timedelta( seconds=int(config.get('AUTH_DATETIME_PADDING'))) token = request.args.get('token') used = False query = Token.select().where(Token.token == token, Token.token.is_null(False), Token.used == used, Token.created_date >= request_datetime) if not query.exists(): # Not valid, don't go further Session.clear_auth_session() return False if Session.exists(): Session.renew_auth_session() else: Session.create_auth_session(token, request_datetime) token = query.get() token.used = True token.save() return True
def clear_auth_session(): success = True try: token = session['authenticate']['token'] token_obj = Token.select().where(Token.token == token).get() token_obj.used = True token_obj.save() except (KeyError, DoesNotExist): success = False session.pop('authenticate', None) return success