[wiki/macro] Ajout d'une macro pour montrer toutes les pages qui ont des ACL spécifiées.
This commit is contained in:
parent
2224da31e9
commit
a3715746cf
1 changed files with 53 additions and 0 deletions
53
wiki/macro/AllPagesWithACL.py
Normal file
53
wiki/macro/AllPagesWithACL.py
Normal file
|
@ -0,0 +1,53 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
MoinMoin - AllPagesWithACL Macro
|
||||
|
||||
@copyright: 2007 Alexander "Loki" Agibalov
|
||||
@license: GNU GPL, see COPYING for details.
|
||||
|
||||
changes:
|
||||
12.2007 - conversion to new syntax by Bolesław Kulbabiński
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
from MoinMoin.Page import Page
|
||||
from MoinMoin import wikiutil
|
||||
|
||||
def getAcl(request, pagename):
|
||||
pg = Page(request, pagename)
|
||||
pi = pg.get_pi()
|
||||
ret = pi["acl"].getString()
|
||||
if ret == '':
|
||||
ret = "not defined"
|
||||
return ret
|
||||
|
||||
|
||||
def macro_AllPagesWithACL(macro, args):
|
||||
html = "<p><b>All pages:</b><br>"
|
||||
all = {}
|
||||
pages = macro.request.rootpage.getPageList()
|
||||
# pages = macro.request.rootpage.getPageList(filter = re.compile("^WikiSandBox").match)
|
||||
html += "Total: %s pages </p>" % str(len(pages))
|
||||
|
||||
for pagename in pages:
|
||||
all[Page(macro.request, pagename).link_to(macro.request)] = getAcl(macro.request, pagename)
|
||||
|
||||
html += "<table>"
|
||||
all1 = sorted(all.items())
|
||||
for pg, ac in all1:
|
||||
html += "<tr><td>%s</td>" % pg
|
||||
html += "<td>%s</td></tr>" % ac
|
||||
html += "</table>"
|
||||
|
||||
return macro.formatter.rawHTML(html)
|
||||
|
||||
|
||||
def execute(macro, args):
|
||||
try:
|
||||
return wikiutil.invoke_extension_function(
|
||||
macro.request, macro_AllPagesWithACL, args, [macro])
|
||||
except ValueError, err:
|
||||
return macro.request.formatter.text(
|
||||
"<<AllPagesWithACL: %s>>" % err.args[0])
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue