19 declare(strict_types=1);
49 private readonly
User $user,
51 private readonly
UI $ui,
52 private readonly
Routing $routing,
53 private readonly
Closure $with_request
59 $title =
'accept_usr_agreement_anonymous';
60 $info =
'accept_usr_agreement_anonymous_intro';
61 if ($this->
user->isLoggedIn()) {
62 $title =
'usr_agreement';
63 $info =
'usr_agreement_footer_intro';
70 $form = $this->
user->matchingDocument()->isOk() ?
72 $this->
ui->create()->divider()->horizontal();
74 $content = (
new PageContent($this->
ui->txt(
'accept_usr_agreement'), [
80 return $this->
user->matchingDocument()->isOk() ?
81 $content->withOnScreenMessage(
'info', $this->
ui->txt(
'accept_usr_agreement_intro')) :
87 return !$this->
user->cannotAgree()
88 && $this->
user->needsToAcceptNewDocument();
95 ->map(fn(
Document $document) => $this->
ui->create()->legacy($document->
content()->value()))
96 ->except(fn() =>
new Ok($this->
ui->create()->legacy(sprintf(
97 $this->
ui->txt(
'no_agreement_description'),
104 $url = $this->routing->ctrl()->getFormActionByClass($gui, $cmd);
105 $form = $this->
ui->create()->input()->container()->form()->standard(
$url, [
106 'accept?' => $this->
ui->create()->input()->field()->radio($this->
ui->txt(
'accept_usr_agreement'))
107 ->withOption(
'yes', $this->
ui->txt(
'accept_usr_agreement_btn'))
108 ->withOption(
'no', $this->
ui->txt(
'deny_usr_agreement_btn'))
111 return ($this->with_request)($form,
function (array
$data) {
114 $this->routing->ctrl()->redirectToURL($this->routing->logoutUrl());
116 $this->
user->acceptMatchingDocument();
117 $this->routing->redirectToOriginalTarget();
124 return $this->
ui->create()->button()->standard($this->
ui->txt(
'logout'), $this->routing->logoutUrl());
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
A result encapsulates a value or an error and simplifies the handling of those.