[html-formfu] applying a filter

David Schmidt davewood at gmx.at
Thu Mar 19 15:36:48 GMT 2009


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ţă <orasnita at 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" <davewood at gmx.at>
> To: "HTML Form Creation,Rendering and Validation Framework"
> <html-formfu at 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 <orasnita at 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 at 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 at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
>
> _______________________________________________
> HTML-FormFu mailing list
> HTML-FormFu at lists.scsys.co.uk
> http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu
>



-- 
David Schmidt   |   http://www.fm5.at



More information about the HTML-FormFu mailing list