54 $blocks =
new Blocks($this->
id(), $this->container, $provide);
55 $default = $blocks->defaultMappings();
56 $global_settings =
new Settings($blocks->selectSettingsFrom($blocks->readOnlyStore($blocks->globalStore())));
57 $is_active = $global_settings->enabled()->value();
58 $build_user = fn(
ilObjUser $user) => $blocks->user($global_settings,
new UserSettings($user, $blocks->selectSettingsFrom(
59 $blocks->userStore($user)
60 ), $this->container->refinery()), $user);
61 $public_api =
new PublicApi($is_active, $build_user);
62 $slot = $slot->hasDocuments($default->contentAsComponent(), $default->conditionDefinitions())
64 ->hasPublicApi($public_api);
67 return $slot->hasPublicPage($blocks->notAvailable(...), self::GOTO_NAME);
70 $user = $build_user($this->container->user());
71 $constraint = $this->container->refinery()->custom()->constraint(...);
73 return $slot->canWithdraw($blocks->slot()->withdrawProcess($user, $global_settings, $this->
userHasWithdrawn(...)))
74 ->hasAgreement($blocks->slot()->agreement($user, $global_settings), self::GOTO_NAME)
75 ->showInFooter($blocks->slot()->modifyFooter($user, self::GOTO_NAME))
76 ->showOnLoginPage($blocks->slot()->showOnLoginPage())
77 ->onSelfRegistration($blocks->slot()->selfRegistration($user, $build_user))
78 ->hasOnlineStatusFilter($blocks->slot()->onlineStatusFilter($this->
usersWhoDidntAgree($this->container->database())))
79 ->hasUserManagementFields($blocks->userManagementAgreeDateField($build_user,
'tos_agree_date',
'tos'))
80 ->canReadInternalMails($blocks->slot()->canReadInternalMails($build_user))
81 ->canUseSoapApi($constraint(fn($u) => !$public_api->needsToAgree($u),
'TOS not accepted.'));
usersWhoDidntAgree(ilDBInterface $database)