From 939b5b4897c75ac338bbb9fe7ccea21895e2369c Mon Sep 17 00:00:00 2001 From: Yung Han Khoe Date: Sat, 12 Jul 2008 19:02:00 +0000 Subject: [PATCH] fixed: Deleting Ticket from Event Management System Asset --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Sku/EMSRibbon.pm | 10 +++++++--- lib/WebGUI/Asset/Sku/EMSTicket.pm | 7 +++++-- lib/WebGUI/Asset/Sku/EMSToken.pm | 10 +++++++--- lib/WebGUI/Asset/Wobject/EventManagementSystem.pm | 6 ++++-- 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 4f948ff48..e3e354a1c 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -2,6 +2,7 @@ - fixed: Payment Methods Hover Help Incomplete - fixed: Payment Method Titles Don't Match Buttons - fixed: Gallery: Description Text appearing in Album + - fixed: Deleting Ticket from Event Management System Asset 7.5.16 - Created a migration from 7.4.40 directly to 7.5.16. diff --git a/lib/WebGUI/Asset/Sku/EMSRibbon.pm b/lib/WebGUI/Asset/Sku/EMSRibbon.pm index bb4d131a3..77db741df 100644 --- a/lib/WebGUI/Asset/Sku/EMSRibbon.pm +++ b/lib/WebGUI/Asset/Sku/EMSRibbon.pm @@ -18,7 +18,7 @@ use strict; use Tie::IxHash; use base 'WebGUI::Asset::Sku'; use WebGUI::HTMLForm; - +use WebGUI::Utility; =head1 NAME @@ -235,8 +235,12 @@ Override to return to appropriate page. sub www_delete { my ($self) = @_; - $self->SUPER::www_delete; - return $self->getParent->www_buildBadge(undef,'ribbons'); + return $self->session->privilege->insufficient() unless ($self->canEdit && $self->canEditIfLocked); + return $self->session->privilege->vitalComponent() if $self->get('isSystem'); + return $self->session->privilege->vitalComponent() if (isIn($self->getId, +$self->session->setting->get("defaultPage"), $self->session->setting->get("notFoundPage"))); + $self->trash; + return $self->getParent->www_buildBadge(undef,'ribbons'); } diff --git a/lib/WebGUI/Asset/Sku/EMSTicket.pm b/lib/WebGUI/Asset/Sku/EMSTicket.pm index 2d66bd5bf..2b14da69c 100644 --- a/lib/WebGUI/Asset/Sku/EMSTicket.pm +++ b/lib/WebGUI/Asset/Sku/EMSTicket.pm @@ -18,7 +18,7 @@ use strict; use base 'WebGUI::Asset::Sku'; use Tie::IxHash; use JSON; - +use WebGUI::Utility; =head1 NAME @@ -476,7 +476,10 @@ Override to return to appropriate page. sub www_delete { my ($self) = @_; - $self->SUPER::www_delete; + return $self->session->privilege->insufficient() unless ($self->canEdit && $self->canEditIfLocked); + return $self->session->privilege->vitalComponent() if $self->get('isSystem'); + return $self->session->privilege->vitalComponent() if (isIn($self->getId, $self->session->setting->get("defaultPage"), $self->session->setting->get("notFoundPage"))); + $self->trash; return $self->getParent->www_buildBadge(undef,'tickets'); } diff --git a/lib/WebGUI/Asset/Sku/EMSToken.pm b/lib/WebGUI/Asset/Sku/EMSToken.pm index 37d084335..a76e3a460 100644 --- a/lib/WebGUI/Asset/Sku/EMSToken.pm +++ b/lib/WebGUI/Asset/Sku/EMSToken.pm @@ -17,7 +17,7 @@ package WebGUI::Asset::Sku::EMSToken; use strict; use Tie::IxHash; use base 'WebGUI::Asset::Sku'; - +use WebGUI::Utility; =head1 NAME @@ -229,8 +229,12 @@ Override to return to appropriate page. sub www_delete { my ($self) = @_; - $self->SUPER::www_delete; - return $self->getParent->www_buildBadge(undef,'tokens'); + return $self->session->privilege->insufficient() unless ($self->canEdit && $self->canEditIfLocked); + return $self->session->privilege->vitalComponent() if $self->get('isSystem'); + return $self->session->privilege->vitalComponent() if (isIn($self->getId, +$self->session->setting->get("defaultPage"), $self->session->setting->get("notFoundPage"))); + $self->trash; + return $self->getParent->www_buildBadge(undef,'tokens'); } diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index dd9aeeea0..291900455 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -937,7 +937,8 @@ sub www_getTicketsAsJson { # looking for specific events if ($keywords =~ m{^[\d+,*\s*]+$}) { @ids = $db->buildArray("select distinct(EMSTicket.assetId) from EMSTicket left join asset using (assetId) where - asset.parentId=? and EMSTicket.eventNumber in (".$keywords.") order by EMSTicket.eventNumber",[$self->getId]); + asset.parentId=? and EMSTicket.eventNumber in (".$keywords.") and asset.state='published' + order by EMSTicket.eventNumber",[$self->getId]); } # looking for keywords @@ -951,7 +952,8 @@ sub www_getTicketsAsJson { # just get all tickets else { - @ids = $db->buildArray("select assetId from asset left join EMSTicket using (assetId) where parentId=? and className='WebGUI::Asset::Sku::EMSTicket' and revisionDate=(select max(revisionDate) from EMSTicket where assetId=asset.assetId) order by eventNumber", [$self->getId]); + @ids = $db->buildArray("select assetId from asset left join EMSTicket using (assetId) where parentId=? and +className='WebGUI::Asset::Sku::EMSTicket' and state='published' and revisionDate=(select max(revisionDate) from EMSTicket where assetId=asset.assetId) order by eventNumber", [$self->getId]); } # get badge's badge groups