aboutsummaryrefslogtreecommitdiff
path: root/lib/classes/JsonApi/Routes/SAML/ConfigurationUpdate.php
diff options
context:
space:
mode:
authorTill Glöggler <till@gundk.it>2025-06-25 23:40:10 +0200
committerTill Glöggler <till@gundk.it>2025-06-25 23:40:10 +0200
commit3e7179651cfee753606ad906c07c1e5214c66fd9 (patch)
tree0af39b5af7305a7a764a3b133a29134dc0c5533f /lib/classes/JsonApi/Routes/SAML/ConfigurationUpdate.php
parent4f60c4922ed96d60c0fa3b77a590e355b21841ca (diff)
working on SSO SAMLissue-5663
Diffstat (limited to 'lib/classes/JsonApi/Routes/SAML/ConfigurationUpdate.php')
-rw-r--r--lib/classes/JsonApi/Routes/SAML/ConfigurationUpdate.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/classes/JsonApi/Routes/SAML/ConfigurationUpdate.php b/lib/classes/JsonApi/Routes/SAML/ConfigurationUpdate.php
new file mode 100644
index 0000000..7845d2d
--- /dev/null
+++ b/lib/classes/JsonApi/Routes/SAML/ConfigurationUpdate.php
@@ -0,0 +1,35 @@
+<?php
+
+namespace JsonApi\Routes\SAML;
+
+use JsonApi\Errors\AuthorizationFailedException;
+use JsonApi\Routes\Route;
+use Psr\Http\Message\ResponseInterface as Response;
+use Psr\Http\Message\ServerRequestInterface as Request;
+use Studip\SAML\SetupInformation;
+
+class ConfigurationUpdate extends Route
+{
+ public function __invoke(Request $request, Response $response, array $args): Response
+ {
+ if (!$GLOBALS['perm']->have_perm('root')) {
+ throw new AuthorizationFailedException();
+ }
+
+ $data = $this->getJsonApiData($request);
+ $attributes = $data['attributes'] ?? [];
+
+ $setupInformation = $this->container->get(SetupInformation::class);
+ $setupInformation->updateConfiguration($attributes);
+
+ $updatedConfig = $setupInformation->getConfiguration();
+
+ return $this->jsonResponse($response, [
+ 'data' => [
+ 'type' => 'saml-configuration',
+ 'id' => '1',
+ 'attributes' => $updatedConfig,
+ ],
+ ]);
+ }
+} \ No newline at end of file