diff --git a/docs/upgrades/upgrade_4.4.1-4.5.0.sql b/docs/upgrades/upgrade_4.4.1-4.5.0.sql
index 5139da48a..8e86a0053 100644
--- a/docs/upgrades/upgrade_4.4.1-4.5.0.sql
+++ b/docs/upgrades/upgrade_4.4.1-4.5.0.sql
@@ -29,7 +29,19 @@ insert into international values (78,'EventsCalendar',1,'Don\'t delete anything,
update wobject set editTimeout=editTimeout*3600;
insert into international values (707,"WebGUI",1,"Show debugging?");
insert into settings values ('showDebug',0);
-
+update settings set name='imageManagersGroup' where name='groupToManageImages';
+insert into settings values ('packageManagersGroup',6);
+insert into settings values ('styleManagersGroup',5);
+insert into settings values ('templateManagersGroup',8);
+delete from international where internationalId=414 and namespace='WebGUI';
+delete from international where internationalId=415 and namespace='WebGUI';
+delete from international where internationalId=413 and namespace='WebGUI';
+insert into international values (710,'WebGUI',1,'Edit Privilege Settings');
+insert into international values (711,'WebGUI',1,'Image Managers Group');
+insert into international values (712,'WebGUI',1,'Package Managers Group');
+insert into international values (713,'WebGUI',1,'Style Managers Group');
+insert into international values (714,'WebGUI',1,'Template Managers Group');
+delete from settings where name='onCriticalError';
diff --git a/lib/WebGUI/ErrorHandler.pm b/lib/WebGUI/ErrorHandler.pm
index 0a5c7c144..8c4a9adc9 100644
--- a/lib/WebGUI/ErrorHandler.pm
+++ b/lib/WebGUI/ErrorHandler.pm
@@ -15,10 +15,9 @@ use WebGUI::Session;
#-------------------------------------------------------------------
sub fatalError {
- my ($key, $log, $cgi, $logfile, $config, $friendly);
+ my ($key, $log, $cgi, $logfile, $config);
if (exists $session{cgi}) {
$cgi = $session{cgi};
- $friendly = 1 if ($session{setting}{onCriticalError} eq "friendly");
print WebGUI::Session::httpHeader();
} else {
use CGI;
@@ -32,38 +31,38 @@ sub fatalError {
$config = new Data::Config '../etc/WebGUI.conf';
$logfile = $config->param('logfile');
}
- print "
WebGUI Fatal Error
Something unexpected happened that caused this system to fault." unless ($friendly);
+ print "
WebGUI Fatal Error
Something unexpected happened that caused this system to fault." if ($session{setting}{showDebug});
$log = FileHandle->new(">>$logfile") or print "Can't open log file: ".$logfile
."\n
Check your WebGUI configuration file to set the path of the log file,
and check to be sure the web server has the privileges to write to the log file.";
- print $0." at ".localtime(time)." reported:
" unless ($friendly);
+ print $0." at ".localtime(time)." reported:
" if ($session{setting}{showDebug});
print $log localtime(time)." ".$0." FATAL: ".$_[0]."\n";
- print $_[0] unless ($friendly);
- print "
Caller
" unless ($friendly);
- print "Level 1 ".join(" ",caller(1)) unless ($friendly);
+ print $_[0] if ($session{setting}{showDebug});
+ print "Caller" if ($session{setting}{showDebug});
+ print "Level 1 ".join(" ",caller(1)) if ($session{setting}{showDebug});
print $log "\t".join(",",caller(1))."\n";
- print " | "."Level 2 ".join(" ",caller(2)) unless ($friendly);
+ print " | "."Level 2 ".join(" ",caller(2)) if ($session{setting}{showDebug});
print $log "\t".join(",",caller(2))."\n";
- print " | "."Level 3 ".join(" ",caller(3)) unless ($friendly);
+ print " | "."Level 3 ".join(" ",caller(3)) if ($session{setting}{showDebug});
print $log "\t".join(",",caller(3))."\n";
- print " | "."Level 4 ".join(" ",caller(4)) unless ($friendly);
+ print " | "."Level 4 ".join(" ",caller(4)) if ($session{setting}{showDebug});
print $log "\t".join(",",caller(4))."\n";
- print " | " unless ($friendly);
- print "Form Variables" unless ($friendly);
+ print " |
" if ($session{setting}{showDebug});
+ print "Form Variables
" if ($session{setting}{showDebug});
print $log "\t";
if (exists $session{form}) {
foreach $key (keys %{$session{form}}) {
- print $key." = ".$session{form}{$key}."
" unless ($friendly);
+ print $key." = ".$session{form}{$key}."
" if ($session{setting}{showDebug});
print $log $key."=".$session{form}{$key}." ";
}
print $log "\n";
} else {
- print "Cannot retrieve session information." unless ($friendly);
+ print "Cannot retrieve session information." if ($session{setting}{showDebug});
print $log "Session not accessible for form variable dump.\n";
}
print $log "\n";
$log->close;
- if ($friendly) {
+ unless ($session{setting}{showDebug}) {
print WebGUI::International::get(416).'
';
print '
'.$session{setting}{companyName};
print '
'.$session{setting}{companyEmail};
diff --git a/lib/WebGUI/Operation/Settings.pm b/lib/WebGUI/Operation/Settings.pm
index bbeb1cbf9..7c109ef4f 100644
--- a/lib/WebGUI/Operation/Settings.pm
+++ b/lib/WebGUI/Operation/Settings.pm
@@ -22,7 +22,8 @@ use WebGUI::SQL;
use WebGUI::URL;
our @ISA = qw(Exporter);
-our @EXPORT = qw(&www_editUserSettings &www_editUserSettingsSave &www_editCompanyInformation &www_editCompanyInformationSave
+our @EXPORT = qw(&www_editUserSettings &www_editUserSettingsSave &www_editCompanyInformation
+ &www_editCompanyInformationSave &www_editPrivilegeSettings &www_editPrivilegeSettingsSave
&www_editMailSettings &www_editMailSettingsSave &www_editMiscSettings
&www_editContentSettings &www_editContentSettingsSave &www_editMiscSettingsSave &www_manageSettings);
@@ -202,8 +203,7 @@ sub www_editMailSettingsSave {
#-------------------------------------------------------------------
sub www_editMiscSettings {
- my ($output, %criticalError, $f);
- %criticalError = ('debug'=>WebGUI::International::get(414), 'friendly'=>WebGUI::International::get(415));
+ my ($output, $f);
if (WebGUI::Privilege::isInGroup(3)) {
$output .= helpIcon(24);
$output .= ''.WebGUI::International::get(140).'
';
@@ -211,7 +211,6 @@ sub www_editMiscSettings {
$f->hidden("op","editMiscSettingsSave");
$f->yesNo("preventProxyCache",WebGUI::International::get(400),$session{setting}{preventProxyCache});
$f->yesNo("showDebug",WebGUI::International::get(707),$session{setting}{showDebug});
- $f->select("onCriticalError",\%criticalError,WebGUI::International::get(413),[$session{setting}{onCriticalError}]);
$f->submit;
$output .= $f->print;
} else {
@@ -225,13 +224,45 @@ sub www_editMiscSettingsSave {
if (WebGUI::Privilege::isInGroup(3)) {
_saveSetting("preventProxyCache");
_saveSetting("showDebug");
- _saveSetting("onCriticalError");
return www_manageSettings();
} else {
return WebGUI::Privilege::adminOnly();
}
}
+#-------------------------------------------------------------------
+sub www_editPrivilegeSettings {
+ my ($output, $f);
+ if (WebGUI::Privilege::isInGroup(3)) {
+ $output .= helpIcon(48);
+ $output .= ''.WebGUI::International::get(710).'
';
+ $f = WebGUI::HTMLForm->new;
+ $f->hidden("op","editPrivilegeSettingsSave");
+ $f->group("imageManagersGroup",WebGUI::International::get(711),[$session{setting}{imageManagersGroup}]);
+ $f->group("packageManagersGroup",WebGUI::International::get(712),[$session{setting}{packageManagersGroup}]);
+ $f->group("styleManagersGroup",WebGUI::International::get(713),[$session{setting}{styleManagersGroup}]);
+ $f->group("templateManagersGroup",WebGUI::International::get(714),[$session{setting}{templateManagersGroup}]);
+ $f->submit;
+ $output .= $f->print;
+ } else {
+ $output = WebGUI::Privilege::adminOnly();
+ }
+ return $output;
+}
+
+#-------------------------------------------------------------------
+sub www_editPrivilegeSettingsSave {
+ if (WebGUI::Privilege::isInGroup(3)) {
+ _saveSetting("imageManagersGroup");
+ _saveSetting("packageManagersGroup");
+ _saveSetting("styleManagersGroup");
+ _saveSetting("templateManagersGroup");
+ return www_manageSettings();
+ } else {
+ return WebGUI::Privilege::adminOnly();
+ }
+}
+
#-------------------------------------------------------------------
sub www_manageSettings {
my ($output);
@@ -243,6 +274,7 @@ sub www_manageSettings {
$output .= ''.WebGUI::International::get(525).'';
$output .= ''.WebGUI::International::get(133).'';
$output .= ''.WebGUI::International::get(140).'';
+ $output .= ''.WebGUI::International::get(710).'';
$output .= ''.WebGUI::International::get(308).'';
$output .= ''.WebGUI::International::get(117).'';
$output .= '';