Prihlásenie viacerých užívateľov do app

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Cifro
Člen | 245
+
0
-

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)

Lopata
Člen | 139
+
0
-
  • Nejjednodušší asi bude se prostě odhlásit… :-P
  • Proč nutně jeden browser? Jaký je rozdíl mezi kliknutí na jiný tab nebo na jiné okno jiného prohlížeče…?
  • Celé je to podle mě znásilňování, častá změna účtu je, myslím, nutné zlo…
Cifro
Člen | 245
+
0
-

Hm ok, ste ma presvedčili.

Ale rad by som ešte vedel ako zistim všetkych prihlasených užívateľov.

Bernard Williams
Člen | 207
+
0
-

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
+
0
-

Dá se k tomu použít Environment::getUser()->setNamespace('nejakyidentifikator');

Cifro
Člen | 245
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-
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)

Michalek
Člen | 211
+
0
-

Ondřej Mirtes napsal(a):

Nebo fakt chceš mást ostatní čtenáře, že za více různě pojmenovanými účty je jeden člověk?

Ano. :)

Ondřej Mirtes
Člen | 1536
+
0
-

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
+
0
-

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
+
0
-

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.

  1. Normální názory, které ničemu nevadí, můžu psát pod svým účtem a pod svým jménem.
  2. Přitakání kolegům proti zaměstnavateli chci psát pod svým anonymním účtem, aby to neohrozilo moje zaměstnání.
  3. Na komentáře proti pravidlům chci reagovat jako „redakce serveru xxxx.yy“.
  4. 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
+
0
-
  1. To je běžné.
  2. 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.
  3. + 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
+
0
-

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
+
0
-

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
+
0
-

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
+
0
-

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ý.