diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index a484e657b..6a0dd3dd8 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -2,7 +2,8 @@ - fix: The POD of Form::Image is faulty (perlDreamer Consulting, LLC) - fix: Method name clash between WebGUI::Asset::Post::Thread and WebGUI::AssetVersioning (perlDreamer Consulting, LLC) - fix: Images in various places were broken in 7.3.15 - + - fix: Able to edit locked template (perlDreamer Consulting, LLC) + http://www.plainblack.com/bugs/tracker/able-to-edit-locked-template 7.3.15 diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index a1cb251e1..769b6e00b 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -2065,6 +2065,7 @@ Renders an AdminConsole EditForm, unless canEdit returns False. sub www_edit { my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; return $self->getAdminConsole->render($self->getEditForm->print); } @@ -2080,6 +2081,7 @@ NOTE: Don't try to override or overload this method. It won't work. What you are sub www_editSave { my $self = shift; + return $self->session->privilege->locked() unless $self->canEditIfLocked; return $self->session->privilege->insufficient() unless $self->canEdit; if ($self->session->config("maximumAssets")) { my ($count) = $self->session->db->quickArray("select count(*) from asset"); diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index f208f5026..d55d76c77 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -372,6 +372,7 @@ sub view { sub www_edit { my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session); my $tabform = $self->getEditForm; $tabform->getTab("display")->template( diff --git a/lib/WebGUI/Asset/File/Image.pm b/lib/WebGUI/Asset/File/Image.pm index aa47b36b3..85e995b8f 100644 --- a/lib/WebGUI/Asset/File/Image.pm +++ b/lib/WebGUI/Asset/File/Image.pm @@ -264,8 +264,9 @@ sub view { #------------------------------------------------------------------- sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session, 'Asset_Image'); $self->getAdminConsole->addSubmenuItem($self->getUrl('func=resize'),$i18n->get("resize image")) if ($self->get("filename")); my $tabform = $self->getEditForm; @@ -281,8 +282,9 @@ sub www_edit { #------------------------------------------------------------------- sub www_resize { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; if ($self->session->form->process("newWidth") || $self->session->form->process("newHeight")) { my $newSelf = $self->addRevision(); delete $newSelf->{_storageLocation}; diff --git a/lib/WebGUI/Asset/File/ZipArchive.pm b/lib/WebGUI/Asset/File/ZipArchive.pm index 2a73f7072..6c68dfcce 100644 --- a/lib/WebGUI/Asset/File/ZipArchive.pm +++ b/lib/WebGUI/Asset/File/ZipArchive.pm @@ -239,12 +239,12 @@ Web facing method which is the default edit page =cut sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; - $self->getAdminConsole->setHelp("zip archive add/edit", "Asset_ZipArchive"); - my $i18n = WebGUI::International->new($self->session,"Asset_ZipArchive"); - return $self->getAdminConsole->render($self->getEditForm->print, - $i18n->get('zip archive add/edit title')); + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; + $self->getAdminConsole->setHelp("zip archive add/edit", "Asset_ZipArchive"); + my $i18n = WebGUI::International->new($self->session,"Asset_ZipArchive"); + return $self->getAdminConsole->render($self->getEditForm->print, $i18n->get('zip archive add/edit title')); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 3b6789ce0..91244f63c 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -1249,6 +1249,7 @@ We're extending www_editSave() here to deal with editing a post that has been de sub www_editSave { my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; if ($self->session->config("maximumAssets")) { my ($count) = $self->session->db->quickArray("select count(*) from asset"); my $i18n = WebGUI::International->new($self->session, "Asset"); diff --git a/lib/WebGUI/Asset/Redirect.pm b/lib/WebGUI/Asset/Redirect.pm index cb1f22698..b1d18af47 100644 --- a/lib/WebGUI/Asset/Redirect.pm +++ b/lib/WebGUI/Asset/Redirect.pm @@ -82,11 +82,12 @@ sub definition { #------------------------------------------------------------------- sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; - $self->getAdminConsole->setHelp("redirect add/edit", "Asset_Redirect"); + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; + $self->getAdminConsole->setHelp("redirect add/edit", "Asset_Redirect"); my $i18n = WebGUI::International->new($self->session, 'Asset_Redirect'); - return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get('redirect add/edit title')); + return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get('redirect add/edit title')); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/RichEdit.pm b/lib/WebGUI/Asset/RichEdit.pm index 6fe55f595..ea8872386 100644 --- a/lib/WebGUI/Asset/RichEdit.pm +++ b/lib/WebGUI/Asset/RichEdit.pm @@ -555,10 +555,11 @@ sub indexContent { #------------------------------------------------------------------- sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session,"Asset_RichEdit"); - return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get("rich edit edit config")); + return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get("rich edit edit config")); } diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm index 230eb11b3..edc489599 100644 --- a/lib/WebGUI/Asset/Shortcut.pm +++ b/lib/WebGUI/Asset/Shortcut.pm @@ -680,6 +680,7 @@ sub view { sub www_edit { my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; $self->getAdminConsole->setHelp("shortcut add/edit","Asset_Shortcut"); my $i18n = WebGUI::International->new($self->session,"Asset_Shortcut"); $self->getAdminConsole->addSubmenuItem($self->getUrl("func=manageOverrides"),$i18n->get("Manage Shortcut Overrides")); diff --git a/lib/WebGUI/Asset/Snippet.pm b/lib/WebGUI/Asset/Snippet.pm index 8f61a6759..282f95788 100644 --- a/lib/WebGUI/Asset/Snippet.pm +++ b/lib/WebGUI/Asset/Snippet.pm @@ -174,11 +174,12 @@ sub view { #------------------------------------------------------------------- sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; - $self->getAdminConsole->setHelp("snippet add/edit","Asset_Snippet"); - my $i18n = WebGUI::International->new($self->session, 'Asset_Snippet'); - return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get('snippet add/edit title')); + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; + $self->getAdminConsole->setHelp("snippet add/edit","Asset_Snippet"); + my $i18n = WebGUI::International->new($self->session, 'Asset_Snippet'); + return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get('snippet add/edit title')); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Template.pm b/lib/WebGUI/Asset/Template.pm index 22aba2eaf..8c6e61df8 100644 --- a/lib/WebGUI/Asset/Template.pm +++ b/lib/WebGUI/Asset/Template.pm @@ -351,12 +351,13 @@ sub processRaw { #------------------------------------------------------------------- sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; - my $i18n = WebGUI::International->new($self->session, "Asset_Template"); - $self->getAdminConsole->setHelp("template add/edit","Asset_Template"); - $self->getAdminConsole->addSubmenuItem($self->getUrl('func=styleWizard'),$i18n->get("style wizard")) if ($self->get("namespace") eq "style"); - return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get('edit template')); + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; + my $i18n = WebGUI::International->new($self->session, "Asset_Template"); + $self->getAdminConsole->setHelp("template add/edit","Asset_Template"); + $self->getAdminConsole->addSubmenuItem($self->getUrl('func=styleWizard'),$i18n->get("style wizard")) if ($self->get("namespace") eq "style"); + return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get('edit template')); } #------------------------------------------------------------------- @@ -378,7 +379,8 @@ sub www_manage { #------------------------------------------------------------------- sub www_styleWizard { my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session, "Asset_Template"); my $form = $self->session->form; my $output = ""; diff --git a/lib/WebGUI/Asset/WikiPage.pm b/lib/WebGUI/Asset/WikiPage.pm index 54704babb..86e341059 100644 --- a/lib/WebGUI/Asset/WikiPage.pm +++ b/lib/WebGUI/Asset/WikiPage.pm @@ -333,6 +333,7 @@ sub www_delete { sub www_edit { my $self = shift; return $self->session->privilege->insufficient unless $self->canEdit; + return $self->session->privilege->locked unless $self->canEditIfLocked; return $self->getWiki->processStyle($self->getEditForm); } diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index 89d407857..7626b547a 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -485,6 +485,7 @@ Returns an edit form for this asset. sub www_edit { my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; my ($tag) = ($self->get("className") =~ /::(\w+)$/); my $tag2 = $tag; $tag =~ s/([a-z])([A-Z])/$1 $2/g; #Separate studly caps diff --git a/lib/WebGUI/Asset/Wobject/Calendar.pm b/lib/WebGUI/Asset/Wobject/Calendar.pm index be831be2d..e0c933179 100644 --- a/lib/WebGUI/Asset/Wobject/Calendar.pm +++ b/lib/WebGUI/Asset/Wobject/Calendar.pm @@ -1426,6 +1426,7 @@ sub www_edit { my $i18n = WebGUI::International->new($session, 'Asset_Calendar'); return $session->privilege->insufficient() unless $self->canEdit; + return $session->privilege->locked() unless $self->canEditIfLocked; $self->getAdminConsole->setHelp("Calendar add/edit", "Calendar"); diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index e8384ddf9..92065e370 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -1606,6 +1606,7 @@ Edit wobject method. sub www_edit { my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; my ($tag) = ($self->get("className") =~ /::(\w+)$/); my $tag2 = $tag; $tag =~ s/([a-z])([A-Z])/$1 $2/g; #Separate studly caps diff --git a/lib/WebGUI/Asset/Wobject/InOutBoard.pm b/lib/WebGUI/Asset/Wobject/InOutBoard.pm index 25b3e33c4..109234ea7 100644 --- a/lib/WebGUI/Asset/Wobject/InOutBoard.pm +++ b/lib/WebGUI/Asset/Wobject/InOutBoard.pm @@ -296,11 +296,12 @@ order by department, lastName, firstName"; #------------------------------------------------------------------- sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; - $self->getAdminConsole->setHelp("in out board add/edit","Asset_InOutBoard"); + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; + $self->getAdminConsole->setHelp("in out board add/edit","Asset_InOutBoard"); my $i18n = WebGUI::International->new($self->session, "Asset_InOutBoard"); - return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get("18")); + return $self->getAdminConsole->render($self->getEditForm->print,$i18n->get("18")); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Wobject/Matrix.pm b/lib/WebGUI/Asset/Wobject/Matrix.pm index 8e7a68723..38899a9e5 100644 --- a/lib/WebGUI/Asset/Wobject/Matrix.pm +++ b/lib/WebGUI/Asset/Wobject/Matrix.pm @@ -508,12 +508,12 @@ sub getEditForm { #------------------------------------------------------------------- sub www_edit { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; my $i18n = WebGUI::International->new($self->session,'Asset_Matrix'); $self->getAdminConsole->setHelp('matrix add/edit', 'Asset_Matrix'); - return $self->getAdminConsole->render($self->getEditForm->print, - $i18n->get("edit matrix")); + return $self->getAdminConsole->render($self->getEditForm->print, $i18n->get("edit matrix")); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/Wobject/_NewWobject.skeleton b/lib/WebGUI/Asset/Wobject/_NewWobject.skeleton index 283f9fe0f..590071b70 100644 --- a/lib/WebGUI/Asset/Wobject/_NewWobject.skeleton +++ b/lib/WebGUI/Asset/Wobject/_NewWobject.skeleton @@ -181,6 +181,7 @@ adminConsole views. #sub www_edit { # my $self = shift; # return WebGUI::Privilege::insufficient() unless $self->canEdit; +# return WebGUI::Privilege::locked() unless $self->canEditIfLocked; # $self->getAdminConsole->setHelp("new wobject add/edit", "NewWobject"); # return $self->getAdminConsole->render($self->getEditForm->print, # WebGUI::International::get("edit_title","NewWobject")); diff --git a/lib/WebGUI/Asset/_NewAsset.skeleton b/lib/WebGUI/Asset/_NewAsset.skeleton index 219c2c942..1b39a9a16 100644 --- a/lib/WebGUI/Asset/_NewAsset.skeleton +++ b/lib/WebGUI/Asset/_NewAsset.skeleton @@ -238,7 +238,8 @@ Web facing method which is the default edit page sub www_edit { my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->insufficient() unless $self->canEdit; + return $self->session->privilege->locked() unless $self->canEditIfLocked; $self->getAdminConsole->setHelp("New Asset add/edit", "New Asset"); return $self->getAdminConsole->render($self->getEditForm->print,WebGUI::International::get('edit asset',"Asset_NewAsset")); }