X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=blobdiff_plain;f=ipsilon%2Flogin%2Fcommon.py;h=b4515508309f70bf259a5d899534de2c39745013;hp=54706263185071f76165e2b0dc4153623fdfe7c1;hb=a511d8ab35cc0f2872eac640ed4120766f92704a;hpb=32bb6d8b38b9147143074710ba2dcb7f45cd4157 diff --git a/ipsilon/login/common.py b/ipsilon/login/common.py index 5470626..b451550 100755 --- a/ipsilon/login/common.py +++ b/ipsilon/login/common.py @@ -126,6 +126,41 @@ class LoginPageBase(Page): raise cherrypy.HTTPError(500) +class LoginFormBase(LoginPageBase): + + def __init__(self, site, mgr, page, template=None): + super(LoginFormBase, self).__init__(site, mgr) + self.formpage = page + self.formtemplate = template or 'login/form.html' + + def GET(self, *args, **kwargs): + context = self.create_tmpl_context() + # pylint: disable=star-args + return self._template(self.formtemplate, **context) + + def root(self, *args, **kwargs): + op = getattr(self, cherrypy.request.method, self.GET) + if callable(op): + return op(*args, **kwargs) + + def create_tmpl_context(self, **kwargs): + next_url = None + if self.lm.next_login is not None: + next_url = self.lm.next_login.path + + context = { + "title": 'Login', + "action": '%s/%s' % (self.basepath, self.formpage), + "service_name": self.lm.service_name, + "username_text": self.lm.username_text, + "password_text": self.lm.password_text, + "description": self.lm.help_text, + "next_url": next_url, + } + context.update(kwargs) + return context + + FACILITY = 'login_config'