diff -up smeserver-password-1.0.0/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/passwordopt.sme8update smeserver-password-1.0.0/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/passwordopt --- smeserver-password-1.0.0/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/passwordopt.sme8update 2013-06-20 00:32:11.000000000 -0400 +++ smeserver-password-1.0.0/root/etc/e-smith/locale/en-us/etc/e-smith/web/functions/passwordopt 2013-06-20 16:07:13.000000000 -0400 @@ -15,7 +15,8 @@ Password aging - You can set password aging either globally (setting 'Activate password aging' flag to 'Yes') or for each user. + To enable aging set Activate password aging to Yes, then select each user you want aging enabled for. +
Setting Activate password aging to No disables aging check for all users, but keep your user settings in case you activate the aging back.
This can be done for locked or passwordless accounts too.
Note: Password aging doesn't apply to admin account
]]> diff -up smeserver-password-1.0.0/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/passwordopt.pm.sme8update smeserver-password-1.0.0/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/passwordopt.pm --- smeserver-password-1.0.0/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/passwordopt.pm.sme8update 2013-06-20 00:32:11.000000000 -0400 +++ smeserver-password-1.0.0/root/usr/lib/perl5/site_perl/esmith/FormMagick/Panel/passwordopt.pm 2013-06-20 16:01:35.000000000 -0400 @@ -161,9 +161,9 @@ $key->set_prop('Users', $q->param('Users $key = $db->get('passwordaging' ); if ( !$key) { -$db->set_value('passwordaging','configuration'); -$key = $db->get('passwordaging' ); -} + $db->set_value('passwordaging','configuration'); + $key = $db->get('passwordaging' ); + } $key->set_prop('Active', $q->param('Active')); $key->set_prop('PwdAge', $q->param('PwdAge')); @@ -171,24 +171,36 @@ $key->set_prop('PwdWarn', $q->param('Pwd $key->set_prop('LockAccount', $q->param('LockAccount')); $key->set_prop('DateReset', $q->param('DateReset')); -for my $user ($adb->users) - { - next unless (($user->prop('PasswordSet') || 'no') eq 'yes'); - my $passage = $user->prop('PasswordAge') || 'no'; - $user->set_prop('PasswordAge', 'no'); - } - my @cusers = $q->param('PasswordAge'); +my %opt1 ; +foreach (@cusers) { + $opt1{$_}="on"; + } +my $isok=0; -foreach my $m (@cusers) { - $key = $adb->get($m); - $key->set_prop('PasswordAge', 'yes') - } - - unless (system ("/sbin/e-smith/signal-event", "password-modify") == 0) { - return $self->error('CANNOT_SAVE'); +for 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 ( $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) { + $isok=1; + } + } +unless ($isok==0) { + return $self->error('CANNOT_SAVE'); } - + return $self->success('SUCCESSFULLY_MODIFIED'); } 1;