Module: tools Branch: master Commit: 81cc4388e64e1d0af6a7a57d46fae182e222780e URL: https://source.winehq.org/git/tools.git/?a=commit;h=81cc4388e64e1d0af6a7a57d...
Author: Francois Gouget fgouget@codeweavers.com Date: Mon Mar 7 12:47:47 2022 +0100
testbot/web: Better separate GetParam() and SetParam().
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
testbot/lib/ObjectModel/CGI/Page.pm | 39 ++++++++++++++++++++++++++++++++----- testbot/web/Feedback.pl | 6 +++--- testbot/web/Register.pl | 4 ++-- 3 files changed, 39 insertions(+), 10 deletions(-)
diff --git a/testbot/lib/ObjectModel/CGI/Page.pm b/testbot/lib/ObjectModel/CGI/Page.pm index b910228..8abaaaa 100644 --- a/testbot/lib/ObjectModel/CGI/Page.pm +++ b/testbot/lib/ObjectModel/CGI/Page.pm @@ -77,18 +77,47 @@ sub GetParamNames($)
=head1 C<GetParam()>
-This thunks to CGI::param() and thus takes the same arguments list but forces -the result to scalar context to avoid security issues. +Returns the specified parameter. +Note that unlike CGI::param() this forces the result to scalar context to +avoid security issues. + To get the list of parameter names use GetParamNames().
=back =cut
-sub GetParam($@) +sub GetParam($$) { - my $self = shift; + my ($self, $Name) = @_; + + return scalar($self->{CGIObj}->param($Name)); +} + +=pod +=over 12 + +=head1 C<SetParam()>
- return scalar($self->{CGIObj}->param(@_)); +Sets the specified parameter or removes it from the parameters list if the +value is undefined. + +To get the list of parameter names use GetParamNames(). + +=back +=cut + +sub SetParam($$$) +{ + my ($self, $Name, $Value) = @_; + + if (defined $Value) + { + $self->{CGIObj}->param($Name, $Value); + } + else + { + $self->{CGIObj}->delete($Name); + } }
sub CGI($) diff --git a/testbot/web/Feedback.pl b/testbot/web/Feedback.pl index 9eba086..ca1ee5e 100644 --- a/testbot/web/Feedback.pl +++ b/testbot/web/Feedback.pl @@ -41,7 +41,7 @@ sub _initialize($$$) ); if (!$Session and $RegistrationQ) { - $self->GetParam("FeedA", "") if (!defined $self->GetParam("FeedA")); + $self->SetParam("FeedA", "") if (!defined $self->GetParam("FeedA")); push @PropertyDescriptors, CreateBasicPropertyDescriptor("FeedA", "Please demonstrate you are not a bot by answering this question: $RegistrationQ", !1, 1, "A", 40); }
@@ -51,8 +51,8 @@ sub _initialize($$$) { # Provide default values my $User = $Session->User; - $self->GetParam("Name", $User->RealName) if (!defined $self->GetParam("Name")); - $self->GetParam("EMail", $User->EMail) if (!defined $self->GetParam("EMail")); + $self->SetParam("Name", $User->RealName) if (!defined $self->GetParam("Name")); + $self->SetParam("EMail", $User->EMail) if (!defined $self->GetParam("EMail")); } }
diff --git a/testbot/web/Register.pl b/testbot/web/Register.pl index 23f57a9..4cfef79 100644 --- a/testbot/web/Register.pl +++ b/testbot/web/Register.pl @@ -40,11 +40,11 @@ sub _initialize($$$) $self->{ExtraProperties} = []; if ($RegistrationQ) { - $self->GetParam("RegA", "") if (!defined $self->GetParam("RegA")); + $self->SetParam("RegA", "") if (!defined $self->GetParam("RegA")); push @{$self->{ExtraProperties}}, CreateBasicPropertyDescriptor("RegA", "Please demonstrate you are not a bot by answering this question: $RegistrationQ", !1, 1, "A", 40); }
- $self->GetParam("Remarks", "") if (!defined $self->GetParam("Remarks")); + $self->SetParam("Remarks", "") if (!defined $self->GetParam("Remarks")); push @{$self->{ExtraProperties}}, CreateBasicPropertyDescriptor("Remarks", "Remarks", !1, !1, "textarea", 160); }