diff -Nur smeserver-password-1.2.0.old8823/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/passwordopt.pm smeserver-password-1.2.0.bz8823/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/passwordopt.pm --- smeserver-password-1.2.0.old8823/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/passwordopt.pm 2015-02-06 17:03:34.319193079 +0100 +++ smeserver-password-1.2.0.bz8823/root/usr/share/perl5/vendor_perl/esmith/FormMagick/Panel/passwordopt.pm 2015-02-06 21:26:41.486827403 +0100 @@ -14,6 +14,7 @@ our @EXPORT = qw(); our $db = esmith::ConfigDB->open(); our $adb = esmith::AccountsDB->open(); +our @acctName; sub new { @@ -171,43 +172,35 @@ $key->set_prop('LockAccount', $q->param('LockAccount')); $key->set_prop('DateReset', $q->param('DateReset')); -# this way something goes wrong when deselecting all one stays -#my @cusers = $q->param('PasswordAge'); -# workaround use CGI; my $cgi = CGI->new; my @cusers = $cgi->param('PasswordAge'); -my %opt1 ; -foreach (@cusers) { - $opt1{$_}="on"; - } my $isok=0; -for my $user ($adb->users) - { +foreach my $user ($adb->users) + { # next user unless password is set next unless (($user->prop('PasswordSet') || 'no') eq 'yes'); - my $passage = $user->prop('PasswordAge') || 'no'; - # $user->set_prop('PasswordAge', 'no'); - my $acctName=$user->key; - if ( defined $opt1{$acctName} eq "on" ) - { - $user->set_prop('PasswordAge', 'yes'); - } - else - { - $user->set_prop('PasswordAge', 'no'); - } - unless (system ("/sbin/e-smith/signal-event", "password-modify", $acctName) == 0) { + my $passage = $user->prop('PasswordAge') || 'no'; + $user->set_prop('PasswordAge', 'no'); + my $username = $user-> key; + push @acctName, $username; + } + + #we retrieve if the modify box is checked and set to on + foreach my $m (@cusers) { + $key = $adb->get($m); + $key->set_prop('PasswordAge','yes') + } + + unless (system ("/sbin/e-smith/signal-event", "password-modify", @acctName) == 0) { $isok=1; } - } -unless ($isok==0) { - return $self->error('CANNOT_SAVE'); - } + unless ($isok==0) { + return $self->error('CANNOT_SAVE'); + } -return $self->success('SUCCESSFULLY_MODIFIED'); -} + return $self->success('SUCCESSFULLY_MODIFIED'); + } 1; -