@@ -208,48 +208,13 @@ func (i *LDAP) GetEducationUser(ctx context.Context, nameOrID string) (*libregra
208208
209209// GetEducationUsers implements the EducationBackend interface for the LDAP backend.
210210func (i * LDAP ) GetEducationUsers (ctx context.Context ) ([]* libregraph.EducationUser , error ) {
211- logger := i .logger .SubloggerWithRequestID (ctx )
212- logger .Debug ().Str ("backend" , "ldap" ).Msg ("GetEducationUsers" )
213-
214- var userFilter string
215-
211+ var filter string
216212 if i .userFilter == "" {
217- userFilter = fmt .Sprintf ("(objectClass=%s)" , i .educationConfig .userObjectClass )
213+ filter = fmt .Sprintf ("(objectClass=%s)" , i .educationConfig .userObjectClass )
218214 } else {
219- userFilter = fmt .Sprintf ("(&%s(objectClass=%s))" , i .userFilter , i .educationConfig .userObjectClass )
220- }
221-
222- searchRequest := ldap .NewSearchRequest (
223- i .userBaseDN ,
224- i .userScope ,
225- ldap .NeverDerefAliases , 0 , 0 , false ,
226- userFilter ,
227- i .getEducationUserAttrTypes (),
228- nil ,
229- )
230- logger .Debug ().Str ("backend" , "ldap" ).
231- Str ("base" , searchRequest .BaseDN ).
232- Str ("filter" , searchRequest .Filter ).
233- Int ("scope" , searchRequest .Scope ).
234- Int ("sizelimit" , searchRequest .SizeLimit ).
235- Interface ("attributes" , searchRequest .Attributes ).
236- Msg ("GetEducationUsers" )
237- res , err := i .conn .Search (searchRequest )
238- if err != nil {
239- return nil , errorcode .New (errorcode .ItemNotFound , err .Error ())
215+ filter = fmt .Sprintf ("(&%s(objectClass=%s))" , i .userFilter , i .educationConfig .userObjectClass )
240216 }
241-
242- users := make ([]* libregraph.EducationUser , 0 , len (res .Entries ))
243-
244- for _ , e := range res .Entries {
245- u := i .createEducationUserModelFromLDAP (e )
246- // Skip invalid LDAP users
247- if u == nil {
248- continue
249- }
250- users = append (users , u )
251- }
252- return users , nil
217+ return i .searchEducationUsers (ctx , filter )
253218}
254219
255220func (i * LDAP ) FilterEducationUsersByAttribute (ctx context.Context , attr , value string ) ([]* libregraph.EducationUser , error ) {
@@ -272,7 +237,11 @@ func (i *LDAP) FilterEducationUsersByAttribute(ctx context.Context, attr, value
272237 return nil , errorcode .New (errorcode .InvalidRequest , fmt .Sprintf ("filtering by attribute '%s' is not supported" , attr ))
273238 }
274239 filter := fmt .Sprintf ("(&%s(objectClass=%s)(%s=%s))" , i .userFilter , i .educationConfig .userObjectClass , ldap .EscapeFilter (ldapAttr ), ldap .EscapeFilter (value ))
240+ return i .searchEducationUsers (ctx , filter )
241+ }
275242
243+ // searchEducationUsers builds and executes an LDAP search for education users and converts the results to EducationUser models.
244+ func (i * LDAP ) searchEducationUsers (ctx context.Context , filter string ) ([]* libregraph.EducationUser , error ) {
276245 searchRequest := ldap .NewSearchRequest (
277246 i .userBaseDN ,
278247 i .userScope ,
@@ -281,20 +250,21 @@ func (i *LDAP) FilterEducationUsersByAttribute(ctx context.Context, attr, value
281250 i .getEducationUserAttrTypes (),
282251 nil ,
283252 )
284- logger .Debug ().Str ("base" , searchRequest .BaseDN ).
253+ logger := i .logger .SubloggerWithRequestID (ctx )
254+ logger .Debug ().Str ("backend" , "ldap" ).
255+ Str ("base" , searchRequest .BaseDN ).
285256 Str ("filter" , searchRequest .Filter ).
286257 Int ("scope" , searchRequest .Scope ).
287258 Int ("sizelimit" , searchRequest .SizeLimit ).
288259 Interface ("attributes" , searchRequest .Attributes ).
289- Msg ("LDAP Search Request " )
260+ Msg ("searchEducationUsers " )
290261
291262 res , err := i .conn .Search (searchRequest )
292263 if err != nil {
293264 return nil , errorcode .New (errorcode .ItemNotFound , err .Error ())
294265 }
295266
296267 users := make ([]* libregraph.EducationUser , 0 , len (res .Entries ))
297-
298268 for _ , e := range res .Entries {
299269 u := i .createEducationUserModelFromLDAP (e )
300270 // Skip invalid LDAP users
0 commit comments