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.