sweet :) I was just about to comment on your solution for hashing the pw before update/insert but transformers seem to be what should be used for that kind of problem.
thanks 2009/3/19 Octavian Râşniţă <orasn...@gmail.com>: > I found a good solution for that, not by using a filter, but a transformer. > > But it can be done directly without creating a custom module, like: > > <element> > type Password > name password > label_xml Password<sup>*</sup>: > filter TrimEdges > constraint Required > <transformers> > type Callback > callback Digest::SHA1::sha1_hex > </transformers> > </element> > > The method Digest::SHA1::sha1_hex can be used directly as a callback method. > > Octavian > > ----- Original Message ----- From: "David Schmidt" <davew...@gmx.at> > To: "HTML Form Creation,Rendering and Validation Framework" > <html-formfu@lists.scsys.co.uk> > Sent: Thursday, March 19, 2009 4:43 PM > Subject: Re: [html-formfu] applying a filter > > > I wrote my own Filter > > lib/HTML/FormFu/Filter/myApp/Digest_SHA.pm > > package HTML::FormFu::Filter::myApp::Digest_SHA; > use strict; > use warnings; > use base 'HTML::FormFu::Filter'; > use Digest::SHA qw/sha1_hex/; > > sub filter { > my ( $self, $value, $params ) = @_; > return sha1_hex($value); > } > > 1; > > and in my create.yml > > - type: Password > name: password > filters: > - type: "myApp::Digest_SHA" > > > works fine, but since I also use the repeat_password constraint and > the filter is applied before passwords are compared I will not use > this approach and rather change the password prior to > updating/inserting into the database. > > On Sun, Jan 11, 2009 at 10:21 AM, Octavian Rasnita <orasn...@gmail.com> > wrote: >> >> Hello, >> >> I am trying to find the best way of storing an encrypted password in the >> database (when creating a new user for example). >> >> I thought that using a filter might be the best way for this and using a >> callback would be enough: >> >> <filters> >> type Callback >> callback Digest::SHA1::sha1_hex >> </filters> >> >> The single problem is that it doesn't work. >> >> Digest::SHA1::sha1_hex returns the encrypted string, so it should work, >> but >> I don't know why, it doesn't. >> >> I have also tried to use a 'use Digest::SHA1;' in MyApp.pm, even though >> without it it didn't give any error, however it still doesn't work, and >> the >> unencrypted string is inserted in the database. >> >> The code I use for inserting the user is: >> >> if ($form->submitted_and_valid) { >> my $user = $form->param_value('user'); >> my $email = $form->param_value('email'); >> my $hash = sha1_hex($user . $email . time()); >> >> my $new_user = $c->model("DB::TempUser")->new_result({hash => $hash}); >> $form->process; >> $form->model->update($new_user); >> } >> >> Am I doing something wrong, or the filter can't be used for what I want? >> >> Thanks. >> >> Octavian >> >> >> _______________________________________________ >> HTML-FormFu mailing list >> HTML-FormFu@lists.scsys.co.uk >> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu >> > > > > -- > David Schmidt | http://www.fm5.at > > _______________________________________________ > HTML-FormFu mailing list > HTML-FormFu@lists.scsys.co.uk > http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu > > _______________________________________________ > HTML-FormFu mailing list > HTML-FormFu@lists.scsys.co.uk > http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu > -- David Schmidt | http://www.fm5.at _______________________________________________ HTML-FormFu mailing list HTML-FormFu@lists.scsys.co.uk http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu