Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzNoAppAccess
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
12
0.00% covered (danger)
0.00%
0 / 1
 getHtml
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace Olz\Components\Apps\OlzNoAppAccess;
4
5use Olz\Components\Common\OlzComponent;
6use Olz\Entity\Users\User;
7
8/** @extends OlzComponent<array<string, mixed>> */
9class OlzNoAppAccess extends OlzComponent {
10    public function getHtml(mixed $args): string {
11        $no_access_out = <<<'ZZZZZZZZZZ'
12            <div class='alert alert-danger' role='alert'>
13                Kein Zugriff!
14            </div>
15            ZZZZZZZZZZ;
16
17        $code_href = $this->envUtils()->getCodeHref();
18        $app = $args['app'];
19
20        if ($this->authUtils()->hasPermission('any')) {
21            // We're already logged in. No advertising an account necessary.
22            return $no_access_out;
23        }
24        $hypothetical_logged_in_user = new User();
25        $hypothetical_logged_in_user->setPermissions(' verified_email ');
26        if (!$app->isAccessibleToUser($hypothetical_logged_in_user)) {
27            // Hypothetical logged-in user wouldn't have access either.
28            return $no_access_out;
29        }
30        $icon = $app->getIcon();
31        $display_name = $app->getDisplayName();
32        $basename = $app->getBasename();
33        return <<<ZZZZZZZZZZ
34            <div class='olz-no-app-access'>
35                <div class='app-container hypothetical'>
36                    <img src='{$icon}' alt='{$basename}-icon' class='app-icon' />
37                    <div>{$display_name}</div>
38                </div>
39                <br />
40                <div>Die "{$display_name}"-App ist nur für eingeloggte Benutzer verfügbar.</div>
41                <div class='auth-buttons'>
42                    <a class='btn btn-primary' href='#login-dialog' role='button'>Login</a>
43                </div>
44            </div>
45            ZZZZZZZZZZ;
46    }
47}