dočasní uživatelé pro demo verzi aplikace

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

Mám otázku, která se týká spíše návrhu než nette samotného…

Popis situace

  • Ve své aplikaci mám s uživatelem spojenu tabulku AppUser, která ma klasicky id, roli, email…
  • Login provádím pomocí Sign:in a UserManager, kde po ověření uživatele vyhodím Identity objekt (id, role)

Co potřebuji udělat

  • Zpřístupnit části aplikace, které jsou přístupné jen přihlášenému uživateli komukoliv na prohlédnutí automatickým přihlášením tzv demo uživatele

Jak to řeším

  • založil jsem uživatele demo v roli demo
  • nahrál jsem uživateli testovací data
  • roli demo jsem nastavil aby fungovala jen v „read-only“ módu (na uživatelské operace)
  • pokud návštěvník klikne na „Live DEMO“ odkaz, přihlásí se automaticky jako demo uživatel

V čem je háček

  • Více lidí najednou sdílí jeden demo účet, takže se mohou navzájem odhlašovat z aplikace

Jak to chci řešit?

  • Chtěl bych nějak pohodlně dynamicky vytvářet dočasné uživatele, např „demo1“, „demo2“… bez jejich ukládání do databáze
  • Chtěl bych aby všichni tito dočasní/virtuální uživatelé sdíleli data s původním uživatelem „demo“ ..jinými slovy aby se z pohledu databáze jednalo pořád o tohoto uživatele
  • Chtěl bych uvedené instance uživatelů recyklovat (demo1 se odhlásí tak se zase použije)
  • Vidím to tak, že si stejně budu muset v databázi vést záznam o tom, jaký virtuální uživatel je přihlášen a podle toho přidělovat volná čísla
  • Jak ale zařídím aby tito virtuální uživatelé působili jako odlišné účty a přitom sdíleli stejné id přes identity?

Dáte návrhy? :)

Pavel Kravčík
Člen | 1196
+
+2
-

Tak teoreticky Ti stačí mít více sessions, ne? Najdi místo, kde se to ukládá do sušenky a změň to na podmínku, když je uživatel demo. Například k tomu klíči podle kterého se to ukládá přidej IP adresu.

Všichni budou demo, ale přihlášeni budou všichni separátně.

microcz
Člen | 62
+
0
-

přesně takovou radu jsem potřeboval, díky moc