diff --git a/docs/changelog/7.x.x.txt b/docs/changelog/7.x.x.txt index 90ea11aa8..d70cf6d32 100644 --- a/docs/changelog/7.x.x.txt +++ b/docs/changelog/7.x.x.txt @@ -17,6 +17,7 @@ - fixed #10887: Map Point dropdown doesn't update - fixed #11172: Collaboration broken vars: isSecond, isThird etc. - fixed #11165: DatePicker broken in IE7 + - added: Manage System Clipboard 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 b8a07d6b4..7f958dc3a 100644 --- a/docs/upgrades/upgrade_7.8.2-7.8.3.pl +++ b/docs/upgrades/upgrade_7.8.2-7.8.3.pl @@ -33,8 +33,18 @@ my $session = start(); # this line required # upgrade functions go here reKeyTemplateAttachments($session); addSelectPaymentGatewayTemplateToSettings($session); +addClipboardAdminSetting($session); + finish($session); # this line required +#---------------------------------------------------------------------------- +sub addClipboardAdminSetting { + my $session = shift; + print "\tAdding clipboard admin setting... " unless $quiet; + $session->setting->add('groupIdAdminClipboard', 3); + print "Done.\n" unless $quiet; +} + #---------------------------------------------------------------------------- # Describe what our function does diff --git a/lib/WebGUI/AssetClipboard.pm b/lib/WebGUI/AssetClipboard.pm index 5ff01f5ca..35943f19c 100644 --- a/lib/WebGUI/AssetClipboard.pm +++ b/lib/WebGUI/AssetClipboard.pm @@ -444,7 +444,7 @@ sub www_emptyClipboard { my $self = shift; my $ac = WebGUI::AdminConsole->new($self->session,"clipboard"); return $self->session->privilege->insufficient() unless ($self->session->user->isInGroup(4)); - foreach my $asset (@{$self->getAssetsInClipboard(!($self->session->form->process("systemClipboard") && $self->session->user->isAdmin))}) { + foreach my $asset (@{$self->getAssetsInClipboard(!($self->session->form->process("systemClipboard") && $self->session->user->isInGroup($self->session->setting->get('groupIdAdminClipboard'))))}) { $asset->trash; } return $self->www_manageClipboard(); @@ -464,20 +464,29 @@ sub www_manageClipboard { my $ac = WebGUI::AdminConsole->new($self->session,"clipboard"); return $self->session->privilege->insufficient() unless ($self->session->user->isInGroup(12)); my $i18n = WebGUI::International->new($self->session, "Asset"); - my ($header,$limit); - if ($self->session->form->process("systemClipboard") && $self->session->user->isAdmin) { - $header = $i18n->get(966); - $ac->addSubmenuItem($self->getUrl('func=manageClipboard'), $i18n->get(949)); - $ac->addSubmenuItem($self->getUrl('func=emptyClipboard;systemClipboard=1'), $i18n->get(959), - 'onclick="return window.confirm(\''.$i18n->get(951,"WebGUI").'\')"',"Asset"); - } else { - $ac->addSubmenuItem($self->getUrl('func=manageClipboard;systemClipboard=1'), $i18n->get(954)); - $ac->addSubmenuItem($self->getUrl('func=emptyClipboard'), $i18n->get(950), - 'onclick="return window.confirm(\''.$i18n->get(951,"WebGUI").'\')"',"Asset"); - $limit = 1; - } -$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 $header; + my $limit = 1; + + my $canAdmin = $self->session->user->isInGroup($self->session->setting->get('groupIdAdminClipboard')); + if ($self->session->form->process("systemClipboard") && $canAdmin) { + $header = $i18n->get(966); + $ac->addSubmenuItem($self->getUrl('func=manageClipboard'), $i18n->get(949)); + $ac->addSubmenuItem($self->getUrl('func=emptyClipboard;systemClipboard=1'), $i18n->get(959), + 'onclick="return window.confirm(\''.$i18n->get(951,"WebGUI").'\')"',"Asset"); + $limit = undef; + } + elsif ( $canAdmin ) { + $ac->addSubmenuItem($self->getUrl('func=manageClipboard;systemClipboard=1'), $i18n->get(954)); + $ac->addSubmenuItem($self->getUrl('func=emptyClipboard'), $i18n->get(950), + 'onclick="return window.confirm(\''.$i18n->get(951,"WebGUI").'\')"',"Asset"); + } + else { + $ac->addSubmenuItem($self->getUrl('func=emptyClipboard'), $i18n->get(950), + 'onclick="return window.confirm(\''.$i18n->get(951,"WebGUI").'\')"',"Asset"); + } + $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 = "