# -*- coding: iso-8859-1 -*-
"""
    MoinMoin - AllPagesWithACL Macro

    Copyright (c) 2007 by Alexander "Loki" Agibalov
"""

import os
import re
from MoinMoin.Page import Page
from MoinMoin.PageEditor import PageEditor

def getAcl(request, pg):
    pged = PageEditor(request, pg)
    pagetext = pged.get_raw_body()
    search=re.compile("^#acl.*\n", re.M).search(pagetext)
    if search:
        ret=search.group()
    else:
        ret="not defined"
    return ret

def execute(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)
