Skip to content

Commit bb01758

Browse files
committed
Requested fixes
1 parent 531f6bd commit bb01758

File tree

1 file changed

+51
-53
lines changed

1 file changed

+51
-53
lines changed

src/saml2/client_base.py

Lines changed: 51 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)