[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
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
More information about the Catalyst