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
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
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
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)