~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to MoinMoin/userform/admin.py

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mfrom: (0.9.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20080622211713-fpo2zrq3s5dfecxg
Tags: 1.7.0-3
Simplify /etc/moin/wikilist format: "USER URL" (drop unneeded middle
CONFIG_DIR that was wrongly advertised as DATA_DIR).  Make
moin-mass-migrate handle both formats and warn about deprecation of
the old one.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# -*- coding: iso-8859-1 -*-
 
2
"""
 
3
    MoinMoin - User account administration
 
4
 
 
5
    @copyright: 2001-2004 Juergen Hermann <jh@web.de>,
 
6
                2003-2007 MoinMoin:ThomasWaldmann
 
7
                2007 MoinMoin:ReimarBauer
 
8
    @license: GNU GPL, see COPYING for details.
 
9
"""
 
10
from MoinMoin import user, wikiutil
 
11
from MoinMoin.util.dataset import TupleDataset, Column
 
12
from MoinMoin.Page import Page
 
13
 
 
14
 
 
15
def do_user_browser(request):
 
16
    """ Browser for SystemAdmin macro. """
 
17
    _ = request.getText
 
18
 
 
19
    data = TupleDataset()
 
20
    data.columns = [
 
21
        Column('name', label=_('Username')),
 
22
        Column('groups', label=_('Member of Groups')),
 
23
        Column('email', label=_('Email')),
 
24
        Column('jabber', label=_('Jabber')),
 
25
        Column('action', label=_('Action')),
 
26
    ]
 
27
 
 
28
    isgroup = request.cfg.cache.page_group_regexact.search
 
29
    groupnames = request.rootpage.getPageList(user='', filter=isgroup)
 
30
 
 
31
    # Iterate over users
 
32
    for uid in user.getUserList(request):
 
33
        account = user.User(request, uid)
 
34
 
 
35
        grouppage_links = ', '.join([Page(request, groupname).link_to(request)
 
36
                                     for groupname in groupnames
 
37
                                     if request.dicts.has_member(groupname, account.name)])
 
38
 
 
39
        userhomepage = Page(request, account.name)
 
40
        if userhomepage.exists():
 
41
            namelink = userhomepage.link_to(request)
 
42
        else:
 
43
            namelink = wikiutil.escape(account.name)
 
44
 
 
45
        if account.disabled:
 
46
            enable_disable_link = request.page.link_to(
 
47
                                    request, text=_('Enable user'),
 
48
                                    querystr={"action": "userprofile",
 
49
                                              "name": account.name,
 
50
                                              "key": "disabled",
 
51
                                              "val": "0",
 
52
                                             },
 
53
                                    rel='nofollow')
 
54
            namelink += " (%s)" % _("disabled")
 
55
        else:
 
56
            enable_disable_link = request.page.link_to(
 
57
                                    request, text=_('Disable user'),
 
58
                                    querystr={"action": "userprofile",
 
59
                                              "name": account.name,
 
60
                                              "key": "disabled",
 
61
                                              "val": "1",
 
62
                                             },
 
63
                                    rel='nofollow')
 
64
 
 
65
        recoverpass_link = request.page.link_to(
 
66
                            request, text=_('Mail account data'),
 
67
                            querystr={"action": "recoverpass",
 
68
                                      "email": account.email,
 
69
                                      "account_sendmail": "1",
 
70
                                      "sysadm": "users", },
 
71
                            rel='nofollow')
 
72
 
 
73
        if account.email:
 
74
            email_link = (request.formatter.url(1, 'mailto:' + account.email, css='mailto') +
 
75
                          request.formatter.text(account.email) +
 
76
                          request.formatter.url(0))
 
77
        else:
 
78
            email_link = ''
 
79
 
 
80
        if account.jid:
 
81
            jabber_link = (request.formatter.url(1, 'xmpp:' + account.jid, css='mailto') +
 
82
                           request.formatter.text(account.jid) +
 
83
                           request.formatter.url(0))
 
84
        else:
 
85
            jabber_link = ''
 
86
 
 
87
        data.addRow((
 
88
            request.formatter.rawHTML(namelink),
 
89
            request.formatter.rawHTML(grouppage_links),
 
90
            email_link,
 
91
            jabber_link,
 
92
            recoverpass_link + " - " + enable_disable_link
 
93
        ))
 
94
 
 
95
    if data:
 
96
        from MoinMoin.widget.browser import DataBrowserWidget
 
97
 
 
98
        browser = DataBrowserWidget(request)
 
99
        browser.setData(data)
 
100
        return browser.toHTML()
 
101
 
 
102
    # No data
 
103
    return ''
 
104