public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[Web] apply LDAP filter
010d8987
data/conf/phpfpm/crons/ldap-sync.php | 7 +++++--
data/web/inc/functions.auth.inc.php | 8 ++++----
2 files changed, 9 insertions(+), 6 deletions(-)
Diff
diff --git a/data/conf/phpfpm/crons/ldap-sync.php b/data/conf/phpfpm/crons/ldap-sync.php
index 5686bdac..20cf7f29 100644
--- a/data/conf/phpfpm/crons/ldap-sync.php
+++ b/data/conf/phpfpm/crons/ldap-sync.php
@@ -110,8 +110,11 @@ fwrite($lock_file_handle, getmypid());
fclose($lock_file_handle);
// 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'], "*")
->select([$iam_settings['username_field'], $iam_settings['attribute_field'], 'displayname'])
->paginate($max);
diff --git a/data/web/inc/functions.auth.inc.php b/data/web/inc/functions.auth.inc.php
index 6075ab76..b7b8dbc6 100644
--- a/data/web/inc/functions.auth.inc.php
+++ b/data/web/inc/functions.auth.inc.php
@@ -493,12 +493,12 @@ function ldap_mbox_login($user, $pass, $iam_settings, $extra = null){
}
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'])) {
- $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();
} catch (Exception $e) {