Changeset - b41bdfdb3b16
[Not reviewed]
default
0 1 0
Søren Løvborg - 10 years ago 2015-07-14 13:59:59
kwi@kwi.dk
AuthSettingsController: refactor rendering

Instead of having one controller method ('auth_settings', which handles
POST) call another controller method ('index', which handles GET), have
both methods call a third, common '__render' method.

This makes it clear which arguments 'index' really takes (none). It's
also seen that the 'prefix_error' argument is always False, so it can
be removed. Finally, '__load_defaults' is no longer called twice when
POSTing invalid form values.
1 file changed with 8 insertions and 6 deletions:
0 comments (0 inline, 0 general)
kallithea/controllers/admin/auth_settings.py
Show inline comments
 
@@ -57,15 +57,13 @@ class AuthSettingsController(BaseControl
 
            'kallithea.lib.auth_modules.auth_ldap',
 
            'kallithea.lib.auth_modules.auth_crowd',
 
            'kallithea.lib.auth_modules.auth_pam'
 
        ]
 
        c.enabled_plugins = Setting.get_auth_plugins()
 

	
 
    def index(self, defaults=None, errors=None, prefix_error=False):
 
        self.__load_defaults()
 

	
 
    def __render(self, defaults, errors):
 
        c.defaults = {}
 
        c.plugin_settings = {}
 
        c.plugin_shortnames = {}
 

	
 
        for module in c.enabled_plugins:
 
            plugin = auth_modules.loadplugin(module)
 
@@ -88,16 +86,20 @@ class AuthSettingsController(BaseControl
 

	
 
        log.debug(formatted_json(defaults))
 
        return formencode.htmlfill.render(
 
            render('admin/auth/auth_settings.html'),
 
            defaults=c.defaults,
 
            errors=errors,
 
            prefix_error=prefix_error,
 
            prefix_error=False,
 
            encoding="UTF-8",
 
            force_defaults=False)
 

	
 
    def index(self):
 
        self.__load_defaults()
 
        return self.__render(defaults=None, errors=None)
 

	
 
    def auth_settings(self):
 
        """POST create and store auth settings"""
 
        self.__load_defaults()
 
        _form = AuthSettingsForm(c.enabled_plugins)()
 
        log.debug("POST Result: %s" % formatted_json(dict(request.POST)))
 

	
 
@@ -113,16 +115,16 @@ class AuthSettingsController(BaseControl
 
            Session().commit()
 
            h.flash(_('Auth settings updated successfully'),
 
                       category='success')
 
        except formencode.Invalid, errors:
 
            log.error(traceback.format_exc())
 
            e = errors.error_dict or {}
 
            return self.index(
 
            return self.__render(
 
                defaults=errors.value,
 
                errors=e,
 
                prefix_error=False)
 
            )
 
        except Exception:
 
            log.error(traceback.format_exc())
 
            h.flash(_('error occurred during update of auth settings'),
 
                    category='error')
 

	
 
        return redirect(url('auth_home'))
0 comments (0 inline, 0 general)