You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Jonathan O'Connor <ni...@eircom.net> on 2009/01/16 16:42:17 UTC

Where to check that the user is logged in when rendering a page

Hi,
I have been reading the documentation, and I haven't seen what I need to 
find out: How can a page finding that the user is not logged in, it 
should jump to a login page, and optionally jump back to the requested page?

I already know how to check the session to see if a) there is a session, 
and b) that a user logged in correctly. What I need to know is:
1. What method/annotation do I need to write in my page class before the 
page renders
2. Presumably, I want to return a Page or a URL from this method, to 
redirect to the login page.
3. Should the login page take a hidden field to say which page it wants 
to go to next?

BTW, I would love to see, in one place, a list of all the methods added 
by the classloader, how it was triggered. The list I know about are:
1. Component Rendering Methods: setupRender, beginRender, 
beforeRenderTemplate, beforeRenderBody, afterRenderBody, 
afterRenderTemplate, afterRender, cleanupRender.
2. Page Lifecycle methods: pageLoaded, pageAttached, pageDetached
3. Page activation events: onActivate, onPassivate
4. Action events: onActionFromBlah, onSubmit
5. Form events: prepareForRender, prepare, prepareForSubmit, onValidate, 
onSuccess, onFailure, onSubmit
6. getters and setters of @Property annotated private attributes.

No doubt I've missed a few more.
Thanks,
Jonathan

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Where to check that the user is logged in when rendering a page

Posted by Thiago HP <th...@gmail.com>.
On Fri, Jan 16, 2009 at 2:14 PM, Jonathan O'Connor <ni...@eircom.net> wrote:
> Thiago,
> thanks very much.

You're welcome!

> b) I feel (due to the examples in the documentation) that activate should
> take a parameter as the id of some object I want to resurrect.

onActivate is a method that handles (is invoked) the activate event: a
page was requested and is about to be rendered. Receiving activation
context parameters is just a bonus. :)

> Ciao,

Ciao! (That's the Italian way to write it. Brazilians pronounce it
always the same, but write "tchau".)

-- 
Thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Where to check that the user is logged in when rendering a page

Posted by Jonathan O'Connor <ni...@eircom.net>.
Thiago,
thanks very much. That's basically what I did, and it works, but I don't 
like:
a) not having a passivate method (I have no need of one yet) and
b) I feel (due to the examples in the documentation) that activate 
should take a parameter as the id of some object I want to resurrect.

No doubt, I'll get used to it.
Ciao,
Jonathan

On 16/01/2009 15:55, Thiago HP wrote:
> On Fri, Jan 16, 2009 at 1:42 PM, Jonathan O'Connor<ni...@eircom.net>  wrote:
>    
>> Hi,
>>      
>
> Hi!
>
>    
>> I have been reading the documentation, and I haven't seen what I need to
>> find out: How can a page finding that the user is not logged in, it should
>> jump to a login page, and optionally jump back to the requested page?
>>      
>
> Use onActivate. One way to do it:
>
> @InjectPage
> private LoginPage loginPage;
>
> Object onActivate() {
>      if (user is not logged in) {
>          // you could set any properties in the login page here.
>          return loginPage;
>      }
>      else {
>          return null; // continue rendering this page normally.
>      }
> }
>
> On the other hand, if you need this behaviour to be applied to more
> than one page, a RequestFilter would be the best way, as this would
> put all the code in a single place and the pages wouldn't need to
> bother with this issues. In this mailing list you can find some
> examples, maybe in the wiki too. ;)
>
>    

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Where to check that the user is logged in when rendering a page

Posted by Thiago HP <th...@gmail.com>.
On Fri, Jan 16, 2009 at 1:42 PM, Jonathan O'Connor <ni...@eircom.net> wrote:
> Hi,

Hi!

> I have been reading the documentation, and I haven't seen what I need to
> find out: How can a page finding that the user is not logged in, it should
> jump to a login page, and optionally jump back to the requested page?

Use onActivate. One way to do it:

@InjectPage
private LoginPage loginPage;

Object onActivate() {
    if (user is not logged in) {
        // you could set any properties in the login page here.
        return loginPage;
    }
    else {
        return null; // continue rendering this page normally.
    }
}

On the other hand, if you need this behaviour to be applied to more
than one page, a RequestFilter would be the best way, as this would
put all the code in a single place and the pages wouldn't need to
bother with this issues. In this mailing list you can find some
examples, maybe in the wiki too. ;)

-- 
Thiago

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Where to check that the user is logged in when rendering a page

Posted by Joachim Van der Auwera <jo...@progs.be>.
I would recommend checking out chenillekit-access.
See http://www.chenillekit.org/chenillekit-access/index.html
Documentation is minimal, but there is an example in the source code.

Kind regards,
Joachim

Jonathan O'Connor wrote:
> Hi,
> I have been reading the documentation, and I haven't seen what I need 
> to find out: How can a page finding that the user is not logged in, it 
> should jump to a login page, and optionally jump back to the requested 
> page?
>
> I already know how to check the session to see if a) there is a 
> session, and b) that a user logged in correctly. What I need to know is:
> 1. What method/annotation do I need to write in my page class before 
> the page renders
> 2. Presumably, I want to return a Page or a URL from this method, to 
> redirect to the login page.
> 3. Should the login page take a hidden field to say which page it 
> wants to go to next?
>
> BTW, I would love to see, in one place, a list of all the methods 
> added by the classloader, how it was triggered. The list I know about 
> are:
> 1. Component Rendering Methods: setupRender, beginRender, 
> beforeRenderTemplate, beforeRenderBody, afterRenderBody, 
> afterRenderTemplate, afterRender, cleanupRender.
> 2. Page Lifecycle methods: pageLoaded, pageAttached, pageDetached
> 3. Page activation events: onActivate, onPassivate
> 4. Action events: onActionFromBlah, onSubmit
> 5. Form events: prepareForRender, prepare, prepareForSubmit, 
> onValidate, onSuccess, onFailure, onSubmit
> 6. getters and setters of @Property annotated private attributes.
>
> No doubt I've missed a few more.
> Thanks,
> Jonathan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>


-- 
Joachim Van der Auwera
PROGS bvba, progs.be


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org