diff options
| author | Angelo Naselli <anaselli@linux.it> | 2014-10-11 13:13:03 +0200 | 
|---|---|---|
| committer | Angelo Naselli <anaselli@linux.it> | 2014-10-11 13:13:03 +0200 | 
| commit | 0cc90fff930e9ece8b1e987a4331b6cbe2f61533 (patch) | |
| tree | 3f3ceed1ac76eab1c428104a936a88733d43e44a /lib/AdminPanel/Module | |
| parent | ff7c7697aaee4e71db4840e98ea747a8639471f4 (diff) | |
| download | manatools-0cc90fff930e9ece8b1e987a4331b6cbe2f61533.tar manatools-0cc90fff930e9ece8b1e987a4331b6cbe2f61533.tar.gz manatools-0cc90fff930e9ece8b1e987a4331b6cbe2f61533.tar.bz2 manatools-0cc90fff930e9ece8b1e987a4331b6cbe2f61533.tar.xz manatools-0cc90fff930e9ece8b1e987a4331b6cbe2f61533.zip | |
Better group filtering
Diffstat (limited to 'lib/AdminPanel/Module')
| -rw-r--r-- | lib/AdminPanel/Module/Users.pm | 15 | 
1 files changed, 12 insertions, 3 deletions
| diff --git a/lib/AdminPanel/Module/Users.pm b/lib/AdminPanel/Module/Users.pm index 12925e1e..b32b9485 100644 --- a/lib/AdminPanel/Module/Users.pm +++ b/lib/AdminPanel/Module/Users.pm @@ -601,7 +601,7 @@ sub _addGroupDialog {                  ## check data                  my $groupname = $groupName->value();                  my ($continue, $errorString) = $self->sh_users->valid_groupname($groupname); -                my $nm = $continue && $self->sh_users->groupNameExist($groupname); +                my $nm = $continue && $self->sh_users->groupNameExists($groupname);                  if ($nm) {                      $groupName->setValue("");                      $errorString = $self->loc->N("Group already exists, please choose another Group Name"); @@ -1200,8 +1200,17 @@ sub _refreshGroups {          if ($filtergroups && $g->Gid($self->sh_users->USER_GetValue) > 499 && $g->Gid($self->sh_users->USER_GetValue) < 1000) {              my $groupname = $g->GroupName($self->sh_users->USER_GetValue);              my $l = $self->sh_users->ctx->LookupUserByName($groupname); -            next if ! defined($l); -            next LOOP if $l->HomeDir($self->sh_users->USER_GetValue) =~ /^\/($|var\/|run\/)/ || $l->LoginShell($self->sh_users->USER_GetValue) =~ /(nologin|false)$/; +            if (!defined($l)) { +                my $members  = $self->sh_users->ctx->EnumerateUsersByGroup($groupname); +                next LOOP if !scalar(@{$members}); +                foreach my $username (@$members) { +                    my $userEnt = $self->sh_users->ctx->LookupUserByName($username); +                    next LOOP if $userEnt->HomeDir($self->sh_users->USER_GetValue) =~ /^\/($|var\/|run\/)/ || $userEnt->LoginShell($self->sh_users->USER_GetValue) =~ /(nologin|false)$/; +                } +            } +            else { +                next LOOP if $l->HomeDir($self->sh_users->USER_GetValue) =~ /^\/($|var\/|run\/)/ || $l->LoginShell($self->sh_users->USER_GetValue) =~ /(nologin|false)$/; +            }          }          push @GroupReal, $g if $g->GroupName($self->sh_users->USER_GetValue) =~ /^\Q$strfilt/; | 
