[Catalyst] Some guidance needed please

Ian Docherty catalyst at iandocherty.com
Thu Sep 13 10:58:08 GMT 2007


I have found a thread on DBIx-class mailing list that throws some light 
on this using

http://search.cpan.org/~ash/DBIx-Class-0.08006/lib/DBIx/Class/Schema.pm#load_namespaces

This seems to solve the problem for putting such logic into the 
Model/Schema but would it be better to put this type of logic into a 
business logic layer? In which case how would I obtain a $schema object? 
Would I have to then pass this as a parameter to the method?

Regards
Ian


Ian Docherty wrote:
> Hi
>
> My existing Catalyst application is being extended. I want to keep a 
> record of previous passwords used by a user to prevent them being 
> re-used.
>
> I have Model 'UsedPassword' to keep track of the previous 8 (say) 
> passwords as so-
>
> package MyApp::Schema::UsedPassword;
> use strict;
> use base qw(DBIx::Class);
>
> __PACKAGE__->load_components(qw(PK::Auto Core));
> __PACKAGE__->table('used_password');
> __PACKAGE__->add_columns(qw(id user password));
> __PACKAGE__->set_primary_key('id');
>
> So, if I want a method (create_limited) to create a new UsedPassword 
> object, that ensures no more that 8 (say) passwords are stored in the 
> database (against each User) where should it go?
>
> Ideally (I think) I would like to do something like
>
>   $c->model('DBIC::UsedPassword')->create_limited({
>       user    => $user->id,
>       password => $password,
>   });
>
> but i can't see how to add it to MyApp::Schema::UsedPassword (since 
> $c->model('DBIC::UsedPassword') returns a ResultSet not a 
> MyApp::Schema::UsedPassword)
>
> Any other suggestions where to put it (polite one's only please)?
>
> Regards
> Ian
>
>
> _______________________________________________
> List: Catalyst at 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/
>




More information about the Catalyst mailing list