J'utilise un IAuthorizationStrategy
dans le portillon pour limiter l'accès à certaines pages. Cependant, j'utilise également des menus html comme celui-ci:Dans le portillon, combinez le portillon: lien avec IAuthorizationStrategy
<div class="siteMenu">
<wicket:link>
<a href="Page1.html" class="siteMenuLink">
<wicket:message key="pages.page1.title" />
</a>
<a
href="Page2.html" class="siteMenuLink">
<wicket:message key="pages.page2.title" />
</a>
<a
href="Page3.html" class="siteMenuLink">
<wicket:message key="pages.page3.title" />
</a>
</wicket:link>
</div>
, qui sont automatiquement pris et étendu en utilisant le mécanisme wicket:link
(comme ici: http://wicket.apache.org/examplenavomatic.html). Cependant, le IAuthorizationStrategy
ne peut pas autoriser une ou plusieurs de ces pages cibles, donc je peux finir avec beaucoup de liens qui conduisent à des pages "permission denied" ou beaucoup de liens désactivés (ie em tags ou similaires), ni dont c'est joli.
Je pourrais bien écrire bien sûr un IComponentInstantiationListener
qui vérifie tous les BookmarkableLinks
pour voir si leur cible est accessible par le IAuthorizationStrategy
et les rend invisibles autrement, mais je me demande s'il y a une solution hors-the-box à ce problème. Pour plus de clarté: je n'utilise que la méthode isInstantiationAuthorized()
de IAuthorizationStrategy
.
@esko: merci pour l'édition, je ne connaissais pas encore les liens intégrés. –
Pas de problème :) Rappelez-vous, ce site est construit par des programmeurs pour les programmeurs, il y a beaucoup de fonctionnalités utiles sous l'habillage de base. – Esko