@@ -2,6 +2,7 @@ package search
22
33import (
44 "crypto/tls"
5+ "fmt"
56
67 "github.com/PythonHacker24/linux-acl-management-backend/config"
78 "github.com/go-ldap/ldap/v3"
@@ -13,8 +14,8 @@ import (
1314 Users will be able to add users to blacklist which shouldn't be mentioned to the users.
1415*/
1516
16- /* returns all users in LDAP server */
17- func GetAllUsersFromLDAP () ([]User , error ) {
17+ /* returns search for query in the pool of all users in LDAP server */
18+ func GetAllUsersFromLDAP (query string ) ([]User , error ) {
1819
1920 var l * ldap.Conn
2021 var err error
@@ -44,10 +45,19 @@ func GetAllUsersFromLDAP() ([]User, error) {
4445 return nil , err
4546 }
4647
48+ /* wild card to avoid errors */
49+ if query == "" {
50+ query = "*"
51+ }
52+
53+ /* filter for query */
54+ // filter := fmt.Sprintf("(|(cn=%s*)(uid=%s*)(mail=%s*))", query, query, query)
55+ filter := fmt .Sprintf ("(&(objectClass=inetOrgPerson)(|(uid=%s*)(cn=%s*)(mail=%s*)))" , query , query , query )
56+
4757 /* search for users */
4858 searchRequest := ldap .NewSearchRequest (
4959 /* Base DN */
50- config .BackendConfig .Authentication .LDAPConfig .AdminDN ,
60+ config .BackendConfig .Authentication .LDAPConfig .SearchBase ,
5161 ldap .ScopeWholeSubtree ,
5262 ldap .NeverDerefAliases ,
5363 /* size limit */
@@ -57,7 +67,7 @@ func GetAllUsersFromLDAP() ([]User, error) {
5767 /* types only */
5868 false ,
5969 /* filter */
60- "(objectClass=person)" ,
70+ filter ,
6171 /* attributes to retrieve */
6272 []string {"cn" , "mail" , "sAMAccountName" }, //
6373 nil ,
0 commit comments