aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/JsonApi/Schemas
diff options
context:
space:
mode:
authorRon Lucke <lucke@elan-ev.de>2024-11-04 11:39:35 +0000
committerRon Lucke <lucke@elan-ev.de>2024-11-04 11:39:35 +0000
commitc7c10f40175d34d9c76fa90d328ff0cdc2c7dfd2 (patch)
treeb444b0206bd43cb87612f90f0f646eccff301348 /lib/classes/JsonApi/Schemas
parente8ce2c6e2bb858f9af664dbc5ac37edb958b8850 (diff)
Courseware: Rechte und Sichtbarkeit funktionieren nach unterschiedlichen Kriterien
Closes #3442 Merge request studip/studip!2635
Diffstat (limited to 'lib/classes/JsonApi/Schemas')
-rw-r--r--lib/classes/JsonApi/Schemas/Courseware/StructuralElement.php16
-rw-r--r--lib/classes/JsonApi/Schemas/Courseware/Unit.php23
2 files changed, 31 insertions, 8 deletions
diff --git a/lib/classes/JsonApi/Schemas/Courseware/StructuralElement.php b/lib/classes/JsonApi/Schemas/Courseware/StructuralElement.php
index e6ccafa..f1a5841 100644
--- a/lib/classes/JsonApi/Schemas/Courseware/StructuralElement.php
+++ b/lib/classes/JsonApi/Schemas/Courseware/StructuralElement.php
@@ -47,10 +47,18 @@ class StructuralElement extends SchemaProvider
'purpose' => (string) $resource['purpose'],
'payload' => $resource['payload']->getIterator(),
'public' => (int) $resource['public'],
- 'release-date' => $resource['release_date'] ? date('Y-m-d', (int) $resource['release_date']) : null,
- 'withdraw-date' => $resource['withdraw_date'] ? date('Y-m-d', (int) $resource['withdraw_date']) : null,
- 'read-approval' => $resource['read_approval']->getIterator(),
- 'write-approval' => $resource['write_approval']->getIterator(),
+ 'permission-type' => (string) $resource['permission_type'],
+ 'visible' => (string) $resource['visible'],
+ 'visible-all' => (bool) $resource['visible_all'],
+ 'visible-start-date' => $resource['visible_start_date'] ? date('c', $resource['visible_start_date']) : null,
+ 'visible-end-date' => $resource['visible_end_date'] ? date('c', $resource['visible_end_date']) : null,
+ 'writable' => (string) $resource['writable'],
+ 'writable-all' => (bool) $resource['writable_all'],
+ 'writable-start-date' => $resource['writable_start_date'] ? date('c', $resource['writable_start_date']) : null,
+ 'writable-end-date' => $resource['writable_end_date'] ? date('c', $resource['writable_end_date']) : null,
+ 'visible-approval' => json_decode($resource['visible_approval']),
+ 'writable-approval' => json_decode($resource['writable_approval']),
+ 'content-approval' => $resource['content_approval']->getIterator(),
'copy-approval' => $resource['copy_approval']->getIterator(),
'can-edit' => $resource->canEdit($user),
'can-visit' => $resource->canVisit($user),
diff --git a/lib/classes/JsonApi/Schemas/Courseware/Unit.php b/lib/classes/JsonApi/Schemas/Courseware/Unit.php
index 6152e94..a311ac8 100644
--- a/lib/classes/JsonApi/Schemas/Courseware/Unit.php
+++ b/lib/classes/JsonApi/Schemas/Courseware/Unit.php
@@ -28,15 +28,30 @@ class Unit extends SchemaProvider
*/
public function getAttributes($resource, ContextInterface $context): iterable
{
+ $user = $this->currentUser;
+
return [
'content-type' => (string) $resource['content_type'],
'position' => (int) $resource['position'],
'public' => (int) $resource['public'],
- 'release-date' => $resource['release_date'] ? date('c', $resource['release_date']) : null,
- 'withdraw-date' => $resource['withdraw_date'] ? date('c', $resource['withdraw_date']) : null,
+ 'permission-scope' => (string) $resource['permission_scope'],
+ 'permission-type' => (string) $resource['permission_type'],
+ 'visible' => (string) $resource['visible'],
+ 'visible-all' => (bool) $resource['visible_all'],
+ 'visible-start-date' => $resource['visible_start_date'] ? date('c', $resource['visible_start_date']) : null,
+ 'visible-end-date' => $resource['visible_end_date'] ? date('c', $resource['visible_end_date']) : null,
+ 'writable' => (string) $resource['writable'],
+ 'writable-all' => (bool) $resource['writable_all'],
+ 'writable-start-date' => $resource['writable_start_date'] ? date('c', $resource['writable_start_date']) : null,
+ 'writable-end-date' => $resource['writable_end_date'] ? date('c', $resource['writable_end_date']) : null,
+ 'visible-approval' => json_decode($resource['visible_approval']),
+ 'writable-approval' => json_decode($resource['writable_approval']),
'config' => json_decode($resource['config']),
- 'mkdate' => date('c', $resource['mkdate']),
- 'chdate' => date('c', $resource['chdate']),
+ 'can-read' => $resource->canRead($user),
+ 'can-edit' => $resource->canEdit($user),
+ 'can-edit-content' => $resource->canEditContent($user),
+ 'mkdate' => date('c', $resource['mkdate']),
+ 'chdate' => date('c', $resource['chdate']),
];
}