public function action_login() { if (empty($this->post['jmeno_uzivatel'])) { $this->msg = 'Uživatelské jméno musí být zadáno.'; return ["success" => false, 'msg' => $this->msg]; } if (empty($this->post['heslo'])) { $this->msg = 'Heslo musí být zadáno.'; return ["success" => false, 'msg' => $this->msg]; } // nick or email $pass = $this->post['heslo']; $row = accountData::loginData($this->post['jmeno_uzivatel']); if ($row['platnost'] === 'f') { $this->msg = 'Váš učet není aktivní! Aktivujte ho pomocí aktivačního klíče zaslaného po registraci na Váš e-mail nebo kontaktujte správce systému.'; return ["success" => false, 'msg' => $this->msg]; } if (!$row) { $this->msg = 'Uživatelské jméno neexistuje.'; return ["success" => false, 'msg' => $this->msg]; } if ($row['heslo'] != crypt($pass, $row['heslo']) && $row['nove_heslo'] != crypt($pass, $row['nove_heslo'])) { $this->msg = 'Heslo nesouhlasí.'; return ["success" => false, 'msg' => $this->msg]; } if ($row['role_potvrzeni'] === 'f') { $row['skupina'] = self::$DEFAULTROLE; $this->msg .= 'Vaše uživatelká role není potvrzena. <br>'; } SessionService::getInstance()->login($row['id'], $row['jmeno_uzivatel'], $row['skupina']); $this->msg .= 'Úspěšné přihlášení.'; accountData::setLoginTimeStamp($row['jmeno_uzivatel']); $account = accountData::getUserData($this->user->getId()); return ["success" => true, 'msg' => $this->msg, 'account' => $account, 'id' => $this->user->getId(), 'jmeno_uzivatel' => $this->user->getUserName(), 'skupina' => $this->user->getRole()]; }