Adding feture request 604526: making it possible to disallow user from deactivating their account

This commit is contained in:
Martin Kamerbeek 2002-11-24 17:47:04 +00:00
parent 49afc7e7fc
commit 1c84701e0d
3 changed files with 9 additions and 5 deletions

View file

@ -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 ('smbPDC','your PDC');
insert into settings (name,value) values ('smbBDC','your BDC'); 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 ('smbDomain','your NT Domain');
insert into settings (name,value) values ('selfDeactivation',1);

View file

@ -52,8 +52,9 @@ sub _accountOptions {
WebGUI::International::get(343).'</a>'; WebGUI::International::get(343).'</a>';
$output .= '<li><a href="'.WebGUI::URL::page('op=viewMessageLog').'">'.WebGUI::International::get(354).'</a>'; $output .= '<li><a href="'.WebGUI::URL::page('op=viewMessageLog').'">'.WebGUI::International::get(354).'</a>';
$output .= '<li><a href="'.WebGUI::URL::page('op=logout').'">'.WebGUI::International::get(64).'</a>'; $output .= '<li><a href="'.WebGUI::URL::page('op=logout').'">'.WebGUI::International::get(64).'</a>';
$output .= '<li><a href="'.WebGUI::URL::page('op=deactivateAccount').'">'. $output .= '<li><a href="'.WebGUI::URL::page('op=deactivateAccount').'">'.
WebGUI::International::get(65).'</a>'; WebGUI::International::get(65).'</a>' if ($session{setting}{selfDeactivation});
$output .= '</ul></div>'; $output .= '</ul></div>';
return $output; return $output;
} }
@ -241,13 +242,15 @@ sub www_deactivateAccount {
$output = www_displayLogin(); $output = www_displayLogin();
} elsif ($session{user}{userId} < 26) { } elsif ($session{user}{userId} < 26) {
$output = WebGUI::Privilege::vitalComponent(); $output = WebGUI::Privilege::vitalComponent();
} else { } elsif ($session{setting}{selfDeactivation}) {
$output = '<h1>'.WebGUI::International::get(42).'</h1>'; $output = '<h1>'.WebGUI::International::get(42).'</h1>';
$output .= WebGUI::International::get(60).'<p>'; $output .= WebGUI::International::get(60).'<p>';
$output .= '<div align="center"><a href="'.WebGUI::URL::page('op=deactivateAccountConfirm').'">'. $output .= '<div align="center"><a href="'.WebGUI::URL::page('op=deactivateAccountConfirm').'">'.
WebGUI::International::get(44).'</a>'; WebGUI::International::get(44).'</a>';
$output .= '&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.WebGUI::URL::page().'">'.WebGUI::International::get(45).'</a></div>'; $output .= '&nbsp;&nbsp;&nbsp;&nbsp;<a href="'.WebGUI::URL::page().'">'.WebGUI::International::get(45).'</a></div>';
} } else {
$output = WebGUI::Privilege::adminOnly();
}
return $output; return $output;
} }
@ -256,7 +259,7 @@ sub www_deactivateAccountConfirm {
my ($u); my ($u);
if ($session{user}{userId} < 26) { if ($session{user}{userId} < 26) {
return WebGUI::Privilege::vitalComponent(); 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 = WebGUI::User->new($session{user}{userId});
$u->delete; $u->delete;
WebGUI::Session::end($session{var}{sessionId}); WebGUI::Session::end($session{var}{sessionId});

View file

@ -55,6 +55,7 @@ sub www_editUserSettings {
$f->interval("sessionTimeout",WebGUI::International::get(142),WebGUI::DateTime::secondsToInterval($session{setting}{sessionTimeout})); $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->select("authMethod",\%authMethod,WebGUI::International::get(119),[$session{setting}{authMethod}]);
$f->yesNo("usernameBinding",WebGUI::International::get(306),$session{setting}{usernameBinding}); $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}}) { foreach (@{$session{authentication}{available}}) {
$cmd = "WebGUI::Authentication::".$_."::formEditUserSettings"; $cmd = "WebGUI::Authentication::".$_."::formEditUserSettings";