diff --git a/docs/upgrades/upgrade_4.8.0-4.9.0.sql b/docs/upgrades/upgrade_4.8.0-4.9.0.sql index fb1218b3b..0994f802d 100644 --- a/docs/upgrades/upgrade_4.8.0-4.9.0.sql +++ b/docs/upgrades/upgrade_4.8.0-4.9.0.sql @@ -30,4 +30,4 @@ insert into international (internationalId,languageId,namespace,message,lastUpda insert into settings (name,value) values ('smbPDC','your PDC'); insert into settings (name,value) values ('smbBDC','your BDC'); insert into settings (name,value) values ('smbDomain','your NT Domain'); - +insert into settings (name,value) values ('selfDeactivation',1); diff --git a/lib/WebGUI/Operation/Account.pm b/lib/WebGUI/Operation/Account.pm index 3a6c024e8..4052b4d59 100644 --- a/lib/WebGUI/Operation/Account.pm +++ b/lib/WebGUI/Operation/Account.pm @@ -52,8 +52,9 @@ sub _accountOptions { WebGUI::International::get(343).''; $output .= '
'; $output .= '
'; - } + } else { + $output = WebGUI::Privilege::adminOnly(); + } return $output; } @@ -256,7 +259,7 @@ sub www_deactivateAccountConfirm { my ($u); if ($session{user}{userId} < 26) { return WebGUI::Privilege::vitalComponent(); - } elsif ($session{user}{userId} != 1) { + } elsif (($session{user}{userId} != 1) and $session{setting}{selfDeactivation}) { $u = WebGUI::User->new($session{user}{userId}); $u->delete; WebGUI::Session::end($session{var}{sessionId}); diff --git a/lib/WebGUI/Operation/Settings.pm b/lib/WebGUI/Operation/Settings.pm index 4ff9a4f10..dc2605748 100644 --- a/lib/WebGUI/Operation/Settings.pm +++ b/lib/WebGUI/Operation/Settings.pm @@ -55,6 +55,7 @@ sub www_editUserSettings { $f->interval("sessionTimeout",WebGUI::International::get(142),WebGUI::DateTime::secondsToInterval($session{setting}{sessionTimeout})); $f->select("authMethod",\%authMethod,WebGUI::International::get(119),[$session{setting}{authMethod}]); $f->yesNo("usernameBinding",WebGUI::International::get(306),$session{setting}{usernameBinding}); + $f->yesNo("selfDeactivation","Allow users to deactivate their account",$session{setting}{selfDeactivation}); foreach (@{$session{authentication}{available}}) { $cmd = "WebGUI::Authentication::".$_."::formEditUserSettings";