Browse Source

[Web] apply LDAP filter

FreddleSpl0it 1 year ago
parent
commit
010d898786
2 changed files with 9 additions and 6 deletions
  1. 5 2
      data/conf/phpfpm/crons/ldap-sync.php
  2. 4 4
      data/web/inc/functions.auth.inc.php

+ 5 - 2
data/conf/phpfpm/crons/ldap-sync.php

@@ -110,8 +110,11 @@ fwrite($lock_file_handle, getmypid());
 fclose($lock_file_handle);
 fclose($lock_file_handle);
 
 
 // Get ldap users
 // Get ldap users
-$response = $iam_provider->query()
-  ->where($iam_settings['username_field'], "*")
+$ldap_query = $iam_provider->query();
+if (!empty($iam_settings['filter'])) {
+  $ldap_query = $ldap_query->rawFilter($iam_settings['filter']);
+}
+$response = $ldap_query->where($iam_settings['username_field'], "*")
   ->where($iam_settings['attribute_field'], "*")
   ->where($iam_settings['attribute_field'], "*")
   ->select([$iam_settings['username_field'], $iam_settings['attribute_field'], 'displayname'])
   ->select([$iam_settings['username_field'], $iam_settings['attribute_field'], 'displayname'])
   ->paginate($max);
   ->paginate($max);

+ 4 - 4
data/web/inc/functions.auth.inc.php

@@ -493,12 +493,12 @@ function ldap_mbox_login($user, $pass, $iam_settings, $extra = null){
   }
   }
 
 
   try {
   try {
-    $ldap_query = $iam_provider->query()
-      ->where($iam_settings['username_field'], '=', $user)
-      ->select([$iam_settings['username_field'], $iam_settings['attribute_field'], 'displayname', 'distinguishedname']);
+    $ldap_query = $iam_provider->query();
     if (!empty($iam_settings['filter'])) {
     if (!empty($iam_settings['filter'])) {
-      $ldap_query = $ldap_query->whereRaw($iam_settings['filter']);
+      $ldap_query = $ldap_query->rawFilter($iam_settings['filter']);
     }
     }
+    $ldap_query = $ldap_query->where($iam_settings['username_field'], '=', $user)
+      ->select([$iam_settings['username_field'], $iam_settings['attribute_field'], 'displayname', 'distinguishedname']);
 
 
     $user_res = $ldap_query->firstOrFail();
     $user_res = $ldap_query->firstOrFail();
   } catch (Exception $e) {
   } catch (Exception $e) {