[pmwiki-users-de] CondAuth und if auth

Sebastian Schneider sesc at unibw.de
Di Jun 16 09:42:21 CDT 2009


Hallo Michael,

danke für Deine Mail. Deine Implementierung läuft bei mir bis auf eine
kleine Ausnahme ohne Probleme:
Und zwar, funktionieren Links der Art:

[[wiki.page|* +]]

nicht, wenn zwischen dem * und dem + ein Leerfeld ist. Daher habe ich
das Markup mal angepasst:

Markup('[[|*','<[[|',"/(?>\\[\\[([^|\\]]+))\\|\\s*\\*\\s*(.*?)\\s*]]/e","Keep(LockTargetLink('$1','$2'),'L')");

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?
Hat das Nachteile?

@all: Falls mir noch jemand das Problem mit CondAuth erklären kann, wäre
ich sehr dankbar.

Viele Grüsse,

Sebastian

Michael Engelke schrieb:
> Sebastian Schneider schrieb:
>> Ich bin gestern auf ein kleines Problem im Zusammenhang mit CondAuth
>> gestoßen:
>>
>> Ich schreibe gerade ein "Rezept", welches -ähnlich wie das
>> ExternalLinks-Rezept hinter einem Link ein kleines Schloss-Symbol
>> anzeigt, wenn die Seite zum Lesen durch ein Passwort geschützt ist.
>>   
>
> Klingt interessant!
>
>> Das Problem bei obiger Methode ist, dass CondAuth immer true
>> zurückliefert, unabhängig davon ob ich das Passwort auf der betreffenden
>> Seite bereits eingegeben habe.
>>   
>
> Ich selber habe "CondAuth" nie genutzt. Ich nutze für sowas
> "RetrieveAuthPage" (Wird von CondAuth ebenfalls mitgenutzt)
> Doku dazu:
> http://article.gmane.org/gmane.comp.web.wiki.pmwiki.user/12493/match=retrieveauthpage
>
>> Danke schonmal für Eure Tipps,
>>   
>
> Da ich deine Idee recht interessant finde, habe ich diese Funktion mal
> selber schnell für mich umgesetzt.
>
> Aufruf:
> [[page|*]] für page
> [[wiki.page|*]] für Wiki.Page
> [[wiki.page|*Name]] für Name
> [[wiki.page|*+]] für Titel (von wiki.page)
>
> ## [[target |*wiki.page]] target links
> Markup('[[|*','<[[|',"/(?>\\[\\[([^|\\]]+))\\|\\s*\\*(.*?)\\s*]]/e","Keep(LockTargetLink('$1','$2'),'L')");
> function LockTargetLink($link,$name) {
>  $page =
> MakePagename("$GLOBALS[DefaultGroup].$GLOBALS[DefaultName]",$link);
>  if($name == '')
>   $name = (preg_match('/[.\/]/',$link)) ? $page : $link;
>  elseif($name == '+')
>   $name = PageVar($page,'$Title');
>  $html = MakeLink($pagename,$page,$name);
>  if(!RetrieveAuthPage($page, 'read', false, READPAGE_CURRENT))
>   $html .= "&nbsp;<img src='$GLOBALS[PubDirUrl]/icons/lock.png'>";
>  return Keep($html);
> }
>
> MfG Michael Engelke
> -- 
> eMail: PmWiki at MEngelke.de      ICQ: 267544462      Homepage: wiki.MEngelke.de
>