예제 #1
0
 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()];
 }