Prihlásenie viacerých užívateľov do app
- Cifro
- Člen | 245
Na jabberu som riešil problém ako dosiahnuť aby sa z jedného browseru dalo do aplikácie prihlásiť pod rôznymi uživateľmi. Podľa príkladu CD-collection v examples, to robí tak že sa cookies a session prepisuje vždy posledným prihlaseným, takže nie je možné sa prihlasiť s viacerými uživateľmi.
Toto chovanie je celkom správne ale napríklad pri testovaní aplikácie kde chcem zistiť či uživateľské práva fungujú správne, napr. jeden človek vidí nejaké informácie o druhom na zaklade toho že sú priatelia a tak by som chcel dosiahnuť to aby sa dalo prihlasiť s viacerymi.
Padlo jednoduché riešenie, že sa prihlasiť z iného browseru. Ale mňa by zaujímal princíp ako to dosiahnuť aby sa dalo z jedného browseru s viacerými prihlasiť.
A v súvislosti ešte s tým, ako dostnem všetkých prihlasených uživateľov keď je iba Identita v session a nevyužíva sa DB kde by bolo napr. logged = 1 ?
Editoval Cifro (6. 1. 2010 16:47)
- Bernard Williams
- Člen | 207
Nazdárek,
osobně si myslím, že je to kontraproduktivní, ale pokud to potřebuješ, tak proč ne :-)
Zkoušel jsi ukládat uživatele do pole? Např.
$users[1] = new User;
atd? Pak by možná mohly
pomoct taky jmenné prostory.. Ale pokud potřebuješ možnost přihlášení
více uživatelů jen proto, aby viděli obsah ostatních, tak bych volil asi
vhodné nastavení přístupových práv k obsahu –
např. přes DB.
S pozdravem
Bernard
- David Grudl
- Nette Core | 8228
Dá se k tomu použít
Environment::getUser()->setNamespace('nejakyidentifikator');
- Cifro
- Člen | 245
Ešte doplním:
Aj Twitter aj Facebook majú tento systém, jeden browser – jeden prihlasený
uživateľ. A to ma niekedy serie pri Twittery, že sa nemôžem prihlasiť na
dve účty naraz. Lebo aj twitter.com/login
ma hneď presmeruje na
homepage. :(
@David
Ha! Ja som aj podozrieval setNamespace()
Dik :-P
- Michalek
- Člen | 211
Budu řešit stejný „problém“, mám web kde mám tři účty (admin, anonymní správce, korektor) a například u přidávání komentáře chci mít vždy možnost vybrat si z jedné přihlášené identity. Jednou chci uživatele seřvat za blbej příspěvek jako správce, podruhé za špatnou češtinu.
A v době, kdy člověk chce reagovat na 100+ komentářů denně z různých účtů, omrzí jak pouštění více prohlížečů, tak přehlašování. Takže děkuji za návrh řešení výše.
- Ondřej Mirtes
- Člen | 1536
Podle mě je přihlášení více uživatelů naráz z jednoho browseru nesmysl. Možná by to ulehčilo debugování přístupových práv, ale to je tak vše.
Michalek: Toto by se mělo řešit přidělením více rolí uživateli a Nette to umí. Nebo fakt chceš mást ostatní čtenáře, že za více různě pojmenovanými účty je jeden člověk? Tuhle praxi jsem na webu ještě neviděl. Akorát na Webgame, kde si na jeden účet můžeš založit dvě země, ale stejně je za názvem země název tvého účtu, takže nemůže dojít k omylu. A pak v MMORPG, kde ostatní hráči nemají šanci zjistit, že za 2 postavami (tzv. alty) je jeden hráč – dokud jim to neřekne…
- JakubKohout
- Člen | 92
Ondřej Mirtes napsal(a):
Podle mě je přihlášení více uživatelů naráz z jednoho browseru nesmysl. Možná by to ulehčilo debugování přístupových práv, ale to je tak vše.
Michalek: Toto by se mělo řešit přidělením více rolí uživateli a Nette to umí. Nebo fakt chceš mást ostatní čtenáře, že za více různě pojmenovanými účty je jeden člověk? Tuhle praxi jsem na webu ještě neviděl. Akorát na Webgame, kde si na jeden účet můžeš založit dvě země, ale stejně je za názvem země název tvého účtu, takže nemůže dojít k omylu. A pak v MMORPG, kde ostatní hráči nemají šanci zjistit, že za 2 postavami (tzv. alty) je jeden hráč – dokud jim to neřekne…
takhle to řeší například Xchat, posílá v URL adresy identifikaci daného uživatele.
- Cifro
- Člen | 245
Environment::getUser()->setNamespace('nejakyidentifikator');
Toto bol zaujímavý hint len neviem ako to použiť. Robilo mi to somariny.
A potom som sa aj tak nevedel dostať k tým údajom napr.
Environment::getSession('nejakyidentifikator')
.
Ten namespace som nastavoval v Auth::loginFormSubmitted
za
metódou authenticate()
. Asi na to idem blbo :/
Editoval Cifro (7. 1. 2010 21:14)
- Ondřej Mirtes
- Člen | 1536
Chudáci ;) Já vím, tahle diskuze by neměla být o UX, ale čistě jen o programování, ale nevím, proč by ve frameworku měla být podpora pro něco, co je IMHO jednoznačně proti dobré UX :)
- bazo
- Člen | 620
Michalek napsal(a):
Budu řešit stejný „problém“, mám web kde mám tři účty (admin, anonymní správce, korektor) a například u přidávání komentáře chci mít vždy možnost vybrat si z jedné přihlášené identity. Jednou chci uživatele seřvat za blbej příspěvek jako správce, podruhé za špatnou češtinu.
A v době, kdy člověk chce reagovat na 100+ komentářů denně z různých účtů, omrzí jak pouštění více prohlížečů, tak přehlašování. Takže děkuji za návrh řešení výše.
a na to musis byt prihlaseny trikrat? nestaci si vybrat zo selectu len
identifikator uctu?
ja som to tak riesil v jednom dochadzkovom systeme, kde admin mohol nahlasit
jednotlivych ludi ako by to robili oni sami, bez toho, ze by sa prihlasil
ako oni
- Michalek
- Člen | 211
Nevím, zdá se mi, že prostě nemáte web, kde je to potřeba :)
Dejme tomu že jsem policista, který spravuje velký informační web.
- Normální názory, které ničemu nevadí, můžu psát pod svým účtem a pod svým jménem.
- Přitakání kolegům proti zaměstnavateli chci psát pod svým anonymním účtem, aby to neohrozilo moje zaměstnání.
- Na komentáře proti pravidlům chci reagovat jako „redakce serveru xxxx.yy“.
- Na jazykově špatné příspěvky chci reagovat jako „jazykový korektor“.
Prohřešek proti UX? Neberu to tak, spíše nutnost. A přepínání mezi těmito účty řeším třeba 20× denně, což je otrava.
Finálně by se určitě vybíralo ze selectu, jde o to, jak do toho selectu dostat všechny identity, které uživatel může spravovat, aniž by byly nějak provázané přes databázi (někdo hackne databázi, stáhne mi data, pozná kdo přispívá za které účty a daní uživatelé mají vyhazov – fikce? Nemyslete si…)
Takže prostě a jednoduše se člověk přihlásí na tři účty a těmi se pak plní selectbox. :) Řešit to budu v nejbližších hodinách.
- Ondřej Mirtes
- Člen | 1536
- To je běžné.
- V části, kde se píšou názory na kolegy, by měly být všechny účty anonymní – prostě se k názoru neuloží user_id.
- + 4) Pokud jde o běžné fórum, mohl bys mít pod svým nickem vyjmenované všechny role, které zastáváš. Řešit toto vlastnictvím čtyř dvojic login + heslo na jednom serveru je fakt ee.
- Michalek
- Člen | 211
2. Tou částí je celý web, různě po diskuzích.
3. + 4.) Mohl, ale to by pak ostatní věděli, že to jsem já – a to
nechci.
Nicméně nemá cenu o tom dále polemizovat, beru na vědomí, že někomu se to nelíbí, ale u nás je to tak nastavené a dále to tak zůstane, nette nenette, ux neux :-) Děkuji za reakce.
Editoval Michalek (8. 1. 2010 14:04)
- Panda
- Člen | 569
A co to řešit přes „role“, ale trochu jinak – přes profily? Uživatel by si při přidávání příspěvku vybral, pod jakým ze svých profilů to uložit. K příspěvku by se pak uložil jen konkrétní „profil“ a bylo by. Vazba mezi tabulkou uživatelů a tabulkou profilů by byla N:M, takže by všechny anonymy byly od jednoho „profilu“. Jednoduché, funkční a plně kontrolovatelné řešení.
- PetrP
- Člen | 587
K řešení z dvěma prohlížečema doplním ještě možnost anonymních oken, které mají odělené sušenky od sebe.
Podporuje to Firefox a Chrome (možná i další).
Jinak zastávám názor že to není potřéba (potřebuje to vetšinou tvůrce). a Nebo je špatně návrh aplikace a řeší to odělené profily a loginy jak píše Panda.
- Cifro
- Člen | 245
Ano už som sa sám so sebou zhodol, že to čo som pôvodne chcel nie je dobrý nápad :-)
Na jebberu som dal ako príklad web pokec.sk a čudoval som sa, že sa dá
prihlasiť na viacero účtov z jedného browseru. Sledoval som aké cookies
ukladá, zmazal som ich a aj tak som bol stále prihlásený, a to preto lebo si
v URL prenašal nejaký dočasný session identifikátor
?i9=xxxxxx
a ten keď som zmazal z URL tak web sa prekreslil ako
keby som bol odhlásený.