jozo/sss_spot_analytics
Robime administracne rozhranie pre analyticku aplikaciu (nazvime ju Spot Analytics). V aplikacii existuju firemne konta a pouzivatelske ucty. Jedno firemne konto ma vzdy jedneho vlastnika (owner) a moze mat viac pouzivatelov. Pouzivatel moze byt administratorom firemneho konta alebo beznym pouzivatelom. Platia tieto pravidla: - ak je pouzivatel vlastnikom konta, moze zmenit rolu ostatnych clenov konta (t.j. vsetkych pouzivatelov pre dane konto, okrem seba) - ak je pouzivatel administrator konta, moze zmenit rolu ostatnych clenov konta (t.j. vsetkych pouzivatelov konta okrem vlastnika a seba) - ak je pouzivatel len beznym clenom konta, nemoze manazovat ostatnych clenov konta Potrebujeme vytvorit objektovy model, ktory obsiahne tieto pouzivatelske scenare: 1) Potrebujeme vediet zistit ci prihlaseny pouzivatel moze vidiet clenov firemneho konta. (t.j. len clenovia daneho konta) - kvoli bezpecnosti 2) Potrebujeme vediet pre aktualne prihlaseneho pouzivatela a dane konto vykreslit stranku zo zoznamom vsetkych pouzivatelov daneho konta a pri kazdom pouzivatelovi zobrazit jeho rolu (vlastnik, administrator, clen) a ak ma moznost menit rolu tak aj checkbox s Navrhnite objektovy model, ktory by dokazal zabezpecit tieto pripady. Dodrzujte tieto pravidla: - TDD - Nesmiete pouzivat ziadne getter metody! - Vsetky zavislosti musia byt explicitne predane cez parametre/konstruktor (t.j. volanie ako Account.create je zakazane lebo Account by bola implicitna zavislost) - Mozete zavolat metodu len priamo na lokalne premenne, instancne premenne alebo parametre, ktore pridu do metody. (t.j. ak niekde mate dve "bodky" tak je to problem. napriklad: account.owner.id == 4) - Mega Bonus: Vsetky objekty su immutable - (t.j. po vytvoreni instancnej/lokalnej premennej ich nikdy nesmiete zmenit)