私はFlask-Adminを初めて利用しており、私はそれを自分のアプリに実装することができました。すべてがうまくいきます。管理者ビューが設定され、データを表示および作成/削除できます。Flask-Admin with Custom Security
私がセキュリティオプションを探すとき、私は自分自身をロールすることができます。しかし、それはクラスベースのビューの例を示しています(私は関数ベースです)。Flask-Login
を使用する必要があります。私はそれを使用したくない。私はすでに次のような必要なパスの認可チェックを受けています。
def login_required(something):
@wraps(something)
def wrap(*args, **kwargs):
if 'logged_in' in session:
return test(*args, **kwargs)
else:
return redirect(url_for('main.login'))
return wrap
@main_blueprint.route('/')
@login_required
def index():
form = MessageForm(request.form)
return render_template('index.html', form=form)
@main_blueprint.route('/login', methods=['GET', 'POST'])
def login():
error = None
form = LoginForm(request.form)
if request.method == 'POST':
if form.validate_on_submit():
user = User.query.filter_by(name=request.form['name']).first()
if user is not None and bcrypt.check_password_hash(user.password, request.form['password']):
session['logged_in'] = True
session['user_id'] = user.id
session['role'] = user.role
session['user'] = user.name
flash('Welcome')
return redirect(url_for('main.index'))
else:
error = 'Invalid Username or Password.'
flash('Invalid Username/Password Combination')
return render_template('login.html', form=form, error=error)
私は
@main_blueprint.route('/admin')
@login_required
def admin():
return render_template('admin/master.html')
しかし、明らかにそれは働いていない次の操作を行うために何をしてきました。
Flask-Login
またはFlask-Security
またはその他の追加モジュールを使用せずに、Flask-Admin
パスに独自のセキュリティを実装するにはどうすればよいですか?