# HG changeset patch # User Ludovic Chabant # Date 1472442485 25200 # Node ID a9f4a6e60b0bd40a189139c8bbade5d57b832174 # Parent df58592b40f887f305026a13ee4daebada9e5d20 admin: Fix various crashes caused by incorrect Blueprint setup. diff -r df58592b40f8 -r a9f4a6e60b0b piecrust/admin/bcryptfallback.py --- a/piecrust/admin/bcryptfallback.py Thu Aug 11 22:37:38 2016 -0700 +++ b/piecrust/admin/bcryptfallback.py Sun Aug 28 20:48:05 2016 -0700 @@ -38,7 +38,7 @@ self.check_password_hash = check_password_hash def init_app(self, app): - pass + app.bcrypt = self Bcrypt = SHA512Fallback diff -r df58592b40f8 -r a9f4a6e60b0b piecrust/admin/blueprint.py --- a/piecrust/admin/blueprint.py Thu Aug 11 22:37:38 2016 -0700 +++ b/piecrust/admin/blueprint.py Sun Aug 28 20:48:05 2016 -0700 @@ -30,7 +30,7 @@ login_manager = LoginManager() -login_manager.login_view = 'login' +login_manager.login_view = 'FoodTruck.login' login_manager.user_loader(load_user) @@ -43,6 +43,8 @@ login_manager.unauthorized_handler(_handler) login_manager.login_view = None + login_manager.init_app(state.app) + # Setup Bcrypt. from .bcryptfallback import Bcrypt @@ -56,6 +58,9 @@ "You're running FoodTruck outside of `chef`, and will need to " "install Flask-Bcrypt to get more proper security.") + bcrypt_ext.init_app(state.app) + state.app.bcrypt = bcrypt_ext + # Create the FoodTruck blueprint. foodtruck_bp = Blueprint( diff -r df58592b40f8 -r a9f4a6e60b0b piecrust/admin/web.py --- a/piecrust/admin/web.py Thu Aug 11 22:37:38 2016 -0700 +++ b/piecrust/admin/web.py Sun Aug 28 20:48:05 2016 -0700 @@ -2,7 +2,7 @@ import logging from flask import Flask from werkzeug import SharedDataMiddleware -from .blueprint import foodtruck_bp, login_manager, bcrypt_ext +from .blueprint import foodtruck_bp from .configuration import FoodTruckConfigNotFoundError from .sites import InvalidSiteError @@ -11,7 +11,7 @@ def create_foodtruck_app(extra_settings=None): - app = Flask(__name__) + app = Flask(__name__.split('.')[0]) app.config.from_object('piecrust.admin.settings') app.config.from_envvar('FOODTRUCK_SETTINGS', silent=True) if extra_settings: @@ -62,8 +62,6 @@ _missing_secret_key = True # Register extensions and blueprints. - login_manager.init_app(app) - bcrypt_ext.init_app(app) app.register_blueprint(foodtruck_bp) logger.debug("Created FoodTruck app with admin root: %s" % admin_root)