[Catalyst] Best way to validate Chained actions?

Christopher H. Laco claco at chrislaco.com
Thu Sep 13 13:41:24 GMT 2007


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.

Now, renaming BigThing breaks SmallThing. That sucks and I have no idea
how to fix that to make subclassing/renaming with a parent/child level
of Chained happy.

Sure, you could put all of the SmallThing chained methods into the
BigThing class, but now the method names in that class for the
SmallThing actions dirty up the class somewhat.

If any of that made sense, I'm sorry. :-)
It just bugs me that the elegantness of using PathPrefix in Chained goes
to hell when you want to attach another child level into the mix.

It also, just may be too earily in the am for me to thing without coffee.

-=3DChris


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: OpenPGP digital signature
Url : http://lists.scsys.co.uk/pipermail/catalyst/attachments/20070913/56c6=
14cf/signature.pgp


More information about the Catalyst mailing list