[Catalyst] process a restored request

Steve steve at matsch.com
Wed Aug 4 20:10:12 GMT 2010


Thanks so much!  I'm surprised this hasn't come up more often, as it 
seems such a common thing
for an application to allow for.  FWIW, I think this would make an 
excellent tutorial, perhaps for
next advent calendar, or even the next Catalyst book! :-)

On 8/4/2010 3:09 PM, Bill Moseley wrote:
>
>
> On Wed, Aug 4, 2010 at 11:22 AM, Steve <steve at matsch.com 
> <mailto:steve at matsch.com>> wrote:
>
>     Original post:
>     http://www.mail-archive.com/catalyst@lists.scsys.co.uk/msg01222.html
>
>     My apologies for rehashing this old post, but this is such a
>     *nice* thing to do for users that
>     I'm sort of surprised the solution hasn't been implemented as a
>     plugin or something, at least
>     so far as I can tell...
>
>     I'm trying to implement this elegant solution, but am getting
>     stuck with the
>
>     'just dump any POST data back out into
>     hidden fields in the login form, don't change the URL, and have
>     the login
>     form processed in a forward() from auto or similar rather than doing a
>     detach' part.
>
>
> I think the suggestion was in auto always check if authenticated.  If 
> not authenticated, then attempt to authenticate with existing form 
> data (e.g. if a username and password have been posted).  if that 
> succeeds then just continue on to the requested action.
>
> If cannot authenticate then display a login form but also include all 
> other parameters that were posted in hidden fields.  Set the action to 
> post back to the original action.
>
> Repeat.
>
> You probably want to track the original request method (GET POST PUT 
> DELETE) so that when the form is submitted (and finally authenticated) 
> your action sees the original request method.
>
> If there's upload data then you would need to handle that additionally.
>
>
>     My questions are as follows:
>     What hidden field or fields are in the login form?
>
>
> One for each posted parameter.
>
>     Where in the code sample are the items stashed? (or are they stored
>     elsewhere?)
>
>
> When rendering the form.  You are using the client as a store.
>
>     Where in the code sample do we pick up after successful
>     authentication in order to (forward, detach, redirect - pick one
>     or supply alt.)?
>
>
> You don't.  if the original post was to /user (e.g. to create a new 
> user) then the "login" form looks just like your normal login form, 
> but the action is a POST to /user.
>
>
> -- 
> Bill Moseley
> moseley at hank.org <mailto:moseley at hank.org>
>
>
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/
>    
>
>
>
> No virus found in this incoming message.
> Checked by AVG - www.avg.com
> Version: 9.0.851 / Virus Database: 271.1.1/3050 - Release Date: 08/04/10 00:45:00
>
>    



More information about the Catalyst mailing list