0001-misc-handle-missing-title-or-birthdate-profile-attri.patch
src/authentic2_auth_fedict/adapters.py | ||
---|---|---|
185 | 185 |
else: |
186 | 186 |
birthdate = '' |
187 | 187 |
try: |
188 |
Attribute.objects.get(name='birthdate').set_value(user, birthdate, verified=True) |
|
189 |
except AttributeError: # native authentic date field |
|
190 |
birthdate = datetime.datetime.strptime(birthdate, '%d/%m/%Y').date() |
|
191 |
Attribute.objects.get(name='birthdate').set_value(user, birthdate, verified=True) |
|
188 |
try: |
|
189 |
Attribute.objects.get(name='birthdate').set_value(user, birthdate, verified=True) |
|
190 |
except AttributeError: # native authentic date field |
|
191 |
birthdate = datetime.datetime.strptime(birthdate, '%d/%m/%Y').date() |
|
192 |
Attribute.objects.get(name='birthdate').set_value(user, birthdate, verified=True) |
|
193 |
except Attribute.DoesNotExist: |
|
194 |
pass |
|
192 | 195 |
if int(nrn[6:9]) % 2: |
193 | 196 |
title = 'Monsieur' |
194 | 197 |
else: |
195 | 198 |
title = 'Madame' |
196 |
Attribute.objects.get(name='title').set_value(user, title, verified=True) |
|
199 |
try: |
|
200 |
Attribute.objects.get(name='title').set_value(user, title, verified=True) |
|
201 |
except Attribute.DoesNotExist: |
|
202 |
pass |
|
197 | 203 | |
198 | 204 |
if saml_attributes.get('givenName'): |
199 | 205 |
Attribute.objects.get(name='first_name').set_value( |
tests/test_all.py | ||
---|---|---|
250 | 250 |
assert backend_user.last_name == 'Bar' |
251 | 251 | |
252 | 252 | |
253 |
def test_missing_title_attribute(app, settings, issuer, user): |
|
254 |
Attribute.objects.filter(kind='title').delete() |
|
255 |
# email & title verified |
|
256 |
user.email = 'john.doe@verified.publik.love' |
|
257 |
user.email_verified = True |
|
258 |
user.first_name = 'Johnny' |
|
259 |
user.last_name = 'Smith' |
|
260 |
user.save() |
|
261 |
UserSAMLIdentifier.objects.create( |
|
262 |
user=user, |
|
263 |
name_id='c54db0a8ddc24a02a2d057f857d3b102', |
|
264 |
issuer=Issuer.objects.first(), |
|
265 |
) |
|
266 | ||
267 |
backend = FedictBackend() |
|
268 |
request = factory.get(path='/accounts/') |
|
269 |
request_user = User.objects.create( |
|
270 |
first_name='Foo', |
|
271 |
last_name='Bar', |
|
272 |
email='foo.bar@nowhere.null', |
|
273 |
) |
|
274 |
request.user = request_user |
|
275 |
saml_attributes = { |
|
276 |
'givenName': ['Doe'], |
|
277 |
'surname': ['John'], |
|
278 |
'last_name': ['Doe'], |
|
279 |
'first_name': ['John'], |
|
280 |
'username': ['john.doe'], |
|
281 |
'urn:be:fedict:iam:attr:fedid': ['c54db0a8ddc24a02a2d057f857d3b102'], |
|
282 |
'egovNRN': ['85073003328'], |
|
283 |
'is_superuser': ['false'], |
|
284 |
'issuer': 'https://idp.com/', |
|
285 |
'name_id_content': 'c54db0a8ddc24a02a2d057f857d3b102', |
|
286 |
'name_id_format': 'urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified', |
|
287 |
'name_id_name_qualifier': 'https://idp.com/idp/saml2/metadata', |
|
288 |
'name_id_content_orig': 'c54db0a8ddc24a02a2d057f857d3b102', |
|
289 |
} |
|
290 |
credentials = {'saml_attributes': saml_attributes} |
|
291 |
SessionMiddleware().process_request(request) |
|
292 |
MessageMiddleware().process_request(request) |
|
293 |
backend_user = backend.authenticate(request, **credentials) |
|
294 |
assert backend_user == request_user |
|
295 | ||
296 | ||
253 | 297 |
def test_provision_old_account_deleted(app, settings, issuer, user): |
254 | 298 |
backend = FedictBackend() |
255 | 299 |
request = factory.get(path='/accounts/') |
256 |
- |