migrated to poetry; updated all packages

This commit is contained in:
2023-10-13 12:01:01 +02:00
parent c4b54357f7
commit 6e2fa6c101
19 changed files with 92 additions and 878 deletions

View File

@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
from flask import Blueprint, abort
from flask_restplus import Api, Namespace
from flask_restx import Api, Namespace
api_authorizations = {
'apikey': {

View File

@@ -10,21 +10,16 @@ import json
from pprint import pprint
import flask
from datetime import datetime, timedelta
import jwt
from flask import request, jsonify, current_app, url_for, Response, session, redirect, make_response
from flask_jwt_extended import create_access_token, create_refresh_token, jwt_refresh_token_required, get_jwt_identity, \
get_raw_jwt, jwt_required
from functools import wraps
from random import randint
from flask import request, jsonify, current_app, url_for, redirect, make_response
from flask_jwt_extended import create_access_token, create_refresh_token, get_jwt, get_jwt_identity, jwt_required
from flask_login import logout_user, login_user
from typing import Iterable
from flask_restplus import Resource, fields
from flask_restx import Resource, fields
from werkzeug.routing import BuildError
from backend import db, app, jwt_extended
from backend import db, app
from backend.api import auth_api_bp, auth_api_providers_ns, auth_api_register_ns
from backend.auth import AUTH_PROVIDERS, oidc_auth
from backend.models.user_model import User, Group, BlacklistToken
@@ -58,19 +53,19 @@ def register():
return jsonify(user.to_dict()), 201
@auth_api_register_ns.route('/')
@auth_api_register_ns.expect(auth_api_register_ns.model('RegisterModel', {
'nickname': fields.String(required=False, description='The user\'s nickname'),
'first_name': fields.String(required=False, description='The user\'s first name'),
'last_name': fields.String(required=False, description='The user\'s last name'),
'lang': fields.String(required=False, description='The user\'s preferred language'),
'timezone': fields.String(required=False, description='The user\'s preferred timezone'),
'email': fields.String(required=True, description='The user\'s e-mail address'),
'password': fields.String(required=False, description='The group\'s name')
}))
class AuthProviders(Resource):
def get(self):
return register()
# @auth_api_register_ns.route('/')
# @auth_api_register_ns.expect(auth_api_register_ns.model('RegisterModel', {
# 'nickname': fields.String(required=False, description='The user\'s nickname'),
# 'first_name': fields.String(required=False, description='The user\'s first name'),
# 'last_name': fields.String(required=False, description='The user\'s last name'),
# 'lang': fields.String(required=False, description='The user\'s preferred language'),
# 'timezone': fields.String(required=False, description='The user\'s preferred timezone'),
# 'email': fields.String(required=True, description='The user\'s e-mail address'),
# 'password': fields.String(required=False, description='The group\'s name')
# }))
# class AuthProviders(Resource):
# def get(self):
# return register()
@auth_api_bp.route('/login', methods=('GET', 'POST',))
@@ -96,7 +91,7 @@ def login():
@auth_api_bp.route('/logout', methods=['GET', 'DELETE'])
@jwt_required
def logout():
jti = get_raw_jwt()['jti']
jti = get_jwt()['jti']
db.session.add(BlacklistToken(token=jti))
db.session.commit()
return jsonify({"msg": "Successfully logged out"}), 200
@@ -104,9 +99,9 @@ def logout():
# Endpoint for revoking the current users refresh token
@auth_api_bp.route('/logout2', methods=['GET', 'DELETE'])
@jwt_refresh_token_required
@jwt_required(refresh=True)
def logout2():
jti = get_raw_jwt()['jti']
jti = get_jwt()['jti']
db.session.add(BlacklistToken(token=jti))
db.session.commit()
return jsonify({"msg": "Successfully logged out"}), 200
@@ -182,7 +177,7 @@ def oidc(redirect_url=None):
@auth_api_bp.route('/refresh', methods=['GET'])
@jwt_refresh_token_required
@jwt_required(refresh=True)
def refresh():
"""Refresh token endpoint. This will generate a new access token from
the refresh token, but will mark that access token as non-fresh,

View File

@@ -8,8 +8,8 @@ Login through API does not start a new session, but instead returns JWT.
import json
from datetime import datetime
from flask_jwt_extended import jwt_required, get_current_user, get_jwt_claims
from flask_restplus import fields, Resource
from flask_jwt_extended import jwt_required, get_current_user, get_jwt
from flask_restx import fields, Resource
from backend import db
from backend.api import api_control, get_jwt_identity
@@ -37,6 +37,6 @@ class ControlCommand(Resource):
def post(self):
print(get_current_user())
print(get_jwt_identity())
current_user = {'user': get_current_user(), 'claims': get_jwt_claims()}
current_user = {'user': get_current_user(), 'claims': get_jwt()}
args = self.control_command_parser.parse_args()
return {'time': datetime.utcnow(), 'output': args, 'state': current_user}

View File

@@ -5,7 +5,7 @@ import json
import logging
from random import *
from flask import jsonify, Blueprint, request
from flask_restplus import Resource, reqparse
from flask_restx import Resource, reqparse
from backend import basic_auth, multi_auth, db, jwt_auth
from backend.api import api_v1, api_bp

View File

@@ -6,7 +6,7 @@ For example: listing of available auth providers or registration of users.
Login through API does not start a new session, but instead returns JWT.
"""
from flask_jwt_extended import jwt_required
from flask_restplus import fields, Resource
from flask_restx import fields, Resource
from backend import db
from backend.api import api_group

View File

@@ -1,4 +1,4 @@
from flask_restplus import fields
from flask_restx import fields
from backend.api import api_user, api_recorder, api_v1
generic_id_parser = api_v1.parser()

View File

@@ -9,7 +9,7 @@ from datetime import datetime
from pprint import pprint
from flask_jwt_extended import jwt_required
from flask_restplus import fields, Resource, inputs
from flask_restx import fields, Resource, inputs
from backend import db, app
from backend.api import api_recorder

View File

@@ -6,7 +6,7 @@ For example: listing of available auth providers or registration of users.
Login through API does not start a new session, but instead returns JWT.
"""
from flask_jwt_extended import jwt_required
from flask_restplus import fields, Resource
from flask_restx import fields, Resource
from sqlalchemy import exc
from backend import db, app

View File

@@ -9,7 +9,7 @@ from datetime import datetime
from pprint import pprint
from flask_jwt_extended import get_jwt_identity, jwt_required, current_user
from flask_restplus import Resource, fields, inputs, abort
from flask_restx import Resource, fields, inputs, abort
from backend import db, app, jwt_auth
from backend.api import api_user

View File

@@ -10,7 +10,7 @@ import pkgutil
from pprint import pprint
from flask_jwt_extended import jwt_required
from flask_restplus import fields, Resource
from flask_restx import fields, Resource
from backend import db, app
from backend.api import api_virtual_command