[Repoze-checkins] r819 - repoze.pam/trunk/repoze/pam/plugins

Rocky Burt rocky at serverzen.com
Sun Mar 16 19:16:10 EDT 2008


Author: Rocky Burt <rocky at serverzen.com>
Date: Sun Mar 16 19:16:10 2008
New Revision: 819

Log:
Allow form plugin to take a callable.

Modified:
   repoze.pam/trunk/repoze/pam/plugins/form.py

Modified: repoze.pam/trunk/repoze/pam/plugins/form.py
==============================================================================
--- repoze.pam/trunk/repoze/pam/plugins/form.py	(original)
+++ repoze.pam/trunk/repoze/pam/plugins/form.py	Sun Mar 16 19:16:10 2008
@@ -45,13 +45,14 @@
 
     implements(IChallenger, IIdentifier)
     
-    def __init__(self, login_form_qs, rememberer_name, formbody=None):
+    def __init__(self, login_form_qs, rememberer_name, formbody=None, formcallable=None):
         self.login_form_qs = login_form_qs
         # rememberer_name is the name of another configured plugin which
         # implements IIdentifier, to handle remember and forget duties
         # (ala a cookie plugin or a session plugin)
         self.rememberer_name = rememberer_name
         self.formbody = formbody
+        self.formcallable = formcallable
 
     # IIdentifier
     def identify(self, environ):
@@ -92,6 +93,8 @@
     def challenge(self, environ, status, app_headers, forget_headers):
         # heck yeah.
         form = self.formbody or _DEFAULT_FORM
+        if self.formcallable is not None:
+            form = self.formcallable(environ)
         def auth_form(environ, start_response):
             content_length = CONTENT_LENGTH.tuples(str(len(form)))
             content_type = CONTENT_TYPE.tuples('text/html')


More information about the Repoze-checkins mailing list