Я создаю блог Flask и настраиваю интерфейс администратора. Я читал о настройке безопасности для Flask-Admin. Мне удалось настроить защиту (доступ ограничивается только зарегистрированным пользователям) для всех моих моделей, но пользователи все равно могут получить доступ к маршруту «/ admin», который имеет только голую домашнюю кнопку в нем.Hide Flask-Admin route
Мой вопрос: есть ли способ скрыть или защитить маршрут '/ admin', чтобы неавторизованный пользователь просто перенаправлялся на страницу входа/отказался?
Большое спасибо!
Прикрепление моей текущей настройки администратора:
from flask_admin import Admin
from flask_login import current_user
from flask_admin.contrib import sqla
from wtforms.widgets import TextArea
from wtforms import TextAreaField
from samo.models import User, Post, Tag
from samo import app,db
admin = Admin(app, name='Admin', template_mode='bootstrap3')
class CKTextAreaWidget(TextArea):
def __call__(self, field, **kwargs):
if kwargs.get('class'):
kwargs['class'] += ' ckeditor'
else:
kwargs.setdefault('class', 'ckeditor')
return super(CKTextAreaWidget, self).__call__(field, **kwargs)
class CKTextAreaField(TextAreaField):
widget = CKTextAreaWidget()
class PostAdmin(sqla.ModelView):
form_overrides = dict(content=CKTextAreaField)
create_template = 'blog/ckeditor.html'
edit_template = 'blog/ckeditor.html'
form_excluded_columns = ('slug')
def is_accessible(self):
return current_user.is_authenticated
admin.add_view(PostAdmin(Post, db.session))
class TagAdmin(sqla.ModelView):
def is_accessible(self):
return current_user.is_authenticated
admin.add_view(TagAdmin(Tag, db.session))
class UserAdmin(sqla.ModelView):
def is_accessible(self):
return current_user.is_authenticated
admin.add_view(UserAdmin(User, db.session))
Если скрыть маршрут, как бы вы к нему доступ? Почему вы не можете использовать перенаправление, если не аутентифицированы, как вы сказали? –