I'm finally considering writing something with the Chained
dispatch type, and before I start I want to clarify how I'll
do the auth stuff.

I'm trying to refactor to simplify repeated code. What I want
to do is have something like /item/edit/23 and /user/edit/87
(repeated over many different actions and perhaps even tables,
like /catalog/user/edit/23 vs. /phonelist/user/edit/23), so
that instead of totally separate but almost identical methods
(like I have now), I'll have one thing that goes to "item"
or "user" (and/or "catalog" or "phonelist") and fills the
stash with any relevant things, so that I can have one "edit"
that does the work, but with whatever sort of table info is
appropriate.

However, I still need to have separate access levels:
/item/edit and /item/view have different needs, as do
/item/edit and /user/edit (and certainly /catalog/anything
vs. /phonelist/anything). But if I make "edit" general,
what's the good way to restrict people based on the entire
chain?

Right now I have a Root auto method making sure people are
in the system and logged in, auto methods at each controller
to make sure people are allowed to do that general thing
(e.g., deal with "item"s or "user"s), and then further checks
in each method as necessary (e.g. OK, he's logged in and he
can deal with "item"s, but can he edit them? Or, does he
own item 23 so he can edit this one item?). When my methods
become generic, how do I keep doing this?

Thanks.

Jesse Sheidlower

_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to