Mam zainstalowany FOSUserBundle. Zrobiłem tak że rejestrując się użytkownik tworzy w tym samym czasie nową firme nadając jej pewnego rodzaju identyfikator.
Identyfikator jest unikalny dla całej tabeli firma.
To co chcę osiągnąć to aby podczas logowania użytkownik musiał podać:
identyfikator
login
hasło
O ile nadpisanie formularza to nie problem o tyle nie wiem jak uporać się z logiką...
FOS i ogólnie security wymaga aby username oraz password było unikalne dla całej struktury bazy danych. Więc wymyśliłem takie obejście, że w encji User dodałem pole 'login'.
I wygląda to tak:
public function setLogin($login) { $this->setUsername( $this->getCompany()->getIdentifier() . '@' . $login); $this->login = $login return $this; }
Dzięki temu username jest unikatowy i posiada przedrostek w formie identyfikatora firmy.
Mógłbym to tak zostawić i logowanie odbywałoby się na zasadzie:
nazwaFirmy@mojLogin / hasło
Ale chciałbym tego uniknąć i umożliwić logowanie z tymi trzema parametrami.
Po co mi take cuda? Chcę aby możliwa była rejestracja kilku użytkowników z takim samym loginem ale innym identyfikatorem firmy. Innymi słowy username ma być unikalne ale tylko w ramach jednej firmy.
Czy ktoś z was robił coś takiego?
__________
Dobra, obszedłem problem inaczej:
sklejam login i identyfikator firmy w JS przed wysłaniem formularza :)