diff --git a/lib/IdPAccountManager/SAMLMetadata.pm b/lib/IdPAccountManager/SAMLMetadata.pm index 532ea49317c96a3d54c4d45cb4142185c0854037..51efb4719cd3b35a4818b867c41f86e475bf0eb5 100644 --- a/lib/IdPAccountManager/SAMLMetadata.pm +++ b/lib/IdPAccountManager/SAMLMetadata.pm @@ -153,12 +153,12 @@ sub parse { push @{ $data->{contacts} }, $details; } } elsif ($child->localname() eq 'Organization') { - foreach my $name ($child->getChildrenByLocalName('OrganizationName')) { - $data->{name}->{ $name->getAttribute('xml:lang') } = $name->textContent(); - } - foreach my $name ($child->getChildrenByLocalName('OrganizationDisplayName')) { - $data->{display_name}->{ $name->getAttribute('xml:lang') } = $name->textContent(); - } + $data->{name} = _get_default_value( + $child, 'OrganizationName' + ); + $data->{display_name} = _get_default_value( + $child, 'OrganizationDisplayName' + ); } ## Getting X.509 certificates @@ -174,9 +174,6 @@ sub parse { if ($data->{domain}); $data->{domain} = $domains; - # compute default display name for template sorting - $data->{default_display_name} = $data->{display_name}->{en}; - push @array, $data; } @@ -200,6 +197,17 @@ sub _boolean2integer { undef; } + +sub _get_default_value { + my ($node, $child_name) = @_; + + my %names; + $names{ $_->getAttribute('xml:lang') } = $_->textContent() + foreach $node->getChildrenByLocalName($child_name); + + return $names{en} ? $names{en} : (values %names)[0]; +} + 1; __END__ diff --git a/templates/web/account_wizard.tt2.html b/templates/web/account_wizard.tt2.html index 3041612cfe711d5ba28823fbf130c32216b55dcd..c0827c5cfc7c24a1d7e1b1b08b643f56527a8bad 100644 --- a/templates/web/account_wizard.tt2.html +++ b/templates/web/account_wizard.tt2.html @@ -111,8 +111,8 @@ Note that only Service Providers are in the list which are included in the eduGA <select id="sp_entityid" name="sp_entityid" class="required"> <option value="">Select your Service Provider below</option> - [% FOREACH entity IN metadata.sort('default_display_name') %] -<option value="[% entity.entityid %]">[% IF entity.default_display_name %][% entity.default_display_name %] [% END %]([% entity.entityid %])</option> + [% FOREACH entity IN metadata.sort('display_name') %] +<option value="[% entity.entityid %]">[% IF entity.display_name %][% entity.display_name %] [% END %]([% entity.entityid %])</option> [% END %] </select> <br/>