Flask-Security override register view

≯℡__Kan透↙ 提交于 2019-12-10 19:15:11

问题


Is there some convenient way to override register view in Flask-Security? I'm pretty happy with the built-in view for registration, but I need it to be accessible only after authentication and by certain roles.

I tried to override it like this (with SECURITY_REGISTER_URL='/register/') but that just takes the built-in function and mine is completely ignored:

@app.route('/register/')
@login_required
@roles_required('superuser')
def register():
    """View function which handles a registration request."""
    ...

So the question is - do I have to write my own register view from peak and disable the Flask-Security registration?

I thought also about checking the user login/role in register_user.html template and possibly redirecting back to home page, but I'm not sure if that's the correct way to achieve this...


回答1:


After several hours I finally managed to get it working. I forgot to specify methods, while registering the route @app.route('/register/', methods=['GET', 'POST']). If you disable the original Flask-Security's register view (SECURITY_REGISTERABLE = False), it works like a charm!

Also, when you want to override some view from Flask-Security, that can't be disabled so easily, like login, you have to do the same thing as mentioned above, but also register your view/blueprint first!



来源:https://stackoverflow.com/questions/50820412/flask-security-override-register-view

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!