Více uživatelských účtů se stejným username
- jedlicka
- Člen | 70
Ahoj,
Je možné, aby existoval jeden uživatel, který má více účtů (se
stejným username jakožto přihlašovacím emailem)?
Jak řešit potom login?
Mám zakázkový systém, kde každý uživatel má své zákazníky,
zakázky apod. V současné době mám tabulku users
. V této
tabulce uživatelů je username a password, kde username je email a je to
unikátní klíč, takže nemůže být v systému zaregistrován pod stejným
mailem další uživatel.
Login se dělá standardně pomocí
$user->login($username, $password);
.
Teď ovšem vznikl tento obecný požadavek:
Pod jedním mailem by měl uživatel více účtů a po přihlášení (mail a
heslo) by se mu zobrazil seznam účtů pod daným username (mailem). Po
zvolení daného účtu by uživatel přešel do svého účtu se svými
zákazníky. Jde o to, že daný zákazník má třeba více firem. Každou
firmu chce spravovat v tomto zakázkovém systému, nechce se pokaždé
přihlašovat jiným mailem, ale vždy pouze jedním a jen vybere daný účet.
Toto ovšem klade spoustu dotazů, jak to vyřešit.
- Username (mail) je unikátní – je možné ten klíč odstranit.
- Pokud by bylo v tabulce
users
více záznamů stejných username (ale rozdílným ID), tak pomocí kterého se přihlásit? - Nebo nejprve zjistit zda pod stejným username není více účtu a až po vybrání konkrétního přejít k samotnému přihlášení?
- Ale metoda login má parametry username a password, tak jak nette pozná ID uživatele, když stejných username je více?
- Přepsat nějak Authenticator?
- Jak by probíhala registrace nového účtu pod stejným mailem?
Nebo obecně, nevíte někdo, jak tohle v nette řešit?
Díky moc za každou radu.
Martin
- David Matějka
- Moderator | 6445
rozhodne bych nesel cestou, ze bude vic zaznamu v users tabulce pro jednoho uzivatele. radeji to rozdel na dve tabulky – users a accounts (nebo companies). a kazda company ma pak prirazeneho usera, ktereho spravuje. a nebo o krok dale – mezi users a companies bude existovat m:n relace, takze uzivatel muze spravovat vice firem a firma muze byt spravovana vice uzivately.
- CZechBoY
- Člen | 3608
Trosku mi to pripomina nase rozhrani kde je moznost (ac uz se asi nevyuziva),
ze je mozne se prihlasit (kazdej user ma jeden ucet), po prihlaseni se dostane
k datum nejake default firmy a je mozne prepnout na jinou firmu.
My to teda nemame autorizovane (k tomu bych asi udelal vazebni tabulku user_id,
firma), ale vsichni prihlaseni maji prava videt data vsech firem.
Tim ti jen chci sdelit, ze autentizaci asi uplne nemusis resit/menit, ale staci udelat novou feature – vyber firmy k zobrazeni dat + nejakou tu autorizaci.
- JiriSlischka
- Člen | 9
My máme tabulku users a tabulku accounts. Ke každému userovi se vytvoří
hned account. A vazba mezi němi je N:M jak píše David.
Každý account má v DB nastaveného základního usera. Do kterého se
automaticky dostaneš po přihlášení.
Potom nepřihlašueš jak kdyby usera, ale přihlašuješ account. Po
přihlášení máš možnost se prokliknout do jiného účtu.
Máme to i tak, že může být account čistě bez usera. Takže třeba když
chceme dát přistup účetní. Tak se na její mailovku vytvoří přístup do
našeho účtu, má pouze přístup do našeho účtu ale sama
vlastní nemá.