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@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/



_______________________________________________
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