]> git.proxmox.com Git - pmg-api.git/commitdiff
add groupclass as parameter in LDAPConfig
authorDominik Csapak <d.csapak@proxmox.com>
Thu, 19 Oct 2017 12:36:18 +0000 (14:36 +0200)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 19 Oct 2017 13:36:57 +0000 (15:36 +0200)
since different LDAP servers have different objectclasses for groups,
we have to make them configureable

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
PMG/LDAPCache.pm
PMG/LDAPConfig.pm

index 9ac3fe3563cfb666ee7713fe590f96ca29e5129c..f45d61b87f0250bfacc4226bccaaada8d5cf30e1 100755 (executable)
@@ -65,6 +65,7 @@ sub new {
     # split list returns an array not a reference
     $self->{accountattr} = [split_list($self->{accountattr})];
     $self->{mailattr} = [split_list($self->{mailattr})];
+    $self->{groupclass} = [split_list($self->{groupclass})];
 
     $self->{server1} = $args{server1};
     $self->{server2} = $args{server2};
@@ -261,7 +262,13 @@ sub querygroups {
 
     return undef if !$self->{groupbasedn};
 
-    my $filter = "(|(objectclass=group)(objectclass=univentionGroup))";
+    my $filter = "(|";
+
+    for my $class (@{$self->{groupclass}}) {
+       $filter .= "(objectclass=$class)";
+    }
+
+    $filter .= ")";
 
     my $page = Net::LDAP::Control::Paged->new(size => 100);
 
index 9c12dbb0cfcf2cae05d660b94ffb681f06501d9d..5f3c451b86f6dbb99440d6ba9ac5744e064aafe3 100644 (file)
@@ -92,6 +92,11 @@ sub properties {
            pattern => '[a-zA-Z0-9]+',
            default => "mail, userPrincipalName, proxyAddresses, othermailbox",
        },
+       groupclass => {
+           description => "List of objectclasses for groups.",
+           type => 'string', format => 'string-list',
+           default => "group, univentionGroup, ipausergroup",
+       },
     };
 }
 
@@ -110,6 +115,7 @@ sub options {
        filter => { optional => 1 },
        accountattr => { optional => 1 },
        mailattr => { optional => 1 },
+       groupclass => { optional => 1 },
     };
 }