Skip to content

Commit d703286

Browse files
committed
WIP
1 parent cc2087d commit d703286

3 files changed

Lines changed: 9 additions & 16 deletions

File tree

src/Federation/EntityCollection.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@ public function filter(array $criteria): static
6262
* @param 'asc'|'desc' $sortOrder
6363
* @return $this
6464
*/
65-
public function sortByMetadataClaims(array $claimPaths, string $sortOrder): static
65+
public function sort(array $claimPaths, string $sortOrder): static
6666
{
67-
$this->entities = $this->entityCollectionSorter->sortByMetadataClaims(
67+
$this->entities = $this->entityCollectionSorter->sort(
6868
$this->entities,
6969
$claimPaths,
7070
$sortOrder,

src/Federation/EntityCollection/EntityCollectionResponseFactory.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public function build(string $trustAnchorId, array $requestParams = []): EntityC
6767

6868
if ($claimPaths !== []) {
6969
/** @var non-empty-array<int, non-empty-string[]> $claimPaths */
70-
$collection->sortByMetadataClaims(
70+
$collection->sort(
7171
$claimPaths,
7272
(string)($requestParams['sort_dir'] ?? 'asc'),
7373
);

src/Federation/EntityCollection/EntityCollectionSorter.php

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
namespace SimpleSAML\OpenID\Federation\EntityCollection;
66

7-
use SimpleSAML\OpenID\Codebooks\ClaimsEnum;
87
use SimpleSAML\OpenID\Exceptions\OpenIdException;
98
use SimpleSAML\OpenID\Helpers;
109

@@ -17,16 +16,16 @@ public function __construct(
1716

1817

1918
/**
20-
* Sort entities by one or more claims nested inside their metadata.
19+
* Sort entities by one or more claims nested inside their payload.
2120
*
2221
* @param array<string, array<string, mixed>> $entities Keyed by entity ID
2322
* @param non-empty-array<int, non-empty-string[]> $claimPaths Array of
24-
* nested claim paths within the metadata object
25-
* (e.g. [['openid_provider', 'display_name'], ['federation_entity', 'display_name']])
23+
* nested claim paths within the entity payload object
24+
* (e.g. [['metadata', 'openid_provider', 'display_name'], ['metadata', 'federation_entity', 'display_name']])
2625
* @param 'asc'|'desc' $direction
2726
* @return array<string, array<string, mixed>> Sorted copy
2827
*/
29-
public function sortByMetadataClaims(
28+
public function sort(
3029
array $entities,
3130
array $claimPaths,
3231
string $direction = 'asc',
@@ -36,21 +35,15 @@ public function sortByMetadataClaims(
3635
}
3736

3837
uasort($entities, function (array $a, array $b) use ($claimPaths, $direction): int {
39-
$metadataA = $a[ClaimsEnum::Metadata->value] ?? [];
40-
$metadataA = is_array($metadataA) ? $metadataA : [];
41-
42-
$metadataB = $b[ClaimsEnum::Metadata->value] ?? [];
43-
$metadataB = is_array($metadataB) ? $metadataB : [];
44-
4538
foreach ($claimPaths as $claimPath) {
4639
try {
47-
$valA = $this->helpers->arr()->getNestedValue($metadataA, ...$claimPath);
40+
$valA = $this->helpers->arr()->getNestedValue($a, ...$claimPath);
4841
} catch (OpenIdException $e) {
4942
// If the claim path doesn't exist, treat it as null
5043
$valA = null;
5144
}
5245
try {
53-
$valB = $this->helpers->arr()->getNestedValue($metadataB, ...$claimPath);
46+
$valB = $this->helpers->arr()->getNestedValue($b, ...$claimPath);
5447
} catch (OpenIdException $e) {
5548
// If the claim path doesn't exist, treat it as null
5649
$valB = null;

0 commit comments

Comments
 (0)