From 9873dc30f248c3b7cc928e9ce163754409c6ed9f Mon Sep 17 00:00:00 2001 From: baeumma <none@none> Date: Tue, 28 Feb 2012 10:43:43 +0100 Subject: [PATCH] expiration warning works only when pwdChangedTime is set --- ldap_NS.pl | 64 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 28 deletions(-) diff --git a/ldap_NS.pl b/ldap_NS.pl index 6f39498..1029d59 100755 --- a/ldap_NS.pl +++ b/ldap_NS.pl @@ -315,41 +315,49 @@ sub connect_ldap_snmc($$;$) { } elsif (defined($pp->{'warning'}->{'timeBeforeExpiration'})) { - my ($days, $hours, $minutes) = (gmtime($pp->{'warning'}->{'timeBeforeExpiration'}))[7,2,1]; - my @values = (); - my @formats = (); + if ($pp->{'warning'}->{'timeBeforeExpiration'} > 0) { - if ($days == 1) { - push (@formats, 'one day'); - } - elsif ($days > 1) { - push (@values, $days); - push (@formats, '%d days'); - } + my ($days, $hours, $minutes) = (gmtime($pp->{'warning'}->{'timeBeforeExpiration'}))[7,2,1]; + my @values = (); + my @formats = (); - if ($hours == 1) { - push (@formats, 'one hour'); - } - elsif ($hours > 1) { - push (@values, $hours); - push (@formats, '%d hours'); - } + if ($days == 1) { + push (@formats, 'one day'); + } + elsif ($days > 1) { + push (@values, $days); + push (@formats, '%d days'); + } - if ($minutes <= 1) { - push (@formats, 'one minute'); - } - elsif ($minutes > 1) { - push (@values, $minutes); - push (@formats, '%d minutes'); - } + if ($hours == 1) { + push (@formats, 'one hour'); + } + elsif ($hours > 1) { + push (@values, $hours); + push (@formats, '%d hours'); + } + + if ($minutes <= 1) { + push (@formats, 'one minute'); + } + elsif ($minutes > 1) { + push (@values, $minutes); + push (@formats, '%d minutes'); + } + + my $message = sprintf('Your password will expire in '.join(', ', @formats), @values); - my $message = sprintf('Your password will expire in '.join(', ', @formats), @values); + if ($days < 7) { + $session->param('error', $message); + } + else { + $session->param('message', $message); + } - if ($days < 7) { - $session->param('error', $message); } else { - $session->param('message', $message); + # no ppolicy, or no pwdChangedTime + $session->param('message', 'Your password never expires'); } } -- GitLab