Add a form to the admin console for CSRF protected actions.

This commit is contained in:
Colin Kuskie 2009-07-14 15:52:55 +00:00
parent 435be65aa4
commit cd67bed213
2 changed files with 31 additions and 2 deletions

Binary file not shown.

View file

@ -303,8 +303,8 @@ sub render {
}
$var{"backtosite.url"} = $self->session->url->getBackToSiteURL();
$var{"formHeader"} = WebGUI::Form::formHeader($self->session)
. WebGUI::Form::hidden($self->session, { name=>'func', value=>'' });
my $formId = $self->getSubmenuFormId;
$var{"formHeader"} = WebGUI::Form::formHeader($self->session, { action => $self->{_formUrl}, extras => qq|id='$formId'|, });
$var{"formFooter"} = WebGUI::Form::formFooter($self->session);
my $template
= WebGUI::Asset::Template->new(
@ -321,6 +321,23 @@ sub render {
#-------------------------------------------------------------------
=head2 setFormUrl ( $url )
Sets the action for the form that is used to submit CSRF requests.
=head3 $url
The URL for the form to submit to.
=cut
sub setFormUrl {
my $self = shift;
$self->{_formUrl} = shift;
}
#-------------------------------------------------------------------
=head2 setHelp ( id [,namespace] )
Sets the _helpUrl to the urlized page.
@ -360,6 +377,18 @@ sub getHelp {
#-------------------------------------------------------------------
=head2 getSubmenuFormId ( )
Returns the id of the form used to to CSRF submits.
=cut
sub getSubmenuFormId {
return 'submenuForm';
}
#-------------------------------------------------------------------
=head2 session ( )
Returns a reference to the current session.