1 <?php declare(strict_types=1);
36 if (!isset(self::$instance)) {
37 self::$instance =
new self();
40 return self::$instance;
46 if (!isset($repo_read)) {
48 if (!$is_user_logged_in) {
49 $repo_read = (bool) $this->dic->settings()->get(
'pub_section') && $this->dic->access()->checkAccess(
'read',
'', ROOT_FOLDER_ID);
51 $repo_read = (bool) $this->dic->access()->checkAccess(
'read',
'', ROOT_FOLDER_ID);
62 static $public_section_active;
63 if (!isset($public_section_active)) {
64 $public_section_active = (bool) $this->dic->settings()->get(
'pub_section') && $this->dic->access()->checkAccess(
'visible',
69 return $public_section_active;
76 if (!isset($repo_visible)) {
78 if (!$is_user_logged_in) {
79 $repo_visible = (bool) $this->dic->settings()->get(
'pub_section') && $this->dic->access()->checkAccess(
'visible',
'', ROOT_FOLDER_ID);
81 $repo_visible = (bool) $this->dic->access()->checkAccess(
'visible',
'', ROOT_FOLDER_ID);
93 if (!isset($is_anonymous)) {
94 $is_anonymous = (bool) $this->dic->user()->isAnonymous() || ($this->dic->user()->getId() == 0);
98 return !$is_anonymous;
104 static $has_admin_access;
105 if (!isset($has_admin_access)) {
106 $has_admin_access = (bool) ($this->dic->rbac()->system()->checkAccess(
'visible', SYSTEM_FOLDER_ID));
109 return $has_admin_access;
122 }
catch (\Throwable
$e) {
126 if(!$r->hasReturnType() || !$r->getReturnType()->isBuiltin()){
127 throw new \InvalidArgumentException(
'the additional Closure MUST return a bool dy declaration');
135 return static function () use ($closure,
$additional) :
bool {
checkClosureForBoolReturnValue(Closure $c)
Class BasicAccessCheckClosures.
isUserLoggedIn(?Closure $additional=null)
hasAdministrationAccess(?Closure $additional=null)
getClosureWithOptinalClosure(Closure $closure, ?Closure $additional=null)
isRepositoryVisible(?Closure $additional=null)
isRepositoryReadable(?Closure $additional=null)
isPublicSectionActive(?Closure $additional=null)
__construct()
BasicAccessCheckClosures constructor.