właśnie usiadłem do Kohany no i mam pierwszy problem z modułem autoryzacji.
Napisałem prosty kod który dodaje użytkownika do bazy:
<?php public function dodaj() { $user=ORM::factory('user',1); foreach($_POST as $key=>$val) { $user->$key=$val; } if($user->add(ORM::factory('role', 'admin')) && $user->save()) { Auth::instance()->login($_POST['username'], $_POST['password']); //przzekierowanie url::redirect(url::base().'index.php/uzytkownik'); } ?>
w tabeli z rolami są dwie login z id 1 i admin z id 2
Użytkownik dodany jako admin nie może się zalogować.
Dokładniej wywołanie tej metody
<?php public function zaloguj() { $user=ORM::factory('user', $this->a_post['username']); if(!$user->loaded) { $this->a_Bledy['uzytkownik']="Podany login nie istnieje."; } elseif($this->o_Autoryzacja->login($user, $this->a_post['password'])) { if($this->o_Sesja->get_once('adres_przekierowania')<>"") { url::redirect($this->o_Sesja->get_once('adres_przekierowania')); } else { url::redirect(url::base()); } } else { $this->a_Bledy['haslo']="Podane hasło jest nieprawidłowe"; } $this->index(); } ?>
kończy się błędem hasła czyli występuje ostatnie else. Kiedy zmienię w tabeli roles_users przypisanie roli z użytkownika admin na login czyli z id 2 na id 1 ten sam użytkownik z tym samym hasłem bez problemu się loguję. Nie wiem na czym polega mój błąd.
Może ktoś ma pomysł. Korzystam z Kohana 2.3.4 a to autoryzacji oczywiście moduł Auth korzystający z ORM.
Pozdrawiam