diff --git a/lib/WebGUI/Asset/WikiPage.pm b/lib/WebGUI/Asset/WikiPage.pm index 74e759b5a..abfc269a2 100644 --- a/lib/WebGUI/Asset/WikiPage.pm +++ b/lib/WebGUI/Asset/WikiPage.pm @@ -113,7 +113,7 @@ sub canEdit { my $form = $self->session->form; my $addNew = $form->process("func" ) eq "add"; my $editSave = $form->process("assetId" ) eq "new" - && $form->process("func" ) eq "editSave" + && $form->process("func" ) eq "addSave" && $form->process("className","className" ) eq "WebGUI::Asset::WikiPage"; return $wiki->canAdminister || ( $wiki->canEditPages && ( $addNew || $editSave || !$self->isProtected) ); diff --git a/lib/WebGUI/Asset/Wobject/DataForm.pm b/lib/WebGUI/Asset/Wobject/DataForm.pm index 1574cf5f7..d38cb2ef7 100644 --- a/lib/WebGUI/Asset/Wobject/DataForm.pm +++ b/lib/WebGUI/Asset/Wobject/DataForm.pm @@ -290,7 +290,7 @@ sub _getFormFields { my $entry = $self->entry; my @orderedFields = map { $self->getFieldConfig($_) } @{ $self->getFieldOrder }; my $func = $session->form->process('func'); - my $ignoreForm = $func eq 'editSave' || $func eq 'editFieldSave'; + my $ignoreForm = $func eq 'addSave'|| $func eq 'editSave' || $func eq 'editFieldSave'; my @forms = (); for my $field (@orderedFields) { my $value; diff --git a/lib/WebGUI/Asset/Wobject/Matrix.pm b/lib/WebGUI/Asset/Wobject/Matrix.pm index 411b36711..e990c2bc4 100644 --- a/lib/WebGUI/Asset/Wobject/Matrix.pm +++ b/lib/WebGUI/Asset/Wobject/Matrix.pm @@ -269,9 +269,9 @@ override canEdit => sub { my $userId = shift || $self->session->user->userId; my $form = $self->session->form; - if ( $form->get('func') eq "editSave" + if ( $form->get('func') eq "addSave" && $form->get('assetId') eq "new" - && $form->get( 'class' )->isa( 'WebGUI::Asset::MatrixListing' ) ) { + && $form->get( 'className','className' )->isa( 'WebGUI::Asset::MatrixListing' ) ) { return $self->canAddMatrixListing(); } return super(); diff --git a/lib/WebGUI/Asset/Wobject/WikiMaster.pm b/lib/WebGUI/Asset/Wobject/WikiMaster.pm index 7c2a77448..9c292f22a 100644 --- a/lib/WebGUI/Asset/Wobject/WikiMaster.pm +++ b/lib/WebGUI/Asset/Wobject/WikiMaster.pm @@ -453,7 +453,7 @@ around canEdit => sub { my $form = $self->session->form; my $addNew = $form->process("func" ) eq "add"; my $editSave = $form->process("assetId" ) eq "new" - && $form->process("func" ) eq "editSave" + && $form->process("func" ) eq "addSave" && $form->process("className","className" ) eq "WebGUI::Asset::WikiPage"; my $canEdit = ( ($addNew || $editSave) && $self->canEditPages ) || $self->$orig(@_);