Paweł Ługowski Software Developer
Temat: Subdomena prowadząca na odpowiedni plugin.
Witam,Mam problem, z którym sobie po części poradziłęm, ale trochę na około i chcę to poprawić jak należy, żeby wszystko działało jak należy.
Mam sobie stronę, do której zacząłem pisać panel administracyjny oparty o plugin o nazwie admin (APP/plugins/admin) i teraz chcę, aby po wpisaniu adresu admin.mojastrona.pl automatycznie ładował mi się np. mojastrona.pl/admin/users/index
Moje rozwiązanie polega na tym, że w bootstrapie mam coś takiego:
if (preg_match("/admin\.mojastrona\.lc/",env("HTTP_HOST")))
{
$_GET["url"] = "admin/" . (isset($_GET["url"]) ? $_GET["url"] : 'index');
}
else if (isset($_GET["url"]) and strpos($_GET["url"], "admin") === 0)
{
header ("Location: /");
}
Rozwiązanie to działa(ło) do momentu kiedy doszedłem do Autoryzacji. Chcę skorzystać z Componentu Auth do uwierzytelniania. Dla panelu admina mam odrębne tabele z prefixem 'admin_' etc.
Oczywiście plugin posiada pełną strukturę z widokami, modelami i innymi, ale nie o to chodzi.
route mam ustawione w ten sposób:
// dla zwyklego logowania uzytkownikow na stronie
Router::connect('/login/*', array('plugin'=>null,'controller' => 'users', 'action' => 'login'));
Router::connect('/logout/*', array('plugin'=>null,'controller' => 'users', 'action' => 'logout'));
// dla logowania do panelu admina
Router::connect('/users/login/*', array('plugin'=>'admin', 'controller' => 'users', 'action' => 'login'));
Kiedy ustawiam w admin_app_controller.php to:
$this->Auth->userModel = 'AdminUser';
$this->Auth->loginAction = array('plugin' => 'admin', 'controller' => 'users', 'action' => 'login');
Teraz mam dwa problemy 1st, jeżeli ktoś na normalnej domenie wejdzie na adres mojadomena.pl/users/login odpala się formularz logowania admina, a tego nie chcę, bo ma to być rozdzielone
Druga sprawa to jak juz jestem na admin.mojadomena.pl/users/login i wypełnię formularz który ma action na '/users/login' to nic się nie dzieje. Autoryzacja nie wykonuje się, w sesji nic się nie dopisuje - dodam, że korzystam z auth.php w APP/controllers/components - przeniosłem sobie tutaj bo potrzebowałem dopisać małą rzecz do Auth...
Z góry dziękuję za podpowiedzi co moge zrobić żeby to rozwiązać, bo powiem, że trochę utknąłem z tym :/