parameter validation

View: New views
2 Messages — Rating Filter:   Alert me  

parameter validation

by Caroline Johnston :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

This isn't strictly a catalyst question, but it arose from a previous
thread,
http://lists.scsys.co.uk/pipermail/catalyst/2007-December/016329.html, on
parameter validation and the problems of code like

  my $user = $rs->create({
      is_admin => 0,
      username => $c->req->param('username'),
  });


I'm using Data::FormValidator. If I have a DFV constraint on fields that
shouldn't be multi-valued, something like:

sub is_single{
    my $c = shift;
    return sub{
        my $dfv = shift;
        $dfv->name_this('is_single');
        my $field = $dfv->get_current_constraint_field;
        my $data = $dfv->get_filtered_data;
        my $test = $data->{$field};
        return ref $test ? 0:1;
    }
}

should that allow me to use validated parameters in hashes with impunity
or am I missing the point of the problem?

cheers,
Cass


_______________________________________________
List: Catalyst@...
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/

Re: parameter validation

by Matt S Trout-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wed, Jul 02, 2008 at 11:08:46PM +0100, Caroline Johnston wrote:

> Hi,
>
> This isn't strictly a catalyst question, but it arose from a previous
> thread,
> http://lists.scsys.co.uk/pipermail/catalyst/2007-December/016329.html, on
> parameter validation and the problems of code like
>
>   my $user = $rs->create({
>       is_admin => 0,
>       username => $c->req->param('username'),
>   });
>
>
> I'm using Data::FormValidator. If I have a DFV constraint on fields that
> shouldn't be multi-valued, something like:
>
> sub is_single{
>     my $c = shift;
>     return sub{
> my $dfv = shift;
> $dfv->name_this('is_single');
> my $field = $dfv->get_current_constraint_field;
> my $data = $dfv->get_filtered_data;
>         my $test = $data->{$field};
> return ref $test ? 0:1;
>     }
> }
>
> should that allow me to use validated parameters in hashes with impunity
> or am I missing the point of the problem?

The point of that message was that $c->req->param('foo') is list context
aware whereas $c->req->params->{foo} isn't.

But once you've done the validating, you're going to be ok either way.

--
      Matt S Trout       Need help with your Catalyst or DBIx::Class project?
   Technical Director                    http://www.shadowcat.co.uk/catalyst/
 Shadowcat Systems Ltd.  Want a managed development or deployment platform?
http://chainsawblues.vox.com/            http://www.shadowcat.co.uk/servers/

_______________________________________________
List: Catalyst@...
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@.../
Dev site: http://dev.catalyst.perl.org/
LightInTheBox - Buy quality products at wholesale price