you can use oncomponentaction(action) { if action==component.render
return false; }

to hide any components that should not be visible.

-igor

On Tue, Aug 25, 2009 at 12:42 AM, Kees van
Dieren<keesvandie...@gmail.com> wrote:
> Hi all,
>
> We would like to hide a Panel marked with
> @AuthorizeInstantiation("RoleNotAuthorizedTo");
>
> The default behaviour is that wicket sends AccessDeniedPage.
>
> We are using wicket 1.3.7.
>
> I implemented the desired solution by duplicating the complete
> org.apache.wicket.authentication.AuthenticatedWebApplication class in our
> source tree, and changing the onUnauthorizedInstantiation method to:
>
>    public final void onUnauthorizedInstantiation(final Component component)
>    {
>        // If there is a sign in page class declared, and the unauthorized
>        // component is a page, but it's not the sign in page
>        if (component instanceof Page)
>        {
>            if (!AuthenticatedWebSession.get().isSignedIn())
>            {
>                // Redirect to intercept page to let the user sign in
>                throw new
> RestartResponseAtInterceptPageException(getSignInPageClass());
>            }
>            else
>            {
>                onUnauthorizedPage((Page)component);
>            }
>        }
>        else
>        {
>            // Kees /  IOO change: delegate to new onUnAuthorizedComponent
>            onUnautorizedComponent(component);
>        }
>    }
>
>    /**
>     *  Kees / IOO change: created delegate method
>     * @param component
>     *        a (non-page) component that user is not authorized to to
> construct.
>     */
>    protected void onUnautorizedComponent(final Component component) {
>        // The component was not a page, so throw an exception
>        throw new UnauthorizedInstantiationException(component.getClass());
>    }
>
> Our WicketApplication subclass overrides the onUnautorizedComponent with:
>    protected void onUnautorizedComponent(final Component component) {
>        component.setVisible(false);
>    }
>
> Is this the only way to achieve this? I'd like to not duplicate the complete
> class, but some kind of hook where I can implement this in.
>
> Is that possible?
>
> Thanks in advance!
>
> Best regards,
>
> Kees van Dieren
> --
> Squins | IT, Honestly
> Oranjestraat 23
> 2983 HL Ridderkerk
> The Netherlands
> Phone: +31 (0)180 414520
> Mobile: +31 (0)6 30413841
> www.squins.com
> Chamber of commerce Rotterdam: 22048547
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
For additional commands, e-mail: users-h...@wicket.apache.org

Reply via email to