From 35bfeac0ef1a7de56f0d7668ff59e6ed8f3230bd Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Tue, 1 Apr 2008 14:42:11 +0000 Subject: [PATCH] fixed: Wiki attachments uploaded by non-Content Managers deleted by maintenance workflow fixed: Non-Content managers unable to paste assets even with edit privileges --- docs/changelog/7.x.x.txt | 2 ++ lib/WebGUI/AssetBranch.pm | 4 ++-- lib/WebGUI/AssetClipboard.pm | 14 ++++++++++---- lib/WebGUI/AssetLineage.pm | 1 - 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 2edd06438..a441dc0b6 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -14,6 +14,8 @@ - added: Better error messages when SQL Report lacks a query (William McKee, Knowmad Technologies) - fixed: edit branch sends thread notifications - fixed: changing style template with edit branch creates new revisions of assets that have no style template + - fixed: Wiki attachments uploaded by non-Content Managers deleted by maintenance workflow + - fixed: Non-Content managers unable to paste assets even with edit privaledges 7.5.8 - moved Gallery utility methods to WebGUI::Utility::Gallery diff --git a/lib/WebGUI/AssetBranch.pm b/lib/WebGUI/AssetBranch.pm index 7a1743a53..c20edd3c2 100644 --- a/lib/WebGUI/AssetBranch.pm +++ b/lib/WebGUI/AssetBranch.pm @@ -48,12 +48,12 @@ sub duplicateBranch { my $self = shift; my $childrenOnly = shift || 0; - my $newAsset = $self->duplicate({skipAutoCommitWorkflows=>1}); + my $newAsset = $self->duplicate({skipAutoCommitWorkflows=>1,skipNotification=>1}); my $contentPositions = $self->get("contentPositions"); my $assetsToHide = $self->get("assetsToHide"); foreach my $child (@{$self->getLineage(["children"],{returnObjects=>1})}) { - my $newChild = $childrenOnly ? $child->duplicate({skipAutoCommitWorkflows=>1}) : $child->duplicateBranch; + my $newChild = $childrenOnly ? $child->duplicate({skipAutoCommitWorkflows=>1, skipNotification=>1}) : $child->duplicateBranch; $newChild->setParent($newAsset); my ($oldChildId, $newChildId) = ($child->getId, $newChild->getId); $contentPositions =~ s/\Q${oldChildId}\E/${newChildId}/g if ($contentPositions); diff --git a/lib/WebGUI/AssetClipboard.pm b/lib/WebGUI/AssetClipboard.pm index 51ccad407..3b4d650ea 100644 --- a/lib/WebGUI/AssetClipboard.pm +++ b/lib/WebGUI/AssetClipboard.pm @@ -445,10 +445,13 @@ Returns "". Pastes an asset. If canEdit is False, returns an insufficient privil =cut sub www_paste { - my $self = shift; - return $self->session->privilege->insufficient() unless $self->canEdit; - $self->paste($self->session->form->process("assetId")); - return ""; + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + my $pasteAssetId = $self->session->form->process('assetId'); + my $pasteAsset = WebGUI::Asset->newPending($self->session, $pasteAssetId); + return $self->session->privilege->insufficient() unless $pasteAsset->canEdit; + $self->paste($pasteAssetId); + return ""; } #------------------------------------------------------------------- @@ -463,6 +466,9 @@ sub www_pasteList { my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; foreach my $clipId ($self->session->form->param("assetId")) { + my $pasteAsset = WebGUI::Asset->newPending($self->session, $clipId); + next + unless $pasteAsset->canEdit; $self->paste($clipId); } return $self->www_manageAssets(); diff --git a/lib/WebGUI/AssetLineage.pm b/lib/WebGUI/AssetLineage.pm index f511e4d57..0f2205dba 100644 --- a/lib/WebGUI/AssetLineage.pm +++ b/lib/WebGUI/AssetLineage.pm @@ -689,7 +689,6 @@ An asset object reference representing the new parent to paste the asset to. sub setParent { my $self = shift; my $newParent = shift; - return 0 unless $self->session->user->isInGroup('4'); return 0 unless (defined $newParent); # can't move it if a parent object doesn't exist return 0 if ($newParent->getId eq $self->get("parentId")); # don't move it to where it already is return 0 if ($newParent->getId eq $self->getId); # don't move it to itself