Skip to content

Commit 2054442

Browse files
fixes incorrect schemaExtensions format limosa-io#107 (limosa-io#108)
1 parent 3fd46be commit 2054442

File tree

4 files changed

+32
-4
lines changed

4 files changed

+32
-4
lines changed

src/Attribute/Schema.php

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

55
class Schema extends Complex
66
{
7+
public $required;
8+
9+
function __construct($name, $required = true)
10+
{
11+
parent::__construct($name);
12+
$this->required = $required;
13+
}
714

815
public function generateSchema()
916
{
@@ -31,4 +38,8 @@ public function generateSchema()
3138
return $result;
3239
}
3340

41+
public function getName(){
42+
return $this->name;
43+
}
44+
3445
}

src/Http/Controllers/ResourceTypesController.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,23 @@ public function __construct()
2020
$resourceTypes = [];
2121

2222
foreach ($config as $key => $value) {
23-
$schemas = $value['map']->getSchemas();
23+
$schemas = $value['map']->getSchemaNodes();
2424

25-
$resourceTypes[] = new ResourceType($value['singular'], $key, $key, $value['description'] ?? null, $schemas[0], array_slice($schemas, 1));
25+
$resourceTypes[] = new ResourceType(
26+
$value['singular'],
27+
$key,
28+
$key,
29+
$value['description'] ?? null,
30+
$schemas[0]->getName(),
31+
collect(array_slice($schemas, 1))->map(
32+
function ($element) {
33+
return [
34+
'schema' => $element->getName(),
35+
'required' => $element->required
36+
];
37+
}
38+
)->toArray()
39+
);
2640
}
2741

2842
$this->resourceTypes = collect($resourceTypes);

src/SCIMConfig.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ protected function doRead(&$object, $attributes = [])
127127
eloquent('primary')->ensure('boolean')->default(false)
128128
)->ensure('nullable', 'array', 'max:20')
129129
),
130-
(new AttributeSchema('urn:ietf:params:scim:schemas:extension:enterprise:2.0:User', true))->withSubAttributes(
130+
(new AttributeSchema('urn:ietf:params:scim:schemas:extension:enterprise:2.0:User', false))->withSubAttributes(
131131
eloquent('employeeNumber')->ensure('nullable')
132132
)
133133
),

tests/ResourceTypesTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,10 @@ public function testGetOne(){
5050
"description" => "User Account",
5151
"schema" => "urn:ietf:params:scim:schemas:core:2.0:User",
5252
"schemaExtensions" => [
53-
"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
53+
[
54+
"schema" => "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User",
55+
"required" => false
56+
]
5457
],
5558
"meta" => [
5659
"location" => "http://localhost/scim/v2/ResourceTypes/User",

0 commit comments

Comments
 (0)