And here is the relevant part from PPGK

    /**
     * Check the rights of the user for the page requested
     *
     * @throws IOException
     */
    public boolean checkAccess(String pageName, Request request, Response
response) throws IOException {
        boolean canAccess = true;


        /* Is the requested page private ? */
        Component page = componentSource.getPage(pageName);
        ProtectedPage pp =
page.getClass().getAnnotation(ProtectedPage.class);
        boolean protectedPage = pp != null;

        if (protectedPage) {
            // logger.debug("checkAccess: " + pageName);
            canAccess = false;

            // If User exists and he has the required role give him access
            if (sessionStateManager.exists(User.class)) {
                User user = sessionStateManager.get(User.class);
                canAccess = user.isSuperAdmin() || user.hasRole(pp.role());
                if (!canAccess)
                    logger.debug("User " + user + " Role " + pp.role() + "
needed by page " + pageName);
            }
        }

        /*
         * This page can't be requested by a non-authenticated user => we
redirect him to the LogIn page
         */
        if (!canAccess) {
            if (page != null) {
                // Setup Login page to redirect to the secured page after
the login
                Object obj = componentSource.getPage(Login.class);
                ILogin login = (ILogin) obj;
                login.setRedirectTo(page);
            }
            response.sendRedirect(request.getContextPath() + LOGIN_PAGE);
            return true; // Make sure to leave the chain
        }

        return false;
    }


2009/10/31 Gunnar Eketrapp <gunnar.eketr...@gmail.com>

> Hi!
>
> This morning I made a test since I suspected that it was the introduction
> of the ProtectedPageGateKeeper that hade sideeffects on the locale handling.
>
> When I removed the PPGK everyhting worked as normal!
>
> So now I am investigating why the PPGK dispacther interferes with T5's
> locale handling.
>
> A clue anyone?
>
>
> /Gunnar
>
> 2009/10/30 Gunnar Eketrapp <gunnar.eketr...@gmail.com>
>
>> Hi !
>>
>> Given these injections ...
>>
>>     @Inject
>>     private PersistentLocale persistentLocale;
>>
>>     @Inject
>>     private Locale currentLocale;
>>
>> ... what should be the value of currentLocale. I.e. after that the
>> persistent locale has been set, should curentLocale follow?
>>
>> I will conduct tests tomorrow with a minimal project but the locale
>> handling in my project is quite fucked up right now and it is driving me
>> crazy.
>>
>> I assume that it should just be to call persistentLocale.set() in an
>> action link method and after that things should work. But for me they are
>> not ...
>>
>> /Gunnar
>>
>>
>>
>> 2009/10/30 Gunnar Eketrapp <gunnar.eketr...@gmail.com>
>>
>>> Hi!
>>>
>>> The code below is not PROD ready yet. The first section is to setup input
>>> fields with label inside them.
>>> Something that our "designers" seems slick!
>>>
>>> The state locale is used it to remember the locale when called from a
>>> flash menu
>>> that "discarded" the persistent locale. The flash menu is feeded with
>>> special pages
>>> that resets the persitent locale ... and redirects to the actial page.
>>>
>>> Shit this seems messy ...
>>>
>>> Thanks for the help anyway!
>>>
>>> /Gunnar
>>>
>>>   @SetupRender
>>>     void setupComponent()
>>>     {
>>>         if (!userExists) {
>>>             username = messages.get("username");
>>>             password = messages.get("password");
>>>         } else {
>>>             username = user.getUsername();
>>>             password = messages.get("password");
>>>         }
>>>
>>>         language = currentLocale.getLanguage();
>>>
>>>         log.debug(LOGPRE + "1:
>>> TellLayout.setupComponent(currentLocale.language=" + language + ")");
>>>         if ((null == state.getLocale()) && (language != null)) {
>>>             state.setLocale(new Locale(language));
>>>             log.debug(LOGPRE + "2: TellLayout.setupComponent(state.locale
>>> initiated to " + state.getLocale() + ")");
>>>         }
>>>
>>>         if (!persistentLocale.isSet()) {
>>>             persistentLocale.set(state.getLocale());
>>>             log.debug(LOGPRE + "3:
>>> TellLayout.setupComponent(persistentLocale.set(" + persistentLocale.get() +
>>> ")");
>>>         } else {
>>>             log.debug(LOGPRE + "4:
>>> TellLayout.setupComponent(persistentLocale=" + persistentLocale.get() +
>>> ")");
>>>         }
>>>
>>>         // -- Localize account menu texts. --
>>>         createAccountMenu();
>>>
>>>     }
>>>
>>>
>>> 2009/10/30 cordenier christophe <christophe.corden...@gmail.com>
>>>
>>>> To what corresponds exactly this logs in your rendering scenario ?
>>>>
>>>> [DEBUG] components.TellLayout <<< --- TELLGAMING --- >>>: 1:
>>>> TellLayout.setupComponent(
>>>> currentLocale.language=sv)
>>>> [DEBUG] components.TellLayout <<< --- TELLGAMING --- >>>: 4:
>>>> TellLayout.setupComponent(persistentLocale=en)
>>>>
>>>>
>>>> 2009/10/30 cordenier christophe <christophe.corden...@gmail.com>
>>>>
>>>> > Sorry i have missed
>>>> >
>>>> > [DEBUG] AppModule.
>>>> > ProtectedPageGateKeeper PPGK.path=/en/tellfriends
>>>> >
>>>> >
>>>> > 2009/10/30 Gunnar Eketrapp <gunnar.eketr...@gmail.com>
>>>> >
>>>> >> Hi!
>>>> >>
>>>> >> Well I have read that page over and over ...
>>>> >>
>>>> >> I am calling persistentLocale.set() in the action link connected to
>>>> my
>>>> >> language selector.
>>>> >>
>>>> >> But for some reasons the persistentLocale is not used when rendering
>>>> ....
>>>> >>
>>>> >> The page below is rendered in swedish even if the persistentLocale is
>>>> >> english.
>>>> >>
>>>> >> [DEBUG] AppModule.ProtectedPageGateKeeper PPGK.path=/en/tellfriends
>>>> >> [DEBUG] components.TellLayout <<< --- TELLGAMING --- >>>: 1:
>>>> >> TellLayout.setupComponent(currentLocale.language=sv)
>>>> >> [DEBUG] components.TellLayout <<< --- TELLGAMING --- >>>: 4:
>>>> >> TellLayout.setupComponent(persistentLocale=en)
>>>> >>
>>>> >>
>>>> >> To this I have ...
>>>> >>
>>>> >> TellFriends_en.properties
>>>> >> TellFriends_sv.properties
>>>> >>
>>>> >> ... and "sv" is the default language.
>>>> >>
>>>> >> /Gunnar
>>>> >>
>>>> >> 2009/10/30 cordenier christophe <christophe.corden...@gmail.com>
>>>> >>
>>>> >> > Hi
>>>> >> >
>>>> >> > Have a look at 'Changing the Locale' here
>>>> >> > http://tapestry.apache.org/tapestry5.1/guide/localization.html
>>>> >> > to check if your are using the good scenario to change locale,
>>>> since
>>>> >> > Tapestry 5.1 uses URL to store Local and not a cookie (like in
>>>> 5.0.18)
>>>> >> >
>>>> >> > Christophe.
>>>> >> >
>>>> >> > 2009/10/30 Gunnar Eketrapp <gunnar.eketr...@gmail.com>
>>>> >> >
>>>> >> > > Hi!
>>>> >> > >
>>>> >> > > For some reason my pages are rendered accoring to currentLocale
>>>> and
>>>> >> not
>>>> >> > > persistentLocale.
>>>> >> > >
>>>> >> > > Is there something I should now?
>>>> >> > >
>>>> >> > > Thanks in advance,
>>>> >> > > Gunnar Eketrapp
>>>> >> > >
>>>> >> >
>>>> >>
>>>> >>
>>>> >>
>>>> >> --
>>>> >> [Hem: 08-715 59 57, Mobil: 0708-52 62 90]
>>>> >> Allévägen 2A, 132 42 Saltsjö-Boo
>>>> >>
>>>> >
>>>> >
>>>>
>>>
>>>
>>>
>>> --
>>> [Hem: 08-715 59 57, Mobil: 0708-52 62 90]
>>> Allévägen 2A, 132 42 Saltsjö-Boo
>>>
>>
>>
>>
>> --
>> [Hem: 08-715 59 57, Mobil: 0708-52 62 90]
>> Allévägen 2A, 132 42 Saltsjö-Boo
>>
>
>
>
> --
> [Hem: 08-715 59 57, Mobil: 0708-52 62 90]
> Allévägen 2A, 132 42 Saltsjö-Boo
>



-- 
[Hem: 08-715 59 57, Mobil: 0708-52 62 90]
Allévägen 2A, 132 42 Saltsjö-Boo

Reply via email to