From 4d97c2998000639481a495e16a89bf2615a433e4 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sat, 2 Nov 2013 11:03:26 +0000 Subject: [PATCH 1/4] Change firstboot redirects so they don't go to firstboot/firstboot. --- modules/installed/first_boot.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/installed/first_boot.py b/modules/installed/first_boot.py index 9d47e7cd9..8b1f3d663 100644 --- a/modules/installed/first_boot.py +++ b/modules/installed/first_boot.py @@ -81,11 +81,11 @@ class FirstBoot(PagePlugin): ## Update state to 1 and head there with sqlite_db(cfg.store_file, table="firstboot", autocommit=True) as db: db['state']=1 - raise cherrypy.InternalRedirect('firstboot/state1') + raise cherrypy.InternalRedirect('state1') main = "

Welcome. It looks like this FreedomBox isn't set up yet. We'll need to ask you a just few questions to get started.

" form = Form(title="Welcome to Your FreedomBox!", - action="firstboot", + action="", # stay at firstboot name="whats_my_name", message=message) form.text = '\n'+form.text @@ -133,7 +133,7 @@ see the rest of the web interface.

" with sqlite_db(cfg.store_file, table="firstboot", autocommit=True) as db: db['state']=1 #TODO: switch to HTTPS - raise cherrypy.InternalRedirect('firstboot/state1') + raise cherrypy.InternalRedirect('state1') return self.fill_template(template="base", title=_("Installing the Certificate"), main=main, sidebar_right=_("""Getting Help

We've done our best to make your FreedomBox easy to use. If you have questions during setup, there are a few places to turn for help. TODO: add links to such help.

""")) From 38d3e849615c146e3557c135c0765e3fed57ceb8 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sat, 2 Nov 2013 11:25:37 +0000 Subject: [PATCH 2/4] first_boot needs to move up a folder to reach router. Prepend server_dir to redirects in router, auth, and auth_page. --- modules/installed/first_boot.py | 2 +- modules/installed/lib/auth.py | 4 ++-- modules/installed/lib/auth_page.py | 2 +- modules/installed/router/router.py | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/modules/installed/first_boot.py b/modules/installed/first_boot.py index 8b1f3d663..576c5c445 100644 --- a/modules/installed/first_boot.py +++ b/modules/installed/first_boot.py @@ -124,7 +124,7 @@ TODO: explain all this cert stuff to the user.

with sqlite_db(cfg.store_file, table="firstboot", autocommit=True) as db: db['state']=5 main = main + """ -

Welcome screen not completely implemented yet. Press continue to +

Welcome screen not completely implemented yet. Press continue to see the rest of the web interface.

" """ diff --git a/modules/installed/lib/auth.py b/modules/installed/lib/auth.py index fb2ad2ac9..5ee758688 100644 --- a/modules/installed/lib/auth.py +++ b/modules/installed/lib/auth.py @@ -59,10 +59,10 @@ def check_auth(*args, **kwargs): # A condition is just a callable that returns true or false if not condition(): # Send old page as from_page parameter - raise cherrypy.HTTPRedirect("/auth/login?from_page=%s" % get_params) + raise cherrypy.HTTPRedirect(cfg.server_dir + "/auth/login?from_page=%s" % get_params) else: # Send old page as from_page parameter - raise cherrypy.HTTPRedirect("/auth/login?from_page=%s" % get_params) + raise cherrypy.HTTPRedirect(cfg.server_dir + "/auth/login?from_page=%s" % get_params) cherrypy.tools.auth = cherrypy.Tool('before_handler', check_auth) diff --git a/modules/installed/lib/auth_page.py b/modules/installed/lib/auth_page.py index 6525dc6dc..cab7890bc 100644 --- a/modules/installed/lib/auth_page.py +++ b/modules/installed/lib/auth_page.py @@ -17,7 +17,7 @@ class AuthController(PagePlugin): """Called on logout""" def get_loginform(self, username, msg='', from_page="/"): - form = Form(title="Login", action="/auth/login", message=msg) + form = Form(title="Login", action=cfg.server_dir + "/auth/login", message=msg) form.text_input(name="from_page", value=from_page, type="hidden") form.text_input("Username", name="username", value=username) form.text_input("Passphrase", name="passphrase", type="password") diff --git a/modules/installed/router/router.py b/modules/installed/router/router.py index 6c21fea76..e38f5c575 100644 --- a/modules/installed/router/router.py +++ b/modules/installed/router/router.py @@ -23,7 +23,7 @@ class router(PagePlugin): reflect that we've moved down into the submenu hierarchy. Otherwise, it's hard to know which menu portion to make active or expand or contract.""" - raise cherrypy.HTTPRedirect('/router/setup') + raise cherrypy.HTTPRedirect(cfg.server_dir + '/router/setup') @cherrypy.expose @require() From 77948f0e9610ac6146dd6c7bbe6db1c624186a59 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sat, 2 Nov 2013 11:34:23 +0000 Subject: [PATCH 3/4] prepend server_dir to remaining redirects --- modules/installed/lib/auth_page.py | 4 ++-- modules/installed/sharing/sharing.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/installed/lib/auth_page.py b/modules/installed/lib/auth_page.py index cab7890bc..3f3574c6a 100644 --- a/modules/installed/lib/auth_page.py +++ b/modules/installed/lib/auth_page.py @@ -36,7 +36,7 @@ class AuthController(PagePlugin): else: cherrypy.session[cfg.session_key] = cherrypy.request.login = username self.on_login(username) - raise cherrypy.HTTPRedirect(from_page or "/") + raise cherrypy.HTTPRedirect(from_page or (cfg.server_dir + "/")) @cherrypy.expose def logout(self, from_page="/"): @@ -46,4 +46,4 @@ class AuthController(PagePlugin): if username: cherrypy.request.login = None self.on_logout(username) - raise cherrypy.HTTPRedirect(from_page or "/") + raise cherrypy.HTTPRedirect(from_page or (cfg.server_dir + "/")) diff --git a/modules/installed/sharing/sharing.py b/modules/installed/sharing/sharing.py index 7617c577a..3a0de623b 100644 --- a/modules/installed/sharing/sharing.py +++ b/modules/installed/sharing/sharing.py @@ -19,7 +19,7 @@ class Sharing(PagePlugin): reflect that we've moved down into the submenu hierarchy. Otherwise, it's hard to know which menu portion to make active or expand or contract.""" - raise cherrypy.HTTPRedirect('/sharing/files') + raise cherrypy.HTTPRedirect(cfg.server_dir + '/sharing/files') @cherrypy.expose @require() From 60ea9f43cda7442e7c0c809d148989edadb99f8e Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Sat, 2 Nov 2013 11:40:18 +0000 Subject: [PATCH 4/4] Prepend server_dir to form actions that use absolute paths. --- modules/installed/apps/apps.py | 2 +- modules/installed/router/router.py | 2 +- modules/installed/services/xmpp.py | 4 ++-- modules/installed/system/config.py | 2 +- modules/installed/system/expert_mode.py | 2 +- modules/installed/system/users.py | 4 ++-- modules/installed/system/wan.py | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/installed/apps/apps.py b/modules/installed/apps/apps.py index d6ba9d662..2706110ce 100644 --- a/modules/installed/apps/apps.py +++ b/modules/installed/apps/apps.py @@ -68,7 +68,7 @@ some other websites business model.

main=""" """ form = Form(title="Configuration", - action="/apps/owncloud", + action=cfg.server_dir + "/apps/owncloud", name="configure_owncloud", message='') form.checkbox(_("Enable Owncloud"), name="owncloud_enable", id="owncloud_enable", checked=checkedinfo['enable']) diff --git a/modules/installed/router/router.py b/modules/installed/router/router.py index e38f5c575..278309f7b 100644 --- a/modules/installed/router/router.py +++ b/modules/installed/router/router.py @@ -138,7 +138,7 @@ class wan(FormPlugin, PagePlugin): exec("if not '%(k)s' in kwargs: store['%(k)s'] = kwargs['%(k)s'] = %(c)s" % {'k':k, 'c':c}) form = Form(title="WAN Connection", - action="/router/setup/wan/index", + action=cfg.server_dir + "/router/setup/wan/index", name="wan_connection_form", message=message) form.dropdown('Connection Type', vals=["DHCP", "Static IP"], id="connect_type", onchange="hideshow_static()") diff --git a/modules/installed/services/xmpp.py b/modules/installed/services/xmpp.py index 6140cf1c5..8881a2bd0 100644 --- a/modules/installed/services/xmpp.py +++ b/modules/installed/services/xmpp.py @@ -43,7 +43,7 @@ class xmpp(PagePlugin): main = "

XMPP Server Configuration

" form = Form(title="Configuration", - action="/services/xmpp", + action=cfg.server_dir + "/services/xmpp", name="configure_xmpp", message='') form.checkbox(_("Allow In-Band Registration"), name="xmpp_inband_enable", @@ -66,7 +66,7 @@ class register(FormPlugin, PagePlugin): def main(self, username='', message=None, *args, **kwargs): form = Form(title="Register XMPP Account", - action="/services/xmpp/register/index", + action=cfg.server_dir + "/services/xmpp/register/index", name="register_xmpp_form", message=message) form.text_input(_("Username"), name="username", value=username) diff --git a/modules/installed/system/config.py b/modules/installed/system/config.py index d6b22467a..673eae852 100644 --- a/modules/installed/system/config.py +++ b/modules/installed/system/config.py @@ -108,7 +108,7 @@ class general(FormPlugin, PagePlugin): ## And now, the form. form = Form(title=_("General Config"), - action="/sys/config/general/index", + action=cfg.server_dir + "/sys/config/general/index", name="config_general_form", message=message ) form.html(self.help()) diff --git a/modules/installed/system/expert_mode.py b/modules/installed/system/expert_mode.py index e69e08bcf..dd6f11b49 100644 --- a/modules/installed/system/expert_mode.py +++ b/modules/installed/system/expert_mode.py @@ -47,7 +47,7 @@ class experts(FormPlugin, PagePlugin): expert = cfg.users.expert() cfg.log("Expert mode is %s" % expert) form = Form(title=_("Expert Mode"), - action="/sys/config/experts", + action=cfg.server_dir + "/sys/config/experts", name="expert_mode_form", message=message ) form.html(self.help()) diff --git a/modules/installed/system/users.py b/modules/installed/system/users.py index 4277f1050..f83b0ae61 100644 --- a/modules/installed/system/users.py +++ b/modules/installed/system/users.py @@ -33,7 +33,7 @@ class add(FormPlugin, PagePlugin): def main(self, username='', name='', email='', message=None, *args, **kwargs): form = Form(title="Add User", - action="/sys/users/add/index", + action=cfg.server_dir + "/sys/users/add/index", onsubmit="return md5ify('add_user_form', 'password')", name="add_user_form", message=message) @@ -81,7 +81,7 @@ class edit(FormPlugin, PagePlugin): def main(self, msg=''): users = cfg.users.get_all() - add_form = Form(title=_("Edit or Delete User"), action="/sys/users/edit", message=msg) + add_form = Form(title=_("Edit or Delete User"), action=cfg.server_dir + "/sys/users/edit", message=msg) add_form.html('Delete
') for uname in users: user = User(uname[1]) diff --git a/modules/installed/system/wan.py b/modules/installed/system/wan.py index 394f67d6e..55ce1ec1b 100644 --- a/modules/installed/system/wan.py +++ b/modules/installed/system/wan.py @@ -57,7 +57,7 @@ class wan(FormPlugin, PagePlugin): exec("if not '%(k)s' in kwargs: store['%(k)s'] = kwargs['%(k)s'] = %(c)s" % {'k':k, 'c':c}) form = Form(title=_("Accessing the %s" % cfg.box_name), - action="/sys/config/wan", + action=cfg.server_dir + "/sys/config/wan", name="admin_wan_form", message=message ) form.html(self.help())