|
14 | 14 | $entityBody = file_get_contents('php://input'); |
15 | 15 | $body = json_decode($entityBody, true); |
16 | 16 |
|
17 | | -$attributes = $body['attributes']; |
| 17 | +$attributesFromIdP = $body['attributes']; |
18 | 18 | $attrMap = $body['attrMap']; |
19 | 19 | $attrsToConversion = $body['attrsToConversion']; |
20 | 20 | $perunUserId = $body['perunUserId']; |
|
23 | 23 |
|
24 | 24 | try { |
25 | 25 | $userExtSource = $adapter->getUserExtSource( |
26 | | - $attributes['sourceIdPEntityID'][0], |
27 | | - $attributes['sourceIdPEppn'][0] |
| 26 | + $attributesFromIdP['sourceIdPEntityID'][0], |
| 27 | + $attributesFromIdP['sourceIdPEppn'][0] |
28 | 28 | ); |
29 | 29 | if ($userExtSource === null) { |
30 | 30 | throw new Exception( |
31 | 31 | 'sspmod_perun_Auth_Process_UpdateUserExtSource: there is no UserExtSource with ExtSource ' . |
32 | | - $attributes['sourceIdPEntityID'][0] . " and Login " . |
33 | | - $attributes['sourceIdPEppn'][0] |
| 32 | + $attributesFromIdP['sourceIdPEntityID'][0] . " and Login " . |
| 33 | + $attributesFromIdP['sourceIdPEppn'][0] |
34 | 34 | ); |
35 | 35 | } |
36 | 36 |
|
37 | | - $attributes = $adapter->getUserExtSourceAttributes($userExtSource['id'], array_keys($attrMap)); |
| 37 | + $attributesFromPerunRaw = $adapter->getUserExtSourceAttributes($userExtSource['id'], array_keys($attrMap)); |
| 38 | + $attributesFromPerun = []; |
| 39 | + foreach ($attributesFromPerunRaw as $attributeFromPerunRaw) { |
| 40 | + $attributesFromPerun[$attributeFromPerunRaw['friendlyName']] = $attributeFromPerunRaw; |
| 41 | + } |
38 | 42 |
|
39 | | - if ($attributes === null) { |
| 43 | + if ($attributesFromPerun === null) { |
40 | 44 | throw new Exception( |
41 | 45 | 'sspmod_perun_Auth_Process_UpdateUserExtSource: getting attributes was not successful.' |
42 | 46 | ); |
43 | 47 | } |
44 | 48 |
|
45 | 49 | $attributesToUpdate = []; |
46 | | - foreach ($attributes as $attribute) { |
| 50 | + |
| 51 | + foreach ($attributesFromPerun as $attribute) { |
| 52 | + |
47 | 53 | $attrName = UES_ATTR_NMS . $attribute['friendlyName']; |
48 | | - if (isset($attrMap[$attrName], $attributes[$attrMap[$attrName]])) { |
49 | | - $attr = $attributes[$attrMap[$attrName]]; |
| 54 | + |
| 55 | + if (isset($attrMap[$attrName], $attributesFromIdP[$attrMap[$attrName]])) { |
| 56 | + $attr = $attributesFromIdP[$attrMap[$attrName]]; |
50 | 57 |
|
51 | 58 | if (in_array(UES_ATTR_NMS . $attribute['friendlyName'], $attrsToConversion)) { |
52 | 59 | $arrayAsString = ['']; |
|
0 commit comments