xref: /dokuwiki/inc/Ui/Login.php (revision 4085a5aa9d31b42657f3eb3773fd11e607515354)
19cf9796dSSatoshi Sahara<?php
29cf9796dSSatoshi Sahara
39cf9796dSSatoshi Saharanamespace dokuwiki\Ui;
49cf9796dSSatoshi Sahara
59cf9796dSSatoshi Saharause dokuwiki\Form\Form;
6e2d055f5SAndreas Gohruse dokuwiki\Menu\Item\Register;
7e2d055f5SAndreas Gohruse dokuwiki\Menu\Item\Resendpwd;
89cf9796dSSatoshi Sahara
99cf9796dSSatoshi Sahara/**
10e4286a88SSatoshi Sahara * DokuWiki User Login Interface (Login Form)
119cf9796dSSatoshi Sahara *
129cf9796dSSatoshi Sahara * @package dokuwiki\Ui
139cf9796dSSatoshi Sahara */
149cf9796dSSatoshi Saharaclass Login extends Ui
159cf9796dSSatoshi Sahara{
16e4286a88SSatoshi Sahara    protected $showIcon = false;
17e4286a88SSatoshi Sahara
18e4286a88SSatoshi Sahara    /**
19e4286a88SSatoshi Sahara     * Login Ui constructor
20e4286a88SSatoshi Sahara     *
21e4286a88SSatoshi Sahara     * @param bool $showIcon Whether to show svg icons in the register and resendpwd links or not
22e4286a88SSatoshi Sahara     */
23e4286a88SSatoshi Sahara    public function __construct($showIcon = false)
24e4286a88SSatoshi Sahara    {
25e4286a88SSatoshi Sahara        $this->showIcon = (bool)$showIcon;
26e4286a88SSatoshi Sahara    }
27e4286a88SSatoshi Sahara
289cf9796dSSatoshi Sahara    /**
299cf9796dSSatoshi Sahara     * Display the Login Form Panel
309cf9796dSSatoshi Sahara     *
31e2d055f5SAndreas Gohr     * @return void
329cf9796dSSatoshi Sahara     * @author   Andreas Gohr <andi@splitbrain.org>
339cf9796dSSatoshi Sahara     *
349cf9796dSSatoshi Sahara     */
35e4286a88SSatoshi Sahara    public function show()
369cf9796dSSatoshi Sahara    {
379cf9796dSSatoshi Sahara        global $lang;
389cf9796dSSatoshi Sahara        global $conf;
399cf9796dSSatoshi Sahara        global $ID;
409cf9796dSSatoshi Sahara        global $INPUT;
419cf9796dSSatoshi Sahara
429cf9796dSSatoshi Sahara        // print intro
4326dfc232SAndreas Gohr        echo p_locale_xhtml('login');
4426dfc232SAndreas Gohr        echo '<div class="centeralign">' . NL;
459cf9796dSSatoshi Sahara
469cf9796dSSatoshi Sahara        // create the login form
471e6e7b77SSatoshi Sahara        $form = new Form(['id' => 'dw__login', 'action' => wl($ID)]);
489cf9796dSSatoshi Sahara        $form->addTagOpen('div')->addClass('no');
499cf9796dSSatoshi Sahara        $form->addFieldsetOpen($lang['btn_login']);
509cf9796dSSatoshi Sahara        $form->setHiddenField('id', $ID);
519cf9796dSSatoshi Sahara        $form->setHiddenField('do', 'login');
529cf9796dSSatoshi Sahara
539cf9796dSSatoshi Sahara        $input = $form->addTextInput('u', $lang['user'])->id('focus__this')->addClass('edit')
54e2d055f5SAndreas Gohr            ->val(($INPUT->bool('http_credentials')) ? '' : $INPUT->str('u'));
559cf9796dSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
56*4085a5aaShollisticated-horse        $input->attr('autocomplete', 'username');
579cf9796dSSatoshi Sahara        $form->addHTML("<br>\n");
589cf9796dSSatoshi Sahara
599cf9796dSSatoshi Sahara        $input = $form->addPasswordInput('p', $lang['pass'])->addClass('block edit');
609cf9796dSSatoshi Sahara        $input->getLabel()->attr('class', 'block');
61*4085a5aaShollisticated-horse        $input->attr('autocomplete', 'current-password');
629cf9796dSSatoshi Sahara        $form->addHTML("<br>\n");
639cf9796dSSatoshi Sahara
649cf9796dSSatoshi Sahara        if ($conf['rememberme']) {
659cf9796dSSatoshi Sahara            $form->addCheckbox('r', $lang['remember'])->id('remember__me')->val('1');
669cf9796dSSatoshi Sahara        }
679cf9796dSSatoshi Sahara        $form->addButton('', $lang['btn_login'])->attr('type', 'submit');
689cf9796dSSatoshi Sahara        $form->addFieldsetClose();
699cf9796dSSatoshi Sahara        $form->addTagClose('div');
709cf9796dSSatoshi Sahara
719cf9796dSSatoshi Sahara        if (actionOK('register')) {
72e2d055f5SAndreas Gohr            $registerLink = (new Register())->asHtmlLink('', $this->showIcon);
739cf9796dSSatoshi Sahara            $form->addHTML('<p>' . $lang['reghere'] . ': ' . $registerLink . '</p>');
749cf9796dSSatoshi Sahara        }
759cf9796dSSatoshi Sahara
769cf9796dSSatoshi Sahara        if (actionOK('resendpwd')) {
77e2d055f5SAndreas Gohr            $resendPwLink = (new Resendpwd())->asHtmlLink('', $this->showIcon);
789cf9796dSSatoshi Sahara            $form->addHTML('<p>' . $lang['pwdforget'] . ': ' . $resendPwLink . '</p>');
799cf9796dSSatoshi Sahara        }
809cf9796dSSatoshi Sahara
8126dfc232SAndreas Gohr        echo $form->toHTML('Login');
829cf9796dSSatoshi Sahara
8326dfc232SAndreas Gohr        echo '</div>';
849cf9796dSSatoshi Sahara    }
859cf9796dSSatoshi Sahara}
86