From 92334195a3a1f00ed9673f69628221b417b42d32 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Wed, 16 Apr 2003 02:53:39 +0000 Subject: [PATCH] Added a translation managers group so that administrators can sub-divide the internationalization task without giving away admin privileges. --- docs/upgrades/upgrade_5.2.4-5.3.0.sql | 2 +- lib/WebGUI/Macro/AdminBar.pm | 7 ++++++- lib/WebGUI/Operation/International.pm | 18 +++++++++--------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/docs/upgrades/upgrade_5.2.4-5.3.0.sql b/docs/upgrades/upgrade_5.2.4-5.3.0.sql index 2755dc190..1607ed672 100644 --- a/docs/upgrades/upgrade_5.2.4-5.3.0.sql +++ b/docs/upgrades/upgrade_5.2.4-5.3.0.sql @@ -274,6 +274,6 @@ insert into international (internationalId,languageId,namespace,message,lastUpda delete from international where languageId=1 and namespace='WebGUI' and internationalId=831; insert into international (internationalId,languageId,namespace,message,lastUpdated) values (831,1,'WebGUI','Collateral Macros', 1050441851); alter table international add column context text; - +insert into groups (groupId,groupName,description) values (10,"Translation Managers","Users that can edit language translations for WebGUI."); diff --git a/lib/WebGUI/Macro/AdminBar.pm b/lib/WebGUI/Macro/AdminBar.pm index 2e1e8537d..d1c287e5e 100644 --- a/lib/WebGUI/Macro/AdminBar.pm +++ b/lib/WebGUI/Macro/AdminBar.pm @@ -70,7 +70,6 @@ sub process { %hash = ( WebGUI::URL::page('op=listGroups')=>WebGUI::International::get(5), WebGUI::URL::page('op=manageSettings')=>WebGUI::International::get(4), - WebGUI::URL::page('op=listLanguages')=>WebGUI::International::get(585), WebGUI::URL::page('op=listUsers')=>WebGUI::International::get(7), WebGUI::URL::gateway('trash')=>WebGUI::International::get(10), WebGUI::URL::page('op=listRoots')=>WebGUI::International::get(410), @@ -110,6 +109,12 @@ sub process { %hash ); } + if (WebGUI::Privilege::isInGroup(10)) { + %hash = ( + WebGUI::URL::page('op=listLanguages')=>WebGUI::International::get(585), + %hash + ); + } %hash = ( WebGUI::URL::page('op=viewHelpIndex')=>WebGUI::International::get(13), %hash diff --git a/lib/WebGUI/Operation/International.pm b/lib/WebGUI/Operation/International.pm index 5d7d8c718..fafebc1e1 100644 --- a/lib/WebGUI/Operation/International.pm +++ b/lib/WebGUI/Operation/International.pm @@ -85,7 +85,7 @@ sub _submenu { #------------------------------------------------------------------- sub www_addInternationalMessage { my ($output,$f); - return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(10)); $output = '

Add English Message

'; $f = WebGUI::HTMLForm->new(); $f->hidden("lid",1); @@ -118,7 +118,7 @@ sub www_addInternationalMessageSave { sub www_deleteLanguage { my ($output); return WebGUI::Privilege::vitalComponent() if ($session{form}{lid} < 1000 && $session{form}{lid} > 0); - return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(10)); $output .= '

'.WebGUI::International::get(42).'

'; $output .= WebGUI::International::get(587).'

'; $output .= '

write("insert into international (message,namespace,languageId,internationalId,lastUpdated) values (".quote($session{form}{message}).",".quote($session{form}{namespace}) @@ -187,7 +187,7 @@ sub www_editInternationalMessageSave { #------------------------------------------------------------------- sub www_editLanguage { my ($output, $dir, @files, $file, %data, $f, %options); - return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(10)); tie %data, 'Tie::CPHash'; $dir = $session{config}{extrasPath}.$session{os}{slash}."toolbar"; opendir (DIR,$dir) or WebGUI::ErrorHandler::warn("Can't open toolbar directory!"); @@ -219,7 +219,7 @@ sub www_editLanguage { #------------------------------------------------------------------- sub www_editLanguageSave { - return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(10)); if ($session{form}{lid} eq "new") { $session{form}{lid} = getNextId("languageId"); WebGUI::SQL->write("insert into language (languageId) values ($session{form}{lid})"); @@ -238,7 +238,7 @@ sub www_exportTranslation { #------------------------------------------------------------------- sub www_listInternationalMessages { - return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(10)); my ($output, $sth, $key, $p, $status,%data, %list, $deprecated, $i, $missing, @row, $f, $outOfDate, $ok); tie %data, 'Tie::CPHash'; %data = WebGUI::SQL->quickHash("select language from language where languageId=".$session{form}{lid}); @@ -369,7 +369,7 @@ sub www_listInternationalMessages { sub www_listLanguages { my ($output, $sth, %data); tie %data, 'Tie::CPHash'; - return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(3)); + return WebGUI::Privilege::adminOnly() unless (WebGUI::Privilege::isInGroup(10)); $output = '

'.WebGUI::International::get(586).'

'; $sth = WebGUI::SQL->read("select languageId,language from language where languageId<>1 order by language"); while (%data = $sth->hash) {