Ich stand vor dem Problem, wie ich bei Turbogears einen Test auf ein
repoze.what.predicate in einem Template durchführen kann. Ok, klingt
ein bisschen blöde :-). Eigentlich geht es nur darum, dass ich z.B. für die
Admininstratoren einen Link anzeigen möchte, für andere Benutzer nicht.
Für die Überprüfung innerhalb eines Controllers bietet Turbogears eine solche
Beschränkung durch den @require-Decorator an. Aber wie funktioniert es in
einem Template? Google sei Dank bin ich auf einige Diskussionen rund um das
Thema gestoßen und schließlich bei diesem Eintrag gelandet, welcher mich
auf das Changeset 6347 verwiesen hat.
Turbogears stellt über tg.predicates die entsprechenden tests zur Verfügung.
Und hier ein kleines Beispiel dazu:
1 | <p>${"OK" if tg.predicates.has_permission("ein_recht") else "BLOCKED"}</p> |