[pmwiki-users-de] CondAuth und if auth
Michael Engelke
PmWiki at MEngelke.de
Di Jun 16 10:41:28 CDT 2009
Sebastian Schneider schrieb:
> danke für Deine Mail. Deine Implementierung läuft bei mir bis auf eine
> kleine Ausnahme ohne Probleme:
>
Ganz Tidy ist die Funktion auch nicht. Bei <img ...> fehlt noch der "/"
am Ende - also: <img ... />
> Ich frage mich allerdings, warum Du das mit dem * gelöst hast? Kann man
> das nicht einfach so machen, dass jeder Link automatisch geprüft wird?
>
Das geht, aber dazu muss man jeden Aufruf in der stdmarkup.php abfangen
und durch einen eigenen ersetzen!
Für mich war die *-Methode einfacher - Okay - ich war nur zu faul dazu...
> Hat das Nachteile?
>
Wenn man mist baut, geht nichts mehr... (In den letzten 2 Minuten habe
ich mein komplettes Test-Wiki lahm gelegt...)
> @all: Falls mir noch jemand das Problem mit CondAuth erklären kann, wäre
> ich sehr dankbar.
>
Ich habe mir mal kurz den Quellcode dazu angesehen:
function CondAuth($pagename, $condparm) {
@list($level, $pn) = explode(' ', $condparm, 2);
$pn = ($pn > '') ? MakePageName($pagename, $pn) : $pagename;
return (boolean)RetrieveAuthPage($pn, $level, false, READPAGE_CURRENT);
}
Also den ersten Parameter $pagename solltest Du mit der Default-Seite
ersetzen also z.B. "$DefaultGroup.$DefaultName" UND die Angabe MUSS
korrekt sein!
der zweite wird hier interessanter: Es wird nach einer Levelangabe und
der Ziel-Seite verlangt getrennt durch ein Leerzeichen.
Die Variable $pn wird dann mit $pagename vervollständigt also kürzel wie
"Group/" "Name" werden in "Group.Name" ersetzt und das wird an
RetrieveAuthPage übergeben.
Der Testaufruf sieht wie folgt aus:
echo (CondAuth("$DefaultGroup.$DefaultName","read Target.Page")) ?
"true" : "false";
das selbe würde auch mit RetrieveAuthPage gehen:
echo
((boolean)RetrieveAuthPage(MakePageName("$DefaultGroup.$DefaultName",
"Target.Page"), "read", false, READPAGE_CURRENT)) ? "true" : "false";
MfG Michael Engelke
--
eMail: PmWiki at MEngelke.de ICQ: 267544462 Homepage: wiki.MEngelke.de