def _create_form(request): _ = request.getText url = request.page.url(request) ret = html.FORM(action=url) ret.append(html.INPUT(type='hidden', name='action', value='recoverpass')) lang_attr = request.theme.ui_lang_attr() ret.append(html.Raw('<div class="userpref"%s>' % lang_attr)) tbl = html.TABLE(border="0") ret.append(tbl) ret.append(html.Raw('</div>')) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append(html.Text( _("Username"))))) row.append(html.TD().append(html.INPUT(type="text", size="36", name="name"))) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append(html.Text(_("Email"))))) row.append(html.TD().append( html.INPUT(type="text", size="36", name="email"))) row = html.TR() tbl.append(row) row.append(html.TD()) td = html.TD() row.append(td) td.append( html.INPUT(type="submit", name="account_sendmail", value=_('Mail me my account data'))) return unicode(ret)
def _create_token_form(request, name=None, token=None): _ = request.getText url = request.page.url(request) ret = html.FORM(action=url) ret.append(html.INPUT(type='hidden', name='action', value='recoverpass')) lang_attr = request.theme.ui_lang_attr() ret.append(html.Raw('<div class="userpref"%s>' % lang_attr)) tbl = html.TABLE(border="0") ret.append(tbl) ret.append(html.Raw('</div>')) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append( html.Text(_("Recovery token"))))) value = token or '' row.append(html.TD().append( html.INPUT(type='text', size="36", name="token", value=value))) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append(html.Text( _("Username"))))) value = name or '' row.append(html.TD().append( html.INPUT(type='text', size="36", name="name", value=value))) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append( html.Text(_("New password"))))) row.append(html.TD().append( html.INPUT(type="password", size="36", name="password"))) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append( html.Text(_("New password (repeat)"))))) row.append(html.TD().append( html.INPUT(type="password", size="36", name="password_repeat"))) row = html.TR() tbl.append(row) row.append(html.TD()) td = html.TD() row.append(td) td.append( html.INPUT(type="submit", name="recover", value=_('Reset my password'))) return unicode(ret)
def create_form(self): """ Create the complete HTML form code. """ _ = self._ form = self.make_form( html.Text( _('As a superuser, you can temporarily ' 'assume the identity of another user.'))) ticket = wikiutil.createTicket(self.request) self.make_row(_('Select User'), [self._user_select()], valign="top") form.append( html.INPUT(type="hidden", name="ticket", value="%s" % ticket)) if not self._only: buttons = [ html.INPUT(type="submit", name="select_user", value=_('Select User')), ' ', ] else: buttons = [] buttons.append( html.INPUT(type="submit", name="cancel", value=_('Cancel'))) self.make_row('', buttons) return unicode(form)
def makeSelection(name, values, selectedval=None, size=1, multiple=False, enabled=True): """ Make a HTML <select> element named `name` from a value list. The list can either be a list of strings, or a list of (value, label) tuples. `selectedval` is the value that should be pre-selected. """ from MoinMoin.widget import html result = html.SELECT(name=name, size="%d" % int(size), multiple=multiple, disabled=not enabled) for val in values: if not isinstance(val, type(())): val = (val, val) result.append( html.OPTION(value=val[0], selected=(val[0] == selectedval)).append( html.Text(val[1]))) return result
def create_form(self, create_only=False, recover_only=False): """ Create the complete HTML form code. """ _ = self._ form = self.make_form( html.Text( _("To change your password, " "enter a new password twice."))) self.make_row(_('Password'), [html.INPUT(type="password", size=36, name="password1")]) self.make_row(_('Password repeat'), [html.INPUT(type="password", size=36, name="password2")]) ticket = wikiutil.createTicket(self.request) form.append( html.INPUT(type="hidden", name="ticket", value="%s" % ticket)) # Add buttons self.make_row('', [ html.INPUT(type="submit", name='save', value=_("Change password")), ' ', html.INPUT(type="submit", name='cancel', value=_("Cancel")), ]) return unicode(form)
def testCompositeElements(self): """widget.html: append to and extend composite element""" html._SORT_ATTRS = 1 element = html.P() actions = ( # action, data, expected (element.append, html.Text('Text & '), '<p>Text & </p>'), (element.append, html.Text('more text. '), '<p>Text & more text. </p>'), (element.extend, (html.Text('And then '), html.Text('some.')), '<p>Text & more text. And then some.</p>'), ) for action, data, expected in actions: action(data) result = unicode(element) assert result == expected
def _create_prefs_page(request, sel=None): _ = request.getText plugins = wikiutil.getPlugins('userprefs', request.cfg) ret = html.P() ret.append(html.Text(_("Please choose:"))) ret.append(html.BR()) items = html.UL() ret.append(items) for sub in plugins: if sub in request.cfg.userprefs_disabled: continue cls = wikiutil.importPlugin(request.cfg, 'userprefs', sub, 'Settings') obj = cls(request) if not obj.allowed(): continue url = request.page.url(request, {'action': 'userprefs', 'sub': sub}) lnk = html.LI().append(html.A(href=url).append(html.Text(obj.title))) items.append(lnk) return unicode(ret)
def _oidlist(self): _ = self.request.getText form = self._make_form() for oid in self.request.user.openids: name = "rm-%s" % hash_new('sha1', oid).hexdigest() form.append(html.INPUT(type="checkbox", name=name, id=name)) form.append(html.LABEL(for_=name).append(html.Text(oid))) form.append(html.BR()) self._make_row(_("Current OpenIDs"), [form], valign='top') label = _("Remove selected") form.append(html.BR()) form.append(html.INPUT(type="submit", name="remove", value=label))
def _create_form(request): _ = request.getText url = request.page.url(request) ret = html.FORM(action=url) ret.append( html.INPUT(type='hidden', name='action', value='CreateNewAccount')) lang_attr = request.theme.ui_lang_attr() ret.append(html.Raw('<div class="userpref"%s>' % lang_attr)) tbl = html.TABLE(border="0") ret.append(tbl) ret.append(html.Raw('</div>')) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append(html.Text(_("Name"))))) cell = html.TD() row.append(cell) cell.append(html.INPUT(type="text", size="36", name="name")) cell.append(html.Text(' ' + _("(Use FirstnameLastname)"))) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append(html.Text( _("Password"))))) row.append(html.TD().append( html.INPUT(type="password", size="36", name="password1"))) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append( html.Text(_("Password repeat"))))) row.append(html.TD().append( html.INPUT(type="password", size="36", name="password2"))) row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append(html.Text(_("Email"))))) row.append(html.TD().append( html.INPUT(type="text", size="36", name="email"))) textcha = TextCha(request) if textcha.is_enabled(): row = html.TR() tbl.append(row) row.append(html.TD().append(html.STRONG().append( html.Text(_('TextCha (required)'))))) td = html.TD() if textcha: td.append(textcha.render()) row.append(td) row = html.TR() tbl.append(row) row.append(html.TD()) td = html.TD() row.append(td) td.append( html.INPUT(type="submit", name="create", value=_('Create Profile'))) return unicode(ret)
def _trust_root_list(self): _ = self.request.getText form = self._make_form() for root in self.request.user.openid_trusted_roots: display = base64.decodestring(root) name = 'rm-%s' % root form.append(html.INPUT(type="checkbox", name=name, id=name)) form.append(html.LABEL(for_=name).append(html.Text(display))) form.append(html.BR()) self._make_row(_("Trusted websites"), [form], valign='top') label = _("Remove selected") form.append(html.BR()) form.append(html.INPUT(type="submit", name="remove", value=label))
def create_form(self): """ Create the complete HTML form code. """ _ = self._ self._form = self.make_form( _('Select the events you want to be notified about.')) self._form.append( html.INPUT(type="hidden", name="action", value="userprefs")) self._form.append( html.INPUT(type="hidden", name="handler", value="prefs")) ticket = wikiutil.createTicket(self.request) self._form.append( html.INPUT(type="hidden", name="ticket", value="%s" % ticket)) if (not (self.cfg.mail_enabled and self.request.user.email) and not (self.cfg.jabber_enabled and self.request.user.jid)): self.make_row('', [ html.Text( _("Before you can be notified, you need to provide a way" " to contact you in the general preferences.")) ]) self.make_row( '', [html.INPUT(type="submit", name="cancel", value=_("Cancel"))]) return unicode(self._form) self.make_row(_('Subscribed events'), [self._event_select()]) # Get list of subscribe pages, DO NOT sort! it should # stay in the order the user entered it in his input # box. notifylist = self.request.user.getSubscriptionList() self.make_row(html.Raw( _('Subscribed wiki pages<<BR>>(one regex per line)', wiki=True)), [ html.TEXTAREA(name="subscribed_pages", rows="6", cols="50").append('\n'.join(notifylist)), ], valign="top") # Add buttons self.make_row('', [ html.INPUT(type="submit", name="save", value=_("Save")), ' ', html.INPUT(type="submit", name="cancel", value=_("Cancel")) ]) return unicode(self._form)
def testCreate(self): """widget.html: creating html widgets TO DO: add tests for all elements by HTML 4 spec. """ tests = ( # description, call, expected ('Create text', html.Text('<br> &'), '<br> &'), ('Create raw html', html.Raw('<br> &'), '<br> &'), ('Create br', html.BR(), '<br>'), ('Create hr', html.HR(), '<hr>'), ('Create p', html.P(), '<p></p>'), ) for description, obj, expected in tests: result = unicode(obj) assert result == expected
def create_form(self, create_only=False, recover_only=False): r = self.request ss = self.cfg.session_service format_time = lambda x: self.request.user.getFormattedDateTime( x) if x else x form = self.make_form(html.Text("Active sessions for your account")) ticket = wikiutil.createTicket(self.request) form.append( html.INPUT(type="hidden", name="ticket", value="%s" % ticket)) self._table.append(html.TR().extend([ html.TD().extend([""]), html.TD().extend([html.B().append("From IP")]), html.TD().extend([html.B().append("Login Date")]), html.TD().extend([html.B().append("Expiration")]), html.TD().extend([html.B().append("User Agent")]), ])) for sid in ss.get_all_session_ids(r): session = ss.get_session(r, sid) if session.get("user.id") != r.user.id: continue self._table.append(html.TR().extend([ html.TD().extend( [html.INPUT(type="checkbox", name="session.%s" % sid)]), html.TD().extend([session.get("from_ip")]), html.TD().extend([format_time(session.get("started"))]), html.TD().extend([format_time(session.get("expires"))]), html.TD().extend([session.get("from_ua")]), ])) form.append( unicode( html.INPUT(type="submit", name='save', value="Delete Sessions"))) form.append( unicode(html.INPUT(type="submit", name='cancel', value="Cancel"))) #form.append(repr(r.in_headers)) return unicode(form)
def show_decide_page(self, identity, username, openidreq): request = self.request _ = self._ if not request.user.valid or username != request.user.name: request.makeForbidden(403, _('''You need to manually go to your OpenID provider wiki and log in before you can use your OpenID. MoinMoin will never allow you to enter your password here. Once you have logged in, simply reload this page.''')) return request.theme.send_title(_("OpenID Trust verification"), pagename=request.page.page_name) # Start content (important for RTL support) request.write(request.formatter.startContent("content")) request.write(request.formatter.paragraph(1)) request.write(_('The site %s has asked for your identity.') % openidreq.trust_root) request.write(request.formatter.paragraph(0)) request.write(request.formatter.paragraph(1)) request.write(_(''' If you approve, the site represented by the trust root below will be told that you control the identity URL %s. (If you are using a delegated identity, the site will take care of reversing the delegation on its own.)''') % openidreq.identity) request.write(request.formatter.paragraph(0)) form = html.FORM(method='POST', action=request.page.url(request)) form.append(html.INPUT(type='hidden', name='action', value='serveopenid')) form.append(html.INPUT(type='hidden', name='openid.identity', value=openidreq.identity)) form.append(html.INPUT(type='hidden', name='openid.return_to', value=openidreq.return_to)) form.append(html.INPUT(type='hidden', name='openid.trust_root', value=openidreq.trust_root)) form.append(html.INPUT(type='hidden', name='openid.mode', value=openidreq.mode)) form.append(html.INPUT(type='hidden', name='name', value=username)) nonce = randomString(32, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789') form.append(html.INPUT(type='hidden', name='nonce', value=nonce)) request.session['openidserver.nonce'] = nonce table = html.TABLE() form.append(table) tr = html.TR() table.append(tr) tr.append(html.TD().append(html.STRONG().append(html.Text(_('Trust root'))))) tr.append(html.TD().append(html.Text(openidreq.trust_root))) tr = html.TR() table.append(tr) tr.append(html.TD().append(html.STRONG().append(html.Text(_('Identity URL'))))) tr.append(html.TD().append(html.Text(identity))) tr = html.TR() table.append(tr) tr.append(html.TD().append(html.STRONG().append(html.Text(_('Name'))))) tr.append(html.TD().append(html.Text(username))) tr = html.TR() table.append(tr) tr.append(html.TD().append(html.STRONG().append(html.Text(_('Remember decision'))))) td = html.TD() tr.append(td) td.append(html.INPUT(type='checkbox', name='remember', value='yes')) td.append(html.Text(_('Remember this trust decision and don\'t ask again'))) tr = html.TR() table.append(tr) tr.append(html.TD()) td = html.TD() tr.append(td) td.append(html.INPUT(type='submit', name='approve', value=_("Approve"))) td.append(html.INPUT(type='submit', name='dontapprove', value=_("Don't approve"))) request.write(unicode(form)) request.write(request.formatter.endContent()) request.theme.send_footer(request.page.page_name) request.theme.send_closing_html()