[Catalyst] Best way to validate Chained actions?

Matt S Trout dbix-class at trout.me.uk
Thu Sep 13 14:56:06 GMT 2007


On Thu, Sep 13, 2007 at 08:41:24AM -0400, Christopher H. Laco wrote:
> Micah Jaffe wrote:
> > I'm trying to figure out the best[*] way to validate Chained actions at
> > various points along the action chain.  By validate, I mean "check if
> > the action should proceed or bomb out."  Validation is not the same as
> > authentication; I may be logged in but I may not have permissions to do
> > certain things.  It may also mean proceeding is not possible because
> > there is some bad data introduced in one of the links.  Let's take a
> > simple chain where I want to check whether or not a user can perform
> > basic CRUD type things on our data.
> > Given two paths:
> > 
> > /bigthing/<id>
> > /bigthing/<id>/edit
> > 
> > I was building this chain as:
> > 
> > load-bigthing-data -> check_read -> view
> >                                  -> check_update -> edit
> > 
> > Now this gets convoluted when I want to act on sub part of bigthing. 
> > Say we have action paths that resemble something like:
> > 
> > /bigthing/<id>/smallthing/<id_2>
> > /bigthing/<id>/smallthing/<id_2>/edit
> 
> This brings me to a related question that always bugs the hell out of me
> about using Chained.
> 
> Right now, if you use PathPrefix
> (http://use.perl.org/~LTjake/journal/31738), you end up with a
> controller that can be subclassed and renamed without changing any code.
> 
> In other words, ::BigThing could be renamed to MyThing, the chained uri
> follow suit from /bigthing/ to /smallthing/ and everyone is happy.
> 
> The minute you add a child class into the mix (SmallThing), you have to
>  hardcode Chained in SmallThing with the name/private/path pointing to
> BigThing.

Somebody needs to implement :Chained(../something).

Given the number of things I'm working on atm, it's unlikely to be me.

Patches welcome :)

-- 
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director    Want a managed development or deployment platform?
 Shadowcat Systems Ltd.  Contact mst (at) shadowcatsystems.co.uk for a quote
http://chainsawblues.vox.com/                    http://www.shadowcat.co.uk/ 



More information about the Catalyst mailing list