[Catalyst] Multiple chaining to same action ...

Kiffin Gish kiffin.gish at planet.nl
Tue Feb 16 09:59:35 GMT 2010


That's a good question. According to the specs:

1. user's will be able to reset their password and optionally have an
email notification sent to them:

=Reset User Password Form=
(Users which are logged in)
    - password: old password
    - password: new password
    - password: new password (confirm)
    - checkbox: send notification email

2. user's who have forgotten their password and cannot login can have
their password reset and sent to them:

=Recover Password Form for User=
(Users which cannot login)
    - text: username
    - email: email address

3. for users unable to recover password in 2, admin should be able to
reset any user's password and optionally have an email notification sent
to the user:

=Recover Password Form for Admin=
(Users which are stuck)
    - password: new password
    - passsword: new password (confirm)
    - checkbox: send notification email

4. For reqs. 2 and 3, the user will be required to change password
before doing anything else, security.

On Mon, 2010-02-15 at 23:14 +0200, Octavian Rasnita wrote:
> From: "Kiffin Gish" <kiffin.gish at planet.nl>
> > In my application, users are allowed to edit only their own settings
> > like this:
> >
> > /account/id/client/settings/edit
> >
> > | /role/*/settings/edit | /auth (0)                       |
> > |                       | -> /role/base (1)               |
> > |                       | -> /role/settings/crud/base (0) |
> > |                       | => /role/settings/crud/edit     |
> >
> > # Controller::Role
> > sub base : Chained('/auth') PathPart('role') CaptureArgs(1) {
> >    my ( $self, $c, $id ) = @_;
> >
> >    # Get the user if possible.
> >    my $user = $c->model('DB::User')->find($id);
> >
> >    # Make sure that the user is indeed this user.
> >    $c->detach('/error_403') unless $c->user->id == $id;
> >
> >    # Save the user in the stash.
> >    $c->stash( user => $user );
> > }
> 
> Why do you need this subroutine?
> It should be reached only by the authenticated users, and if somebody 
> reached here, you can just get his/her user id from $c->user->get('id') and 
> you can get this information in the other subroutines also.
> 
> Octavian
> 
> 
> _______________________________________________
> 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/


-- 
Kiffin Gish <kiffin.gish at planet.nl>
Gouda, The Netherlands




More information about the Catalyst mailing list