comparison piecrust/admin/blueprint.py @ 935:7ecb946bfafd

admin: Lots of fixes for running the admin panel in a WSGI server. - Use new source APIs in the dashboard to open WIP files. - Fixed broken/outdated code in some views. - Fixed cases when Flask is not running at the root URL by using the `SCRIPT_NAME` variable somewhat more properly.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 04 Oct 2017 09:15:16 -0700
parents 2b0fa2e4c12f
children 94fd4f07da83
comparison
equal deleted inserted replaced
934:98430e7143d2 935:7ecb946bfafd
16 self.id = uid 16 self.id = uid
17 self.password = pwd 17 self.password = pwd
18 18
19 19
20 def load_user(user_id): 20 def load_user(user_id):
21 admin_id = g.config.get('security/username') 21 admin_id = current_app.config.get('USERNAME')
22 if admin_id == user_id: 22 if admin_id == user_id:
23 admin_pwd = g.config.get('security/password') 23 admin_pwd = current_app.config.get('PASSWORD')
24 return User(admin_id, admin_pwd) 24 return User(admin_id, admin_pwd)
25 return None 25 return None
26 26
27 27
28 login_manager = LoginManager() 28 def record_login_manager(state):
29 login_manager.login_view = 'FoodTruck.login' 29 login_manager = LoginManager()
30 login_manager.user_loader(load_user) 30 login_manager.login_view = 'FoodTruck.login'
31 login_manager.user_loader(load_user)
31 32
32
33 def record_login_manager(state):
34 if state.app.config['SECRET_KEY'] == 'temp-key': 33 if state.app.config['SECRET_KEY'] == 'temp-key':
35 def _handler(): 34 def _handler():
36 raise Exception("No secret key has been set!") 35 from flask import render_template
36 return render_template(
37 'error.html',
38 error="No secret key has been set!")
37 39
38 logger.debug("No secret key found, disabling website login.") 40 logger.debug("No secret key found, disabling website login.")
39 login_manager.unauthorized_handler(_handler) 41 login_manager.unauthorized_handler(_handler)
40 login_manager.login_view = None 42 login_manager.login_view = None
41 43
89 91
90 92
91 @foodtruck_bp.before_request 93 @foodtruck_bp.before_request
92 def _setup_foodtruck_globals(): 94 def _setup_foodtruck_globals():
93 def _get_site(): 95 def _get_site():
94 root_dir = current_app.config['FOODTRUCK_ROOT'] 96 root_dir = current_app.config['FOODTRUCK_ROOT_DIR']
95 url_prefix = current_app.config['FOODTRUCK_URL_PREFIX'] 97 return SiteInfo(root_dir, debug=current_app.debug)
96 return SiteInfo(root_dir, url_prefix, debug=current_app.debug)
97 98
98 g.site = LazySomething(_get_site) 99 g.site = LazySomething(_get_site)
99 100
100 101
101 @foodtruck_bp.after_request 102 @foodtruck_bp.after_request
129 import piecrust.admin.views.menu # NOQA 130 import piecrust.admin.views.menu # NOQA
130 import piecrust.admin.views.micropub # NOQA 131 import piecrust.admin.views.micropub # NOQA
131 import piecrust.admin.views.preview # NOQA 132 import piecrust.admin.views.preview # NOQA
132 import piecrust.admin.views.publish # NOQA 133 import piecrust.admin.views.publish # NOQA
133 import piecrust.admin.views.sources # NOQA 134 import piecrust.admin.views.sources # NOQA
134
135