aboutsummaryrefslogtreecommitdiffstats
path: root/lib/AdminPanel/Shared/Users.pm
diff options
context:
space:
mode:
authorAngelo Naselli <anaselli@linux.it>2014-10-11 19:06:25 +0200
committerAngelo Naselli <anaselli@linux.it>2014-10-11 19:06:25 +0200
commit26413fb9b2dd04171253d1480b8402cf5d74f0ad (patch)
tree447cec94818d1a9e76f6a1b3464a18aa4072d499 /lib/AdminPanel/Shared/Users.pm
parent68df8b379529df413788a324044127f0a89476a0 (diff)
downloadmanatools-26413fb9b2dd04171253d1480b8402cf5d74f0ad.tar
manatools-26413fb9b2dd04171253d1480b8402cf5d74f0ad.tar.gz
manatools-26413fb9b2dd04171253d1480b8402cf5d74f0ad.tar.bz2
manatools-26413fb9b2dd04171253d1480b8402cf5d74f0ad.tar.xz
manatools-26413fb9b2dd04171253d1480b8402cf5d74f0ad.zip
moved getUserInfo to Shared
Diffstat (limited to 'lib/AdminPanel/Shared/Users.pm')
-rw-r--r--lib/AdminPanel/Shared/Users.pm61
1 files changed, 60 insertions, 1 deletions
diff --git a/lib/AdminPanel/Shared/Users.pm b/lib/AdminPanel/Shared/Users.pm
index 52e939b6..58b1a418 100644
--- a/lib/AdminPanel/Shared/Users.pm
+++ b/lib/AdminPanel/Shared/Users.pm
@@ -775,6 +775,65 @@ sub getGroupsInfo {
#=============================================================
+=head2 getUserInfo
+
+=head3 INPUT
+
+ $username: user name
+
+=head3 OUTPUT
+
+$userInfo: HASH reference containing
+ uid => user identifier
+ gid => group identifier
+ fullname => user full name
+ home => home directory
+ shell => user shell
+ expire => shadow expire time
+ locked => is locked?
+ exp_min => shadow Min
+ exp_max => shadow Max
+ exp_warn => shadow Warn
+ exp_inact=> shadow Inact
+ members => groups the user belongs to
+
+=head3 DESCRIPTION
+
+This method get all the information for the given user
+
+=cut
+
+#=============================================================
+sub getUserInfo {
+ my ($self, $username) = @_;
+
+ my $userInfo = {};
+ return $userInfo if !defined $self->ctx;
+
+ my $userEnt = $self->ctx->LookupUserByName($username);
+ return $userInfo if !defined($userEnt);
+
+ my $fullname = $userEnt->Gecos($self->USER_GetValue);
+ utf8::decode($fullname);
+ $userInfo->{fullname} = $fullname;
+ $userInfo->{shell} = $userEnt->LoginShell($self->USER_GetValue);
+ $userInfo->{home} = $userEnt->HomeDir($self->USER_GetValue);
+ $userInfo->{uid} = $userEnt->Uid($self->USER_GetValue);
+ $userInfo->{gid} = $userEnt->Gid($self->USER_GetValue);
+ $userInfo->{expire} = $userEnt->ShadowExpire($self->USER_GetValue);
+ $userInfo->{locked} = $self->ctx->IsLocked($userEnt);
+
+ $userInfo->{exp_min} = $userEnt->ShadowMin($self->USER_GetValue);
+ $userInfo->{exp_max} = $userEnt->ShadowMax($self->USER_GetValue);
+ $userInfo->{exp_warn} = $userEnt->ShadowWarn($self->USER_GetValue);
+ $userInfo->{exp_inact} = $userEnt->ShadowInact($self->USER_GetValue);
+ $userInfo->{members} = $self->ctx->EnumerateGroupsByUser($username);
+
+ return $userInfo;
+}
+
+#=============================================================
+
=head2 getUsersInfo
=head3 INPUT
@@ -943,7 +1002,7 @@ sub computeLockExpire {
my $tm = ceil(time()/(24*60*60));
$ep = -1 if int($tm) <= $ep;
my $status = $self->ctx->IsLocked($l) ? $self->loc->N("Locked") : ($ep != -1 ? $self->loc->N("Expired") : '');
- $status;
+ return $status;
}
#=============================================================