@@ -47,7 +47,7 @@ def __init__(
47
47
# Retrieve and validate user and group information
48
48
annotated_groups , annotated_users = self ._retrieve_entries ()
49
49
self .validated_groups = self ._validate_groups (annotated_groups )
50
- self .validated_users = self ._validate_users (annotated_users )
50
+ self .validated_users = self ._validate_users (annotated_users , domain )
51
51
if self .debug :
52
52
log .msg (
53
53
f"Validated { len (self .validated_groups )} groups and { len (self .validated_users )} users." ,
@@ -195,34 +195,41 @@ def _validate_groups(
195
195
)
196
196
except ValidationError as exc :
197
197
name = group_dict .get ("cn" , "unknown" )
198
- log .msg (f"Validation failed for group '{ name } '." )
198
+ log .msg (f"... group '{ name } ' failed validation ." )
199
199
for error in exc .errors ():
200
200
log .msg (
201
- f"... '{ error ['loc' ][0 ]} ': { error ['msg' ]} but '{ error ['input' ]} ' was provided." ,
201
+ f" -> '{ error ['loc' ][0 ]} ': { error ['msg' ]} but '{ error ['input' ]} ' was provided." ,
202
202
)
203
203
return output
204
204
205
205
def _validate_users (
206
206
self : Self ,
207
207
annotated_users : list [tuple [JSONDict , list [type [LDAPObjectClass ]]]],
208
+ domain : str ,
208
209
) -> list [LDAPAttributeAdaptor ]:
209
210
"""Return a list of LDAPAttributeAdaptors representing validated user data."""
210
211
if self .debug :
211
212
log .msg (f"Attempting to validate { len (annotated_users )} users." )
212
213
output = []
213
214
for user_dict , required_classes in annotated_users :
215
+ name = user_dict .get ("cn" , "unknown" )
214
216
try :
215
- output .append (
216
- LDAPAttributeAdaptor .from_attributes (
217
- user_dict ,
218
- required_classes = required_classes ,
219
- ),
220
- )
217
+ if (user_domain := user_dict .get ("domain" , None )) == domain :
218
+ output .append (
219
+ LDAPAttributeAdaptor .from_attributes (
220
+ user_dict ,
221
+ required_classes = required_classes ,
222
+ ),
223
+ )
224
+ else :
225
+ log .msg (f"... user '{ name } ' failed validation." )
226
+ log .msg (
227
+ f" -> 'domain': expected '{ domain } ' but '{ user_domain } ' was provided." ,
228
+ )
221
229
except ValidationError as exc :
222
- name = user_dict .get ("cn" , "unknown" )
223
- log .msg (f"Validation failed for user '{ name } '." )
230
+ log .msg (f"... user '{ name } ' failed validation." )
224
231
for error in exc .errors ():
225
232
log .msg (
226
- f"... '{ error ['loc' ][0 ]} ': { error ['msg' ]} but '{ error ['input' ]} ' was provided." ,
233
+ f" -> '{ error ['loc' ][0 ]} ': { error ['msg' ]} but '{ error ['input' ]} ' was provided." ,
227
234
)
228
235
return output
0 commit comments