Skip to content

Commit 90c357a

Browse files
Added search extractor
1 parent 620a90c commit 90c357a

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

internal/search/extract.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package search
22

33
import (
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

Comments
 (0)