From 03c017c489b4ee344d842fb340dff16027d18c1b Mon Sep 17 00:00:00 2001 From: Daouda Lo Date: Fri, 4 Jul 2003 10:45:36 +0000 Subject: - comute Lock/Expire Time to set status --- userdrake | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/userdrake b/userdrake index 279190d..ac18dfc 100755 --- a/userdrake +++ b/userdrake @@ -166,10 +166,13 @@ sub NotebookSwitch { my $page = $nb->get_current_page(); TreeUnselect($usertree) ; TreeUnselect($grouptree); } -sub ComputeExpire { +sub ComputeLockExpire { my $l = shift; my $ep = $l->ShadowExpire($GetValue); - + my $tm = ceil(time()/(24*60*60)); + $ep = -1 if ( int($tm) <= $ep); + my $status = $ctx->IsLocked($l)?N("Locked"):($ep != -1 ?N("Expired"):''); + $status } sub RefreshUsersFull { my ($filterusers, $strfilt) = @_; @@ -179,9 +182,9 @@ sub RefreshUsersFull { my @UserReal; LOOP: foreach my $l (@$users) { next LOOP if ($filterusers && $l->Uid($GetValue) <= 499 || $l->Uid($GetValue) == 65534) ; push(@UserReal, $l) if $l->UserName($GetValue) =~ /^\Q$strfilt/; }; foreach my $l (@UserReal) { - $a = $l->Gid($GetValue); $group = $ctx->LookupGroupById($a); $groupnm = ''; $expr = + $a = $l->Gid($GetValue); $group = $ctx->LookupGroupById($a); $groupnm = ''; $expr = ComputeLockExpire($l); $group and $groupnm = $group->GroupName($GetValue); - $utree_model->append_set([ 0 => $l->UserName($GetValue), 1 => $l->Uid($GetValue), 2 => $groupnm, 3 => $l->Gecos($GetValue), 4 => $l->LoginShell($GetValue), 5 => $l->HomeDir($GetValue), 6 => $ctx->IsLocked($l)?N("Locked"):($expr != -1 ?N("Expired"):'')]); + $utree_model->append_set([ 0 => $l->UserName($GetValue), 1 => $l->Uid($GetValue), 2 => $groupnm, 3 => $l->Gecos($GetValue), 4 => $l->LoginShell($GetValue), 5 => $l->HomeDir($GetValue), 6 => $expr]); } } sub RefreshGroupsFull { @@ -226,16 +229,16 @@ sub AddUser { if (!$r) { $u{username} = $us->{o}->{login}->get_text(); $error = 0; if (!valid($u{username})) { RaiseError($us->{error}) }; - my $nm = $ctx->LookupUserByName($u{username}); + !$error and my $nm = $ctx->LookupUserByName($u{username}); if ($nm) { RaiseError(N("User already exists, please choose another User Name")); $us->{o}->{login}->set_text('') }; $u{passwd} = $us->{o}->{passwd}->get_text(); if ($u{passwd} ne $us->{o}->{confpasswd}->get_text()) { RaiseError(N("Password Mismatch")) }; if ($sec{SECURE_LEVEL} > 3 && length($u{passwd}) < 6) { RaiseError(N("This password is too simple. \n Good passwords should be > 6 caracters")) }; - my $userEnt = $ctx->InitUser($u{username}, $is_system); + !$error and my $userEnt = $ctx->InitUser($u{username}, $is_system); if ($us->{o}->{createhomedir}->get_active) { $dontcreatehomedir = 0; $u{homedir} = $us->{o}->{homedir}->get_text(); - $userEnt->HomeDir($u{homedir}); + $userEnt and $userEnt->HomeDir($u{homedir}); } else { $dontcreatehomedir = 1 } @@ -266,8 +269,7 @@ sub AddUser { } } } else { - $u{gid} = Add2UsersGroup($u{username}); - #debug Info (to be removed before final) + !$error and $u{gid} = Add2UsersGroup($u{username}); } if(!$error) { $u{gecos} = $us->{o}->{fullname}->get_text(); $u{loginshell} = $us->{o}->{shells}->entry->get_text(); -- cgit v1.2.1