Closed Bebul closed 4 years ago
To už znamená možnost mít nějaké "roomy", skupiny uživatelů, kteří se navzájem vidí.
Zatím správa uživatelů žádná neexistuje, seznam uživatelů má server pevně daný. Pokud bys chtěl soukromé loctio, je to možné, musel bys:
appName
změnil z "loctio" na "bebulio"Udělat lepší správu uživatelů (roomy) je možné, ale pro naše pracovní účely se mi to nezdá potřebné a v tuhle chvíli nemám chuť se tomu věnovat. Pokud k tomu uděláš ve volném čase PR, klidně ho zmerguji.
vidím, pokud něco commitne na GitHub, a to dokonce plný obsah issue, což je skoro monstrózní, ale uvidíme, jak se to osvědčí.
To už jsem snad zmiňoval - viz https://github.com/gamatron/im/issues/8#issuecomment-617755224
Založil jsem na to teď issue: gamatron/loctio/issues/1
- založit si App Engine projekt, dostal by url řekněme bebulio.appspot.com
dřív nebo později si určitě App Engine budu chtít založit. Potřebuju si hrát i s menšími projektíky...
Udělat lepší správu uživatelů (roomy) je možné, ale pro naše pracovní účely se mi to nezdá potřebné a v tuhle chvíli nemám chuť se tomu věnovat.
Napadá mě jiné řešení, které by snad mělo být docela jednoduché, a sice použít systém "Follow", jako má Strava (a nejspíš i jiné sociální sítě).
Jedná se pouze o presence / location, notifikace jdou zcela mimo, ty na žádné uživatele nekoukají.
Každý uživatel by měl dva seznamy: uživatele, kterým dovoluje, aby ho viděli, a uživatele, které chce sám vidět. V prvním přiblížení to může být i seznam jeden, ale ta možnost asymetrie mi připadá docela zajímavá. Mohl bys pak třeba teoreticky vidět Matěje a on by nemusel vidět tebe, kdybys nechtěl.
Každý uživatel by potom viděl stav všech uživatelů, které chce vidět, a kteří mu dovolují, aby je viděl.
Druhá otázka je, komu vůbec dovolit přistupovat na server. Je možné to nechat zcela otevřené, ať to používá, kdo chce, ale to se mi moc nelíbí, nerad bych se dostal do situace, kdy mi cizí uživatelé vyčerpají kvóty (i když se nejspíš bojím zbytečně a nejspíš by to kromě nás stejně nepoužíval vůbec nikdo). Mohlo by to fungovat tak, že ti dosud vyjmenovaní uživatelé by byli "adminové" a mohli by editovat seznam uživatelů, kteří mají právo se na loctio server připojit.
Koncept Followers
je super!
Každý uživatel by měl dva seznamy: uživatele, kterým dovoluje, aby ho viděli, a uživatele, které chce sám vidět.
Začal jsem na tom pracovat, není to technicky těžké, ale u téhle věci si přestávám být jist, jestli ji chci, protože se tím docela komplikuje user interface. Pro každého uživatele potom máte čtyři akce: watch / unwatch, allow watching / disallow watching (z nich vždy dvě jsou možné). Zdá se mi to poměrně nepřehledné. Zkusím to ale takhle dodělat, pracné to není, pak uvidíme.
Myslím, že sledování mám rámcově hotovo. Udělal jsem to tak, že povolit sledování můžete i tomu, kdo vás o to nepožádal, jakmile vás požádá, rovnou se mu žádost schválí.
Každý z nás si tedy musí:
Zveřejnil bych to, ale může se stát, že se přitom něco rozbije, testoval jsem to jen se dvěma uživateli.
Seznam uživatelů povolených na serveru zatím funguje stejně, jako dřív, tj. je napevno. Do toho se už mezitím pustím, ale to už by tahle nastavená sledování změnit nemělo.
Až mi potvrdíte, že jste připraveni, zveřejním to. Tray klienta by se to nemělo nijak týkat, jen v době, než se navzájem povolíme, neuvidí ostatní uživatele.
Za mě to můžeš zveřejnit kdykoli. Neslibuji, že to povolím hned, ale budu se snažit co nejdříve.
Jeden pokusný králík mi asi stačí. Je to na serveru, můžeš povolovat.
Povoleno, na webu jsem tě viděl hned, v appce to chvilku trvalo.
Dal jsi mi "Allow watching me"?
Takovou možnost tam nemám. Dal jsem "Watch user", u tebe v menu vidím "Stop watching" a "Disallow watching me". Asi chybka, předpokládám že bych ti měl povolovat a ne zakazovat.
Hm. Zvláštní. To znamená, že si to myslí, žes mi to už dovolil.
Když udělám disallow, nic se nestane, pořád u tebe vidím Requested.
A v menu máš dál disallow?
jj
Už mám ve stejném stavu i Bebula i stravissimo, vidím to i na lokálním serveru, takže to snad dokážu debugovat.
Teď u tebe mám Watching No a v menu allow.
Možná se mi někde plete podmět / předmět.
Tak to nakonec byla hrozně jednoduchá chyba, jen v UI:
63ac8a3501814d587d8c9c633074eb55af340ee6
Mohli jste tedy dovolit vás sledovat jen tomu, kdo vás o to nepožádal.
Zatím žádný rozdíl nepozoruji. U Bébula mám Watching me Requested a v menu disallow, u tebe taky, před chvílí jsem měl u tebe Watching me No a allow.
Od commitu ke zveřejnění to ještě chvíli trvá (a musím to dělat ručně). Na serveru je oprava, prosím, dovol mi tě sledovat.
Už tě vidím.
A už vidím i Bébula. Takže teď to přidávání nových uživatelů (to by mělo být výrazně jednodušší) a bude to.
Dobře, představuju si, že utilitku nainstaluju na našem domácím počítači a hodím tam Matějův token. A teď...
Každý uvidí stejné notifikace, jaké vidí na GitHubu (svoje).
Notifikace k té utilitě vlastně nijak nepatří, jsou tam k tomu připláclé úplně nezávisle. Klidně by to mohly být dvě utility.
Žádný jiný obsah, než notifikace, to neukazuje.
Super, takže Matěj uvidí, pokud do jeho repository udělám nějaký isssue, comment, commit apod. Totéž já z jeho strany. A krom toho udivím, že je náš počítač online. Vlastně i založením repository IM u Matěje docílím toho, že budu moci poslat tomu, kdo sedí u domácího počítače NOTIFIKACI. Obávám se, že toho budu nadužívat 😄
Myslím, že mám hotovo
Je to takové velmi základní, administrátoři vidí tlačítko "Add user...", když ho zmáčknou, zadají GitHub jméno a ten tím získává právo přístupu na server. Není žádná zpětná vazba, není žádný způsob, jak si ověřit, jestli uživatel existuje (jedině v Google Cloud konzoli v datech na serveru)
Ještě jsem tam založil tlačítko "Site administration", vypadá sice hezky, ale nedělá zatím vůbec nic.
Implementační poznámka: přestal jsem používat soubor secret.txt, i seznam administrátorů se nyní dělá v Google Cloud Storage (což je taková primitivní databáze). Zatím jsme administrátoři my tři.
Server je zveřejněn.
K zamyšlení
Mezi uživateli vidím Stravissimo... Napadá mě, že bych tam rád viděl svýho kluka, ...
Já tam tedy vidím, pokud něco commitne na GitHub, a to dokonce plný obsah issue, což je skoro monstrózní, ale uvidíme, jak se to osvědčí.
Ale kdyby nějak šlo přidat Matěje, že bych ho ale viděl jen já a vy ani prd, tak to by bylo zajímavé, že bych v tom okénku viděl kromě vás taky něco zajímavějšího...
?