Znalazłem tutorial : http://symfony.com/doc/current/book/security.html
Ale jest dla mnie niezrozumiały.
Domyślam się, że muszę najpierw mieć formularz logowania i w sumie już go mam z przykładowego bundla :
public function loginAction() { if ($this->get('request')->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) { $error = $this->get('request')->attributes->get(SecurityContext::AUTHENTICATION_ERROR); } else { $error = $this->get('request')->getSession()->get(SecurityContext::AUTHENTICATION_ERROR); } 'last_username' => $this->get('request')->getSession()->get(SecurityContext::LAST_USERNAME), 'error' => $error, ); }
Teplatka też jest do niego.
{% extends 'AcmeDemoBundle::layout.html.twig' %} {% block content %} <h1>Login</h1> <p> Choose between two default users: <em>user/userpass</em> <small>(ROLE_USER)</small> or <em>admin/adminpass</em> <small>(ROLE_ADMIN)</small> </p> {% if error %} <div class="error">{{ error.message }}</div> {% endif %} <form action="{{ path("_security_check") }}" method="post" id="login"> <div> <label for="username">Username</label> <input type="text" id="username" name="_username" value="{{ last_username }}" /> </div> <div> <label for="password">Password</label> <input type="password" id="password" name="_password" /> </div> <input type="submit" class="symfony-button-grey" value="LOGIN" /> </form> {% endblock %} {% set code = code(_self) %}
Formularz wysyła się do http://localhost/demo/secured/login_check
Chociaż nie bardzo wiem czemu, bo w pliku security mam takie coś (fragment) :
Kod
secured_area:
pattern: ^/demo/secured/
pattern: ^/valuation/admin
form_login:
check_path: /valuation/admin
login_path: /demo/secured/login
logout:
path: /demo/secured/logout
target: /demo/
pattern: ^/demo/secured/
pattern: ^/valuation/admin
form_login:
check_path: /valuation/admin
login_path: /demo/secured/login
logout:
path: /demo/secured/logout
target: /demo/
Kontroler do tego login check jest pustą funkcją, któa nawet niczego nie zwraca, więc są błędy.
Nie mam pojęcia w jaki sposób mam przechwycić te dane z formularza i sprawdzić czy są poprawne i potem co mam ustawić, żeby system rozpoznawał mnie jako admina, czy użytkownika.Czy możecie dać mi link do jakiegoś tutoriala, lub cokolwiek co by mi pomogło w rozwiązaniu problemu ?
Niestety ja nie znalazłem żadnych przykładów.