diff --git a/src/wuttaweb/forms/base.py b/src/wuttaweb/forms/base.py index 9dd6760..ceaeeb7 100644 --- a/src/wuttaweb/forms/base.py +++ b/src/wuttaweb/forms/base.py @@ -1002,7 +1002,7 @@ class Form: # for now we explicitly translate here, ugh. also # note this does not yet allow for null values.. :( if isinstance(field.typ, colander.Boolean): - value = True if value == field.typ.true_val else False + value = True if field.typ.true_val else False model_data[field.oid] = make_json_safe(value) diff --git a/src/wuttaweb/templates/appinfo/index.mako b/src/wuttaweb/templates/appinfo/index.mako index ab49018..383157f 100644 --- a/src/wuttaweb/templates/appinfo/index.mako +++ b/src/wuttaweb/templates/appinfo/index.mako @@ -8,10 +8,10 @@ <div class="panel-block"> <div style="width: 100%;"> <b-field horizontal label="Distribution"> - <span>${app.get_distribution() or f'?? - set config for `{app.appname}.app_dist`'}</span> + <span>${app.get_distribution(obj=app.get_web_handler()) or f'?? - set config for `{app.appname}.app_dist`'}</span> </b-field> <b-field horizontal label="Version"> - <span>${app.get_version() or f'?? - set config for `{app.appname}.app_dist`'}</span> + <span>${app.get_version(obj=app.get_web_handler()) or f'?? - set config for `{app.appname}.app_dist`'}</span> </b-field> <b-field horizontal label="App Title"> <span>${app.get_title()}</span> diff --git a/src/wuttaweb/templates/base.mako b/src/wuttaweb/templates/base.mako index 14d0306..67adb61 100644 --- a/src/wuttaweb/templates/base.mako +++ b/src/wuttaweb/templates/base.mako @@ -661,9 +661,7 @@ </a> ${h.end_form()} % endif - % if request.is_root or not request.user.prevent_edit: - ${h.link_to("Change Password", url('change_password'), class_='navbar-item')} - % endif + ${h.link_to("Change Password", url('change_password'), class_='navbar-item')} ${h.link_to("Logout", url('logout'), class_='navbar-item')} </div> </div> diff --git a/src/wuttaweb/views/auth.py b/src/wuttaweb/views/auth.py index 0b4ebc2..abb52ea 100644 --- a/src/wuttaweb/views/auth.py +++ b/src/wuttaweb/views/auth.py @@ -157,9 +157,6 @@ class AuthView(View): if not self.request.user: return self.redirect(self.request.route_url('home')) - if self.request.user.prevent_edit: - raise self.forbidden() - form = self.make_form(schema=self.change_password_make_schema(), show_button_cancel=False, show_button_reset=True) diff --git a/src/wuttaweb/views/essential.py b/src/wuttaweb/views/essential.py index 4b87a13..56c669b 100644 --- a/src/wuttaweb/views/essential.py +++ b/src/wuttaweb/views/essential.py @@ -29,8 +29,8 @@ Most apps should include this module:: That will in turn include the following modules: -* :mod:`wuttaweb.views.common` * :mod:`wuttaweb.views.auth` +* :mod:`wuttaweb.views.common` * :mod:`wuttaweb.views.settings` * :mod:`wuttaweb.views.progress` * :mod:`wuttaweb.views.people` @@ -43,8 +43,8 @@ That will in turn include the following modules: def defaults(config, **kwargs): mod = lambda spec: kwargs.get(spec, spec) - config.include(mod('wuttaweb.views.common')) config.include(mod('wuttaweb.views.auth')) + config.include(mod('wuttaweb.views.common')) config.include(mod('wuttaweb.views.settings')) config.include(mod('wuttaweb.views.progress')) config.include(mod('wuttaweb.views.people')) diff --git a/src/wuttaweb/views/users.py b/src/wuttaweb/views/users.py index f679061..5e28a26 100644 --- a/src/wuttaweb/views/users.py +++ b/src/wuttaweb/views/users.py @@ -95,15 +95,6 @@ class UserView(MasterView): if not user.active: return 'has-background-warning' - def is_editable(self, user): - """ """ - - # only root can edit certain users - if user.prevent_edit and not self.request.is_root: - return False - - return True - def configure_form(self, f): """ """ super().configure_form(f) diff --git a/tests/views/test_auth.py b/tests/views/test_auth.py index 5e7607f..4fd5413 100644 --- a/tests/views/test_auth.py +++ b/tests/views/test_auth.py @@ -80,18 +80,11 @@ class TestAuthView(WebTestCase): redirect = view.change_password() self.assertIsInstance(redirect, HTTPFound) - # set initial password + # now "login" the user, and set initial password + self.request.user = barney auth.set_user_password(barney, 'foo') self.session.commit() - # forbidden if prevent_edit is set for user - self.request.user = barney - barney.prevent_edit = True - self.assertRaises(HTTPForbidden, view.change_password) - - # okay let's test with edit allowed - barney.prevent_edit = False - # view should now return context w/ form context = view.change_password() self.assertIn('form', context) diff --git a/tests/views/test_users.py b/tests/views/test_users.py index ea49d49..5b09e83 100644 --- a/tests/views/test_users.py +++ b/tests/views/test_users.py @@ -42,26 +42,6 @@ class TestUserView(WebTestCase): user.active = False self.assertEqual(view.grid_row_class(user, data, 1), 'has-background-warning') - def test_is_editable(self): - model = self.app.model - view = self.make_view() - - # active user is editable - user = model.User(username='barney', active=True) - self.assertTrue(view.is_editable(user)) - - # inactive also editable - user = model.User(username='barney', active=False) - self.assertTrue(view.is_editable(user)) - - # but not if prevent_edit flag is set - user = model.User(username='barney', prevent_edit=True) - self.assertFalse(view.is_editable(user)) - - # unless request user is root - self.request.is_root = True - self.assertTrue(view.is_editable(user)) - def test_configure_form(self): model = self.app.model barney = model.User(username='barney')