def convert_user_wiki_info(request): from Sycamore import user for id in user.getUserList(request.cursor): theuser = user.User(request, id=id) request.cursor.execute("SELECT created_count, edit_count, last_page_edited, last_edit_date from users where id=%(id)s", {'id': theuser.id}) result = request.cursor.fetchone() if result: created_count, edit_count, last_page_edited, last_edit_date = result wiki_info = theuser.getWikiInfo() wiki_info.created_count = created_count wiki_info.edit_count = edit_count wiki_info.last_page_edited = last_page_edited wiki_info.last_edit_date = last_edit_date theuser.setWikiInfo(wiki_info)
def do_user_browser(request): """ Browser for SystemAdmin macro. """ from Sycamore.util.dataset import TupleDataset, Column from Sycamore.Page import Page _ = request.getText data = TupleDataset() data.columns = [ Column('id', label=('ID'), align='right'), Column('name', label=('Username')), Column('email', label=('Email')), Column('action', label=_('Action')), ] # Iterate over users for uid in user.getUserList(self.request.cursor): account = user.User(request, uid) userhomepage = Page(account.name, self.request) if userhomepage.exists(): namelink = userhomepage.link_to() else: namelink = account.name data.addRow(( request.formatter.code(1) + uid + request.formatter.code(0), request.formatter.rawHTML(namelink), request.formatter.url('mailto:' + account.email, account.email, 'external', pretty_url=1, unescaped=1), '', )) if data: from Sycamore.widget.browser import DataBrowserWidget browser = DataBrowserWidget(request) browser.setData(data) return browser.toHTML() # No data return ''
__directory__ = os.path.dirname(__file__) sys.path.extend([os.path.abspath(os.path.join(__directory__, '..', '..', '..'))]) from Sycamore import wikiutil, config, request, caching, wikidb, maintenance, buildDB, wikiacl, maintenance, user from Sycamore.Page import Page ################################################# # This script will try and guess users' timezone # values. Sets the tz to the tz of the wiki they # made the most edits on. ################################################# tzs = {'yourwikishortname':'US/Pacific'} req = request.RequestDummy() for uid in user.getUserList(req.cursor): req.cursor.execute("""SELECT users.id, count(allPages.wiki_id) as editcount, wikis.name from users, allPages, wikis where users.id=%(uid)s and users.id=allPages.userEdited and wikis.id=allPages.wiki_id group by users.id, wikis.name order by editcount desc limit 1;""", {'uid': uid}) result = req.cursor.fetchone() if result: wiki_of_most_edits = result[2] if tzs.has_key(wiki_of_most_edits): tz = tzs[wiki_of_most_edits] theuser = user.User(req, uid) theuser.tz = tz theuser.save() else: req.cursor.execute("""SELECT wikis.name from userWikiInfo, users, wikis where user_name=users.name and users.id=%(uid)s and wikis.id=userWikiInfo.wiki_id""", {'uid':uid}) result = req.cursor.fetchall() if len(result) == 1: wiki_of_creation = result[0][0] if tzs.has_key(wiki_of_creation):