Signed-off-by: Francois Gouget fgouget@codeweavers.com --- 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 b91022832c..8abaaaa9d2 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 9eba086ace..ca1ee5ed77 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 23f57a9b64..4cfef79fc3 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); }