From 82554add6bf48371ae2f31feb7ceab5d6dff1e44 Mon Sep 17 00:00:00 2001 From: Colin Kuskie Date: Tue, 14 Feb 2012 15:30:07 -0800 Subject: [PATCH] Make sure that HttpProxy cleans up after itself when purging assets or revisions. --- docs/changelog/7.x.x.txt | 1 + lib/WebGUI/Asset/Wobject/HttpProxy.pm | 26 ++++++++++++++++++++++++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index a29874d7e..3d6566359 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -1,6 +1,7 @@ 7.10.25 - fixed #12321: Error while deleting a group. - fixed #12322: Cache/CHI stomps on the config file +- fixed #12327: HttpProxy does not clean up cookie jar storage locations 7.10.24 - fixed #12318: asset error causes asset manager to fail diff --git a/lib/WebGUI/Asset/Wobject/HttpProxy.pm b/lib/WebGUI/Asset/Wobject/HttpProxy.pm index bb0d06273..3d385a224 100644 --- a/lib/WebGUI/Asset/Wobject/HttpProxy.pm +++ b/lib/WebGUI/Asset/Wobject/HttpProxy.pm @@ -256,14 +256,36 @@ sub prepareView { =head2 purge -Extend the base method to delete the cookie jar +Extend the base method to delete all cookie jars for this HttpProxy =cut sub purge { + my $self = shift; + my $id = $self->getId; + my $session = $self->session; + my @storageIds = $session->db->buildArray("select cookieJarStorageId from HttpProxy where assetId=?",[$id]); + my $success = $self->SUPER::purge; + return 0 unless $success; + foreach my $storageId (@storageIds) { + my $storage = WebGUI::Storage->get($session, $storageId); + $storage->delete if defined $storage; + } + return 1; +} + +#------------------------------------------------------------------- + +=head2 purgeRevision + +Extend the base method to delete the cookie jar for this revision. + +=cut + +sub purgeRevision { my $self = shift; $self->getCookieJar->delete; - $self->SUPER::purge; + $self->SUPER::purgeRevision; }