[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