[Catalyst] Some guidance needed please
Matt S Trout
dbix-class at trout.me.uk
Thu Sep 13 15:13:45 GMT 2007
On Thu, Sep 13, 2007 at 10:27:04AM +0100, 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)?
^^ BLAM!
Why not just have it as
$user->_add_to_used_passwords
and then hook that into $user->insert + ->update ?
Perhaps better still, why not just make this a trigger? (unless you're using
MySQL, in which case s/make this a trigger/use a database/ :)
--
Matt S Trout Need help with your Catalyst or DBIx::Class project?
Technical Director Want a managed development or deployment platform?
Shadowcat Systems Ltd. Contact mst (at) shadowcatsystems.co.uk for a quote
http://chainsawblues.vox.com/ http://www.shadowcat.co.uk/
More information about the Catalyst
mailing list