From c1ce7470b95ea5572b7356be07a0107a9a9c871b Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Wed, 28 Oct 2009 11:10:58 -0500 Subject: [PATCH] added: Manage System Trash group setting --- docs/changelog/7.x.x.txt | 1 + docs/upgrades/upgrade_7.8.2-7.8.3.pl | 9 +++++++++ lib/WebGUI/AssetTrash.pm | 15 +++++++++------ lib/WebGUI/Operation/Settings.pm | 1 + lib/WebGUI/i18n/English/WebGUI.pm | 9 +++++++++ 5 files changed, 29 insertions(+), 6 deletions(-) diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index d70cf6d32..bff83b90e 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -18,6 +18,7 @@ - fixed #11172: Collaboration broken vars: isSecond, isThird etc. - fixed #11165: DatePicker broken in IE7 - added: Manage System Clipboard group setting + - added: Manage System Trash group setting 7.8.2 - Added scheduled vendor payout workflow activity. (Special thanks to Martin @ Oqapi) diff --git a/docs/upgrades/upgrade_7.8.2-7.8.3.pl b/docs/upgrades/upgrade_7.8.2-7.8.3.pl index 7f958dc3a..7f08da97e 100644 --- a/docs/upgrades/upgrade_7.8.2-7.8.3.pl +++ b/docs/upgrades/upgrade_7.8.2-7.8.3.pl @@ -34,6 +34,7 @@ my $session = start(); # this line required reKeyTemplateAttachments($session); addSelectPaymentGatewayTemplateToSettings($session); addClipboardAdminSetting($session); +addTrashAdminSetting($session); finish($session); # this line required @@ -45,6 +46,14 @@ sub addClipboardAdminSetting { print "Done.\n" unless $quiet; } +#---------------------------------------------------------------------------- +sub addTrashAdminSetting { + my $session = shift; + print "\tAdding trash admin setting... " unless $quiet; + $session->setting->add('groupIdAdminTrash', 3); + print "Done.\n" unless $quiet; +} + #---------------------------------------------------------------------------- # Describe what our function does diff --git a/lib/WebGUI/AssetTrash.pm b/lib/WebGUI/AssetTrash.pm index 873d5404e..8b2dd1165 100644 --- a/lib/WebGUI/AssetTrash.pm +++ b/lib/WebGUI/AssetTrash.pm @@ -392,15 +392,18 @@ sub www_manageTrash { my $ac = WebGUI::AdminConsole->new($self->session,"trash"); my $i18n = WebGUI::International->new($self->session,"Asset"); return $self->session->privilege->insufficient() unless ($self->session->user->isInGroup(12)); - my ($header, $limit); - $ac->setHelp("trash manage"); - if ($self->session->form->process("systemTrash") && $self->session->user->isAdmin) { + $ac->setHelp("trash manage"); + my $header; + my $limit = 1; + my $canAdmin = $self->session->user->isInGroup($self->session->setting->get('groupIdAdminTrash')); + if ($self->session->form->process("systemTrash") && $canAdmin) { $header = $i18n->get(965); $ac->addSubmenuItem($self->getUrl('func=manageTrash'), $i18n->get(10,"WebGUI")); - } else { - $ac->addSubmenuItem($self->getUrl('func=manageTrash;systemTrash=1'), $i18n->get(964)); - $limit = 1; + $limit = undef; } + elsif ( $canAdmin ) { + $ac->addSubmenuItem($self->getUrl('func=manageTrash;systemTrash=1'), $i18n->get(964)); + } $self->session->style->setLink($self->session->url->extras('assetManager/assetManager.css'), {rel=>"stylesheet",type=>"text/css"}); $self->session->style->setScript($self->session->url->extras('assetManager/assetManager.js'), {type=>"text/javascript"}); my $output = " diff --git a/lib/WebGUI/Operation/Settings.pm b/lib/WebGUI/Operation/Settings.pm index 662d91753..04f909f92 100644 --- a/lib/WebGUI/Operation/Settings.pm +++ b/lib/WebGUI/Operation/Settings.pm @@ -535,6 +535,7 @@ sub definition { groupIdAdminReplacements groupIdAdminSpectre groupIdAdminStatistics + groupIdAdminTrash groupIdAdminUser groupIdAdminUserAdd groupIdAdminVersionTag diff --git a/lib/WebGUI/i18n/English/WebGUI.pm b/lib/WebGUI/i18n/English/WebGUI.pm index e6701661c..725eb30ae 100644 --- a/lib/WebGUI/i18n/English/WebGUI.pm +++ b/lib/WebGUI/i18n/English/WebGUI.pm @@ -4060,6 +4060,15 @@ LongTruncOk=1

lastUpdated => 0, }, + 'settings groupIdAdminTrash label' => { + message => q{Trash}, + lastUpdated => 0, + }, + 'settings groupIdAdminTrash hoverHelp' => { + message => q{Group to manage the system trash.}, + lastUpdated => 0, + }, + 'settings groupIdAdminUser label' => { message => q{Users}, lastUpdated => 0,