1 from MoinMoin import config, user, util, wikiutil
   2 from MoinMoin.widget import html
   3 
   4 _debug = 1
   5 
   6 def execute(macro, args):
   7     return Login(macro.request).asHTML()
   8 
   9 #############################################################################
  10 ### Form Generation
  11 #############################################################################
  12 
  13 class Login:
  14     """ User login. """
  15 
  16     def __init__(self, request):
  17         """ Initialize user settings form.
  18         """
  19         self.request = request
  20         self._ = request.getText
  21         self.cfg = request.cfg
  22 
  23     def make_form(self):
  24         """ Create the FORM, and the TABLE with the input fields
  25         """
  26         sn = self.request.getScriptname()
  27         pi = self.request.getPathinfo()
  28         action = u"%s%s" % (sn, pi)
  29         self._form = html.FORM(action=action)
  30         self._table = html.TABLE(border="0")
  31 
  32         # Use the user interface language and direction
  33         lang_attr = self.request.theme.ui_lang_attr()
  34         self._form.append(html.Raw('<div class="userpref"%s>' % lang_attr))
  35 
  36         self._form.append(html.INPUT(type="hidden", name="action", value="login"))
  37         self._form.append(self._table)
  38         self._form.append(html.Raw("</div>"))
  39 
  40 
  41     def make_row(self, label, cell, **kw):
  42         """ Create a row in the form table.
  43         """
  44         self._table.append(html.TR().extend([
  45             html.TD(**kw).extend([html.B().append(label), '   ']),
  46             html.TD().extend(cell),
  47         ]))
  48 
  49 
  50     def asHTML(self):
  51         """ Create the complete HTML form code. """
  52         _ = self._
  53         self.make_form()
  54 
  55         buttons = [
  56             ('login', _('Login')),
  57         ]
  58 
  59         self.make_row(_('Name'), [
  60             html.INPUT(
  61                 type="text", size="32", name="username", value=self.request.user.name
  62             ),
  63         ])
  64 
  65         self.make_row(_('Password'), [
  66             html.INPUT(
  67                 type="password", size="32", name="password",
  68             )
  69         ])
  70 
  71         # Add buttons
  72         button_cell = []
  73         for name, label in buttons:
  74             button_cell.extend([
  75                 html.INPUT(type="submit", name=name, value=label),
  76                 ' ',
  77             ])
  78         self.make_row('', button_cell)
  79 
  80         return unicode(self._form)

MoinMoin: RadomirsCirskis/LoginLogout/Login.py (last edited 2007-10-29 19:08:44 by localhost)