diff --git a/paramecio/app.py b/paramecio/app.py index fe5d986..0169c26 100644 --- a/paramecio/app.py +++ b/paramecio/app.py @@ -1,6 +1,6 @@ import os, sys, traceback, inspect, resource from importlib import import_module -from bottle import route, get, post, run, default_app, abort, request, response, static_file, load, hook, error, debug, redirect +from bottle import route, get, post, run, default_app, abort, request, response, static_file, load, hook, error, debug, redirect, template from settings import config #from beaker.middleware import SessionMiddleware from mimetypes import guess_type @@ -204,7 +204,54 @@ if config.yes_static==True: else: mimetype=guess_type(path_module+'/'+filename) return static_file(filename, root=path_module, mimetype=mimetype[0]) - + + +def error_handler_500(e): + + tpl_error=""" + %try: + %from bottle import DEBUG, request + + +
+Sorry, the requested URL {{repr(request.url)}} + caused an error:
+{{e.body}}
+ %if DEBUG and e.exception:
+ {{exc}}
+ %end
+ %if DEBUG and e.traceback:
+ {{e.traceback}}
+ %end
+
+
+ %except ImportError:
+ ImportError: Could not generate the error page. Please add bottle to
+ the import path.
+ %end
+ """
+
+ return template(tpl_error, e=e)
+
+app.error(code=500, callback=error_handler_500)
+
def run_app(app):
if config.server_used!='cherrypy':
run(app=app, host=config.host, server=config.server_used, port=config.port, debug=config.debug, reloader=config.reloader)
diff --git a/paramecio/modules/admin2/app.py b/paramecio/modules/admin2/app.py
index b2c15a4..8eb62d3 100644
--- a/paramecio/modules/admin2/app.py
+++ b/paramecio/modules/admin2/app.py
@@ -58,11 +58,6 @@ admin_folder='/admin'
if hasattr(config, 'admin_folder'):
admin_folder=config.admin_folder
-@app.get(admin_folder)
-def redirect_home():
-
- redirect(app.get_url('admin_app.home_admin'))
-
@admin_app.get('/home', name="admin_app.home_admin")
def home_admin(session={}):
@@ -73,6 +68,10 @@ def home_admin(session={}):
return t.load_template('layout.phtml', title=_('Admin'), module_selected='home_admin', session=session)
#return {}
+@app.get(admin_folder)
+def redirect_home():
+
+ redirect(app.get_url('admin_app.home_admin'))
@admin_app.get('/login', name="admin_app.login_admin", skip=[check_login])
def login_admin(session={}):
@@ -211,6 +210,7 @@ def check_login_admin(session={}):
modules_priv+=v[2]
modules_priv.append('admin_app.home_admin')
+ modules_priv.append('admin_app.change_theme')
db.query('update useradmin2 set token_login=%s, last_login=%s, token_auth=%s WHERE id=%s', [remember_key, date_now, usermodel.fields['password'].check(token_auth), result['id']])