Flask-basicAuth auth требуется декоратор для представлений Flask-Admin - PullRequest
0 голосов
/ 22 февраля 2019

В настоящее время я создаю внутреннее приложение с Flask для управления ресурсами для использования пользователями в организации.

Поскольку я использую Flask-SQLAlchemy, я решил использовать Flask-Admin для представления администраторабазы данных, но у меня возникают проблемы с защитой представлений.

Я пытаюсь использовать Flask-BasicAuth только для защиты представлений администратора, но поскольку маршрут генерируется автоматически, я не могу добавить @ basic-auth.requiredдекоратор к нему.Принудительное использование сайта Flask-BasicAuth блокирует конечные точки ресурса и, следовательно, не будет хорошим решением.

Попробовал что-то подобное, но это не работает:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from flask_basicauth import BasicAuth

app = Flask(__name__)
db = SQLAlchemy(app)
basic_auth = BasicAuth(app)
admin = Admin(app)

class Module(db.Model):
  __tablename__='Modules'
  name = db.Column(db.String(30), unique=True, nullable=False)

@basic_auth.required
class AdminView(ModelView):
  pass

admin.add_view(AdminView(Module, db.session))

TL;ДР: Администратор Flask предполагает, что я использую менеджер входа и сеанса.Flask BasicAuth предполагает, что я могу вручную объявлять маршруты.Нужно как-то их интегрировать, не блокируя конечные точки ресурса.

...