diff --git a/docs/changelog/6.x.x.txt b/docs/changelog/6.x.x.txt index 6bdcd26a6..6448a5124 100644 --- a/docs/changelog/6.x.x.txt +++ b/docs/changelog/6.x.x.txt @@ -1,4 +1,6 @@ 6.8.1 + - fix [ 1364965 ] Assets in Trash give Permission Denied in stead of Not + Found - Removed duplicate processing of metadata. - fix [ 1373649 ] Username isn't populated in 6.8.0 Discussions - fix [ 1373707 ] File Pile not uploading images diff --git a/lib/WebGUI/AdminConsole.pm b/lib/WebGUI/AdminConsole.pm index 942982b95..da3c773b1 100644 --- a/lib/WebGUI/AdminConsole.pm +++ b/lib/WebGUI/AdminConsole.pm @@ -187,7 +187,7 @@ sub getAdminFunction { }, icon=>"trash.gif", func=>"manageTrash", - group=>"4" + group=>"12" }, "databases"=>{ title=>{ diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index fb9692e38..5d82aea54 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -574,7 +574,20 @@ Renders self->view based upon current style, subject to timeouts. Returns Privil sub www_view { my $self = shift; my $disableCache = shift; - return WebGUI::Privilege::noAccess() unless $self->canView; + unless ($self->canView) { + if ($self->get("state") eq "published") { # no privileges, make em log in + return WebGUI::Privilege::noAccess(); + } elsif ($session{var}{adminOn} && $self->get("state") =~ /^trash/) { # show em trash + WebGUI::HTTP::setRedirect($self->getUrl("func=manageTrash")); + return ""; + } elsif ($session{var}{adminOn} && $self->get("state") =~ /^clipboard/) { # show em clipboard + WebGUI::HTTP::setRedirect($self->getUrl("func=manageClipboard")); + return ""; + } else { # tell em it doesn't exist anymore + WebGUI::HTTP::setStatus("410"); + return WebGUI::Asset->getNotFound->www_view; + } + } if ($self->get("encryptPage") && $session{env}{HTTPS} ne "on") { WebGUI::HTTP::setRedirect($self->getUrl); return ""; diff --git a/lib/WebGUI/AssetTrash.pm b/lib/WebGUI/AssetTrash.pm index 29a61dbc8..55a751bba 100644 --- a/lib/WebGUI/AssetTrash.pm +++ b/lib/WebGUI/AssetTrash.pm @@ -185,7 +185,7 @@ Returns an AdminConsole to deal with assets in the Trash. If isInGroup(4) is Fal sub www_manageTrash { my $self = shift; my $ac = WebGUI::AdminConsole->new("trash"); - return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(4)); + return WebGUI::Privilege::insufficient() unless (WebGUI::Grouping::isInGroup(12)); my ($header, $limit); $ac->setHelp("trash manage"); if ($session{form}{systemTrash} && WebGUI::Grouping::isInGroup(3)) {