@@ -381,60 +381,58 @@ def create_authn_request(self, destination, vorg="", scoping=None,
381381 item = sp_type .SPType (text = conf_sp_type )
382382 extensions .add_extension_element (item )
383383
384- if requested_attributes :
385- requested_attributes += \
386- self .config .getattr ('requested_attributes' , 'sp' )
387- else :
388- requested_attributes = \
389- self .config .getattr ('requested_attributes' , 'sp' )
390-
391- if requested_attributes :
392- if not extensions :
393- extensions = Extensions ()
384+ requested_attrs = (
385+ requested_attributes
386+ or self .config .getattr ('requested_attributes' , 'sp' )
387+ or []
388+ )
389+
390+ if not extensions :
391+ extensions = Extensions ()
392+
393+ items = []
394+ for attr in requested_attrs :
395+ friendly_name = attr .get ('friendly_name' )
396+ name = attr .get ('name' )
397+ name_format = attr .get ('name_format' )
398+ is_required = str (attr .get ('required' , False )).lower ()
399+
400+ if not name and not friendly_name :
401+ raise ValueError (
402+ "Missing required attribute: '{}' or '{}'" .format (
403+ 'name' , 'friendly_name' ))
404+
405+ if not name :
406+ for converter in self .config .attribute_converters :
407+ try :
408+ name = converter ._to [friendly_name .lower ()]
409+ except KeyError :
410+ continue
411+ else :
412+ if not name_format :
413+ name_format = converter .name_format
414+ break
394415
395- items = []
396- for attr in requested_attributes :
397- friendly_name = attr .get ('friendly_name' )
398- name = attr .get ('name' )
399- name_format = attr .get ('name_format' )
400- is_required = str (attr .get ('required' , False )).lower ()
401-
402- if not name and not friendly_name :
403- raise ValueError (
404- "Missing required attribute: '{}' or '{}'" .format (
405- 'name' , 'friendly_name' ))
406-
407- if not name :
408- for converter in self .config .attribute_converters :
409- try :
410- name = converter ._to [friendly_name .lower ()]
411- except KeyError :
412- continue
413- else :
414- if not name_format :
415- name_format = converter .name_format
416- break
417-
418- if not friendly_name :
419- for converter in self .config .attribute_converters :
420- try :
421- friendly_name = converter ._fro [name .lower ()]
422- except KeyError :
423- continue
424- else :
425- if not name_format :
426- name_format = converter .name_format
427- break
428-
429- items .append (RequestedAttribute (
430- is_required = is_required ,
431- name_format = name_format ,
432- friendly_name = friendly_name ,
433- name = name ))
434-
435- item = RequestedAttributes (
436- extension_elements = items )
437- extensions .add_extension_element (item )
416+ if not friendly_name :
417+ for converter in self .config .attribute_converters :
418+ try :
419+ friendly_name = converter ._fro [name .lower ()]
420+ except KeyError :
421+ continue
422+ else :
423+ if not name_format :
424+ name_format = converter .name_format
425+ break
426+
427+ items .append (RequestedAttribute (
428+ is_required = is_required ,
429+ name_format = name_format ,
430+ friendly_name = friendly_name ,
431+ name = name ))
432+
433+ item = RequestedAttributes (
434+ extension_elements = items )
435+ extensions .add_extension_element (item )
438436
439437 force_authn = str (
440438 kwargs .pop ("force_authn" , None )
0 commit comments