aboutsummaryrefslogtreecommitdiff
path: root/lib/navigation/LoginNavigation.php
blob: 4b4241c7c4632e9234842bcbe502960271cf985d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
# Lifter010: TODO
/*
 * LoginNavigation.php - navigation for login page
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * @author      Elmar Ludwig
 * @license     http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
 * @category    Stud.IP
 */

class LoginNavigation extends Navigation
{
    /**
     * Initialize the subnavigation of this item. This method
     * is called once before the first item is added or removed.
     */
    public function initSubNavigation()
    {
        parent::initSubNavigation();

        $standard_login_active = false;
        foreach (StudipAuthAbstract::getInstance() as $auth_plugin) {
            if ($auth_plugin->show_login && !$standard_login_active) {
                $navigation = new Navigation(_('Login'), '');
                $navigation->setDescription($auth_plugin->login_description ?: _('für registrierte Nutzende'));
                $navigation->setLinkAttributes([
                    'id' => 'toggle-login'
                ]);
                $navigation->setURL('#toggle-login');
                $this->addSubNavigation('standard_login', $navigation);
                $standard_login_active = true;
            }
            if ($auth_plugin instanceof StudipAuthSSO && isset($auth_plugin->login_description)) {
                $navigation = new Navigation(
                    $auth_plugin->plugin_fullname . ' ' . _('Login'),
                    Request::url(),
                    ['again' => 'yes', 'sso' => $auth_plugin->plugin_name, 'cancel_login' => 1]
                );
                $navigation->setDescription($auth_plugin->login_description);
                $this->addSubNavigation('login_' . $auth_plugin->plugin_name, $navigation);
            }
        }
    }
}