Final state and status fixes.

In these three files, any check for status=archived was removed, since
in each case it is possible that the Asset may want to be viewable
when it is archived, like Files, Posts, etc.
Updated Session/Url.t to remove tests for status=archived.
This commit is contained in:
Colin Kuskie 2007-11-22 18:46:17 +00:00
parent 865c1d315b
commit 256b52a0d7
4 changed files with 22 additions and 19 deletions

View file

@ -288,7 +288,7 @@ sub checkView {
$http->setRedirect($self->getUrl("func=manageClipboard"));
return "redirect";
}
elsif ($self->get("state") ne "published" && $self->get("state") ne "archived") { # tell em it doesn't exist anymore
elsif ($self->get("state") ne "published") { # tell em it doesn't exist anymore
$http->setStatus("410");
my $notFound = WebGUI::Asset->getNotFound($self->session);
$self->session->asset($notFound);

View file

@ -470,16 +470,15 @@ sub www_view {
return $self->session->privilege->noAccess() unless $self->canView;
# Check to make sure it's not in the trash or some other weird place
my $state = $self->get("state");
if ($state ne "published" && $state ne "archived") {
if ($self->get("state") ne "published") {
my $i18n = WebGUI::International->new($self->session,'Asset_File');
$self->session->http->setStatus("404");
return sprintf($i18n->get("file not found"), $self->getUrl());
}
$self->session->http->setRedirect($self->getFileUrl);
$self->session->http->setStreamedFile($self->getStorageLocation->getPath($self->get("filename")));
return 'chunked';
$self->session->http->setRedirect($self->getFileUrl);
$self->session->http->setStreamedFile($self->getStorageLocation->getPath($self->get("filename")));
return 'chunked';
}

View file

@ -200,9 +200,14 @@ sub getBackToSiteURL {
my $media = WebGUI::Asset->getMedia($self->session);
my $mediaLineage = $media->get("lineage");
my $assetLineage = $self->session->asset->get("lineage");
if ($assetLineage =~ /^$importNodeLineage/ || $assetLineage eq "000001" || $assetLineage =~ /^$mediaLineage/ || ($self->session->asset->get("state") ne "published" && $self->session->asset->get("state") ne "archived")) {
if ( $assetLineage =~ /^$importNodeLineage/
|| $assetLineage eq "000001"
|| $assetLineage =~ /^$mediaLineage/
|| $self->session->asset->get("state") ne "published" ##Parent state is okay be definition
) {
$url = WebGUI::Asset->getDefault($self->session)->getUrl;
} else {
}
else {
$url = $self->session->asset->getContainer->getUrl;
}
} else {

View file

@ -325,8 +325,6 @@ is($session->url->getBackToSiteURL, '/goBackToTheSite', 'getBackToSiteURL: when
$session->asset($sessionAsset);
is($session->url->getBackToSiteURL, $session->asset->getUrl, q!getBackToSiteURL: for most regular old assets, it takes you back to the asset's container!);
my $versionTag = WebGUI::VersionTag->getWorking($session);
my $defaultAssetUrl = WebGUI::Asset->getDefault($session)->getUrl;
$session->asset( WebGUI::Asset->getImportNode($session) );
@ -356,15 +354,10 @@ TODO: {
ok(0, 'test a child of the media folder');
}
my $versionTag = WebGUI::VersionTag->getWorking($session);
my $statefulAsset = WebGUI::Asset->getRoot($session)->addChild({ className => 'WebGUI::Asset::Snippet' });
$statefulAsset->{_properties}{state} = 'archived';
$versionTag->commit;
$session->asset( $statefulAsset );
is(
$session->url->getBackToSiteURL,
WebGUI::Asset->getRoot($session)->getUrl,
q!getBackToSiteURL: When asset state is archived, it returns you to the Asset's container!
);
$statefulAsset->{_properties}{state} = 'published';
is(
@ -373,12 +366,18 @@ is(
q!getBackToSiteURL: When asset state is published, it returns you to the Asset's container!
);
$statefulAsset->{_properties}{state} = 'trash';
is(
$session->url->getBackToSiteURL,
$defaultAssetUrl,
q!getBackToSiteURL: When asset state is not archived or published, it returns you to the default Asset!
q!getBackToSiteURL: When asset state is trash, it returns you to the default Asset!
);
$statefulAsset->{_properties}{state} = 'clipboard';
is(
$session->url->getBackToSiteURL,
$defaultAssetUrl,
q!getBackToSiteURL: When asset state is clipboard, it returns you to the default Asset!
);
END { ##Always clean-up