ldap: add optional classes to query_users
authorDominik Csapak <d.csapak@proxmox.com>
Fri, 13 Mar 2020 12:18:43 +0000 (13:18 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Fri, 20 Mar 2020 08:33:53 +0000 (09:33 +0100)
and filter by it

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
src/PVE/LDAP.pm

index 3294c51..ff98e36 100644 (file)
@@ -94,7 +94,7 @@ sub auth_user_dn {
 }
 
 sub query_users {
-    my ($ldap, $filter, $attributes, $base_dn) = @_;
+    my ($ldap, $filter, $attributes, $base_dn, $classes) = @_;
 
     # build filter from given filter and attribute list
     my $tmp = "(|";
@@ -103,6 +103,14 @@ sub query_users {
     }
     $tmp .= ")";
 
+    if ($classes) {
+       $tmp = "(&$tmp(|";
+       for my $class (@$classes) {
+           $tmp .= "(objectclass=$class)";
+       }
+       $tmp .= "))";
+    }
+
     if ($filter) {
        $filter = "($filter)" if $filter !~ m/^\(.*\)$/;
        $filter = "(&${filter}${tmp})"