aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMurtaza Sultani <sultani@data-quest.de>2024-12-20 08:44:09 +0000
committerThomas Hackl <hackl@data-quest.de>2024-12-20 08:44:09 +0000
commitc3e75577d3aa36640416507523c8b1b25c778026 (patch)
tree5d6c77fd551250ad4547c7b70eaa06dde3199c8b /app
parent25131ba254baa27bff92bdf3c4c1b6a95b352c13 (diff)
Resolve "Editierbare Nutzungsbedingungen"
Closes #4433 Merge request studip/studip!3222
Diffstat (limited to 'app')
-rw-r--r--app/controllers/terms.php33
-rw-r--r--app/views/terms/index.php4
2 files changed, 36 insertions, 1 deletions
diff --git a/app/controllers/terms.php b/app/controllers/terms.php
index d3a829e..528859a 100644
--- a/app/controllers/terms.php
+++ b/app/controllers/terms.php
@@ -26,6 +26,9 @@ class TermsController extends AuthenticatedController
$this->compulsory = Config::get()->TERMS_CONFIG['compulsory'];
$this->denial_message = '';
+
+ $this->terms_of_use = $this->getTermsOfUse();
+
if (Request::isPost()) {
CSRFProtection::verifyUnsafeRequest();
if (Request::submitted('accept')) {
@@ -59,4 +62,34 @@ class TermsController extends AuthenticatedController
}
$this->redirect(URLHelper::getURL($target));
}
+
+
+ /**
+ * @return array|null
+ */
+ private function getTermsOfUse()
+ {
+ $url = Config::get()->TERMS_OF_USE_URL;
+
+ if (is_internal_url($url)) {
+ $url_parts = explode('/', $url);
+ $detail_id = $url_parts[4];
+ $si = new Siteinfo();
+ $detail = $si->get_detail($detail_id);
+ if (empty($detail) || !empty($detail['draft_status']) || !empty($detail['page_disabled_nobody'])) {
+ return null;
+ }
+
+ return [
+ 'type' => 'internal_url',
+ 'content' => $si->get_detail_content_processed($detail_id)
+ ];
+
+ }
+
+ return [
+ 'type' => 'external_url',
+ 'url' => $url
+ ];
+ }
}
diff --git a/app/views/terms/index.php b/app/views/terms/index.php
index 0dc5710..09a1760 100644
--- a/app/views/terms/index.php
+++ b/app/views/terms/index.php
@@ -19,7 +19,9 @@
</section>
</section>
<? else: ?>
- <?= $GLOBALS['template_factory']->render('terms.php') ?>
+ <?= $GLOBALS['template_factory']->render('terms.php', [
+ 'terms_of_use' => $terms_of_use,
+ ]) ?>
<? endif; ?>
<footer style="text-align: center">
<? if ($denial_message): ?>