示例#1
0
 public function signInFormSucceeded($form, $values)
 {
     $oldid = session_id();
     $member = new \App\Model\MemberModel($this->database);
     $blocked = $member->getState($form->values->username);
     if ($blocked == FALSE) {
         $this->presenter->flashMessage("Musíte nejdříve ověřit váš účet", 'error');
         $this->presenter->redirect(':Front:Sign:in');
     }
     try {
         $this->presenter->getUser()->login($values->username, $values->password);
         $newid = session_id();
         if ($this->presenter->template->settings['store:enabled']) {
             $this->database->table("orders")->where(array("uid" => $oldid))->update(array("uid" => $newid));
         }
         if ($form->values->type == 'admin') {
             $role = $this->presenter->user->getRoles();
             $roleCheck = $this->database->table("users_roles")->get($role[0]);
             if ($roleCheck->admin_access == 0) {
                 $this->presenter->flashMessage($this->presenter->translator->translate('messages.sign.no-access'), "error");
                 $this->presenter->redirect(':Admin:Sign:in');
             } else {
                 $this->database->table("users")->get($this->presenter->user->getId())->update(array("date_visited" => date("Y-m-d H:i:s")));
             }
             if ($form->values->type == 'admin') {
                 $typeUrl = 'Admin';
             } else {
                 $typeUrl = 'Front';
             }
             $typeUrl = 'Admin';
         } else {
             $typeUrl = 'Front';
         }
         $this->database->table("users")->get($this->presenter->user->getId())->update(array("date_visited" => date("Y-m-d H:i:s"), "login_success" => new \Nette\Database\SqlLiteral("login_success + 1")));
         $this->presenter->redirect(':' . $typeUrl . ':Homepage:default');
     } catch (\Nette\Security\AuthenticationException $e) {
         $this->database->table("users")->where(array("username" => $values->username))->update(array("login_error" => new \Nette\Database\SqlLiteral("login_error + 1")));
         $this->presenter->flashMessage("Nesprávné heslo", 'error');
         $this->presenter->redirect(':' . $typeUrl . ':Sign:in');
     }
 }