Korzystając z dokumentacji Symfony, a konkretnie rozdziału "System bezpieczeństwa" chcę skorzystać z wbudowanego modułu logowania (tak to rozumiem).
a więc:
1. Dodałem dziedziczenie po UserInterface
<?php namespace Nomad\SystemBundle\Entity; use Symfony\Component\Security\Core\User\UserInterface; use Doctrine\ORM\Mapping as ORM; class Uzytkownik implements UserInterface { protected $id_uzytkownik; protected $login; protected $haslo; protected $email; protected $upr; /** * Get id_uzytkownik * * @return integer */ public function getIdUzytkownik() { return $this->id_uzytkownik; } /** * Set login * * @param string $login * @return Uzytkownik */ public function setLogin($login) { $this->login = $login; return $this; } /** * Get login * * @return string */ public function getLogin() { return $this->login; } /** * Set haslo * * @param string $haslo * @return Uzytkownik */ public function setHaslo($haslo) { $this->haslo = $haslo; return $this; } /** * Get haslo * * @return string */ public function getHaslo() { return $this->haslo; } /** * Set email * * @param string $email * @return Uzytkownik */ public function setEmail($email) { $this->email = $email; return $this; } /** * Get email * * @return string */ public function getEmail() { return $this->email; } /** * Set upr * * @param string $upr * @return Uzytkownik */ public function setUpr($upr) { $this->upr = $upr; return $this; } /** * Get upr * * @return string */ public function getUpr() { return $this->upr; } } }
2. Skonfigurowałem security.yml
security: encoders: Symfony\Component\Security\Core\User\User: plaintext Nomad\SystemBundle\Entity\Uzytkownik: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH] providers: in_memory: memory: users: user: { password: userpass, roles: [ 'ROLE_USER' ] } admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] } main: entity: { class: Nomad\SystemBundle\Entity\Uzytkownik, property: login } firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false demo_login: pattern: ^/demo/secured/login$ security: false demo_secured_area: pattern: ^/demo/secured/ form_login: check_path: _demo_security_check login_path: _demo_login logout: path: _demo_logout target: _demo #anonymous: ~ #http_basic: # realm: "Secured Demo Area" access_control: #- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
i pojawia się error:
Error: Class Nomad\SystemBundle\Entity\Uzytkownik contains 5 abstract methods and must therefore be declared abstract or implement the remaining methods (Symfony\Component\Security\Core\User\UserInterface::getRoles, Symfony\Component\Security\Core\User\UserInterface::getPassword, Symfony\Component\Security\Core\User\UserInterface::getSalt, ...) in C:\xampp\htdocs\Projekt\src\Nomad\SystemBundle\Entity\Uzytkownik.php line 117
Postąpiłem zgodnie z dumentacją a nagle pojawia się masa problemów ...