fmfi-svt / anketa

Študentská anketa FMFI a iných fakúlt UK
https://anketa.uniba.sk/
Other
0 stars 1 forks source link

Novy system pravomoci a pristupovych prav #155

Closed svtimport closed 8 years ago

svtimport commented 11 years ago

Bug #155 imported from https://svt-devel.fmph.uniba.sk/chiliproject/issues/155 Author: Dušan Plavák Priority: Immediate Target version: Velafakultne vysledky 2014/2015 Start date: 03/20/2013

Umoznit, aby sa vysledky zobrazovali len tym, co su prihlaseni a patria ku fakulte (su studentami fakulty, alebo zamestnancami fakulty, alebo sa o nich v tej ankete hovori to jest patria medzi v ankete hodnotenych teacherov, alebo su admini).

Pritom mozno bude treba premysliet ten "system pravomoci" (tie booleany v Seasone).


Created by Dušan Plavák on 2013-03-20 at 13:19:51+01:00

svtimport commented 11 years ago

Updated by Tomáš Belan on 2013-03-25 at 15:09:00+01:00

Co sa DB tyka:

V Season budu namiesto dnesnych booleanov tieto stlpce:
\- votingOpen (boolean ako doteraz)
\- levelNeprihlasenych (integer)
\- levelCudzich (integer)
\- levelNasich (integer)
\- respondingOpen (boolean ako doteraz - mozes respondovat ak vidis vysledky AND si teacher AND toto je true)

Podla toho, do ktorej z uvedenych skupin patris, sa urci tvoj level. A podla levelu sa urci co vidis:
0 = nevidis nic
1 = vidis ciselne vysledky
2 = vidis aj textove vysledky
3 = vidis aj ucitelske odpovede

Spravil by som ich ako mysql enum ale Doctrine s tym vraj ma problemy. Len ich bude treba zdokumentovat v Season.php.

Co sa kodu tyka: Okrem priamociarych zmien v StatisticsAccess.php bude treba upravit vsemozne hlasky, co ti hovoria, co mozu ostatne skupiny. (Napriklad neprihlasenym uzivatelom niekedy hovorime "po prihlaseni uvidite to a to" ale to sa mozno zmeni na "prihlaseni clenovia <fakulty> uvidia to a to", apod.)

svtimport commented 11 years ago

Updated by Martin Králik on 2013-03-31 at 15:15:19+02:00

svtimport commented 10 years ago

Updated by Kristián Valentín on 2014-02-06 at 14:36:11+01:00

svtimport commented 10 years ago

Updated by Kristián Valentín on 2014-02-09 at 14:35:04+01:00

\- levelNeprihlasenych (integer)
\- levelCudzich (integer)
\- levelNasich (integer)

Rieto by som premenoval na:
\- levelPublic (integer)
\- levelUniversity (integer)
\- levelFaculty (integer)

prip. este level by sa dal nahradit permissions. Co myslis/te?

Spravil by som ich ako mysql enum ale Doctrine s tym vraj ma problemy. Len ich bude treba zdokumentovat v Season.php.

Enum by bol ideal, ale myslim, ze aj bez neho to moze vyzerat z pohladu API rovnako dobre. Staci spravit pole konstant a pri write kontrolovat, ci sa nastavuje niektora z nich.

svtimport commented 10 years ago

Updated by Kristián Valentín on 2014-02-14 at 19:35:08+01:00

svtimport commented 10 years ago

Updated by Tomáš Belan on 2014-03-20 at 12:16:47+01:00

Novy feature request v ramci tohto issue: navyse chceme, aby sa dalo, ze ucitelia vidia vsetky vysledky (svoje aj ostatne) a mozu na ne odpovedat, ale studenti nevidia nic. Takze okrem levelPublic, levelUniversity a levelFaculty by to chcelo este levelFaculty rozdelit na ucitelov a zvysok. Alebo take cosi.

svtimport commented 9 years ago

Updated by Tomáš Belan on 2015-03-09 at 12:46:54+01:00

Chceme rozlisovat prinajmensom nasledujuce kategorie: ucitelia fakulty, studenti fakulty, ucitelia univerzity, studenti univerzity, neprihlasena verejnost.
Kazdej kategorii chceme vediet nastavit, co vsetko vidi (resp vie robit).

Za ucitela fakulty sa povazujes, ak na tvoj predmet chodi co i len jeden student z tej fakulty. To v praxi asi znamena, ze si priradeny k nejakemu predmetu v danej instancii (nemusime riesit, ci niekto hlasoval alebo nie). Je mozne ze to uz takto funguje.

svtimport commented 9 years ago

Updated by Tomáš Belan on 2015-03-09 at 14:30:29+01:00

svtimport commented 9 years ago

Updated by Tomáš Belan on 2015-03-16 at 11:05:35+01:00

"Ucitelia univerzity" a "studenti univerzity" su trochu tazko rozlizovatelni - museli by sme ist cez LDAP, comu sa snaizme vyhnut. (Vid: ucitelia fakulty su zistitelni aj bez LDAPu napr podla toho, ci maju TeachersSubjects, a studenti fakulty podla toho, ci maju spravny zapisny list pre tuto fakultu, vid #189.)

Takze to, co by sme chceli, je "ucitelia fakulty", "studenti fakulty", "ini prihlaseni uzivatelia" a "verejnost". Z pohladu tohto issue maju tento vyznam: "ucitel fakulty" je ci mas isTeacher=1 (to sa nastavuje ked sa pridava ze ucis nejaky predmet, a mozme to rucne nastavit v DB pre veducu kniznice alebo podobne). "Student fakulty" je ci mas isStudent=1 (to ide z AISu v AISUserSource). "Ini prihlaseni uzivatelia" a "verejnost" su self-explanatory. To znamena, ze v ramci tohto issue sa nemusia menit definicie tych kategorii (isTeacher a isStudent zostavaju doteraz), iba to ze co moze kto robit.

Ziskas maximum z privilegii tych kategorii, do ktorych patris. (Napr ak si ucitel fakulty aj student fakulty, berie sa maximum.)

Navyse admin vidi uplne vsetko (ako doteraz). Tam netreba ziadne zmeny.

svtimport commented 9 years ago

Updated by Tomáš Belan on 2015-05-17 at 00:41:04+02:00

Dalsia mini-esej.

Mylil som sa o vyzname isStudent=1. Neurcuje, ci som v danej sezone student fakulty -- tu informaciu v databaze vlastne vobec nemame. isStudent=1 doteraz urcoval iba to, ci vidim VSES017 a skusil som kliknut na button Hlasuj. Tato informacia je uplne nanic, a kvoli #189 si aj tak musime niekde pamatat, ci sme student fakulty (nemozeme to zistovat z AISu pri kazdom prihlaseni, ako teraz zistujeme skupiny z LDAPu), tak proste zmenim vyznam stlpca isStudent, aby hovoril ci som v tejto sezone student tejto konkretnej fakulty. To sa hodi aj v #189 aj v #155.

Otazka je, co so starymi sezonami. V nich je isStudent=1 nespolahlive a skutocne to znamena v podstate len to, ze dany clovek klikol na "Hlasuj". Vidim tri moznosti: A) Kasleme na to, snad to cca sedi. ak budu stare FMFI vysledky vidiet aj nejaki neFMFI ludia, nevadi nam to. B) vo vsetkych starych sezonach resetneme isStudent a loadedFromAis, a pridame do StatisticsAccess nieco ako je v AbstractVotingControlleri, aby ked sa niekto pokusi otvorit vysledky z roku 20XX/20YY, tak sa z AISu dodatocne zistilo ci ma taky zapisny list. (To sa takcitak moze zist, ak chceme aby sa za "studentov fakulty" pocitali aj studenti co nehlasovali.) C) Zahodime stare hodnoty isStudent, a skusime v AISe najst nejaku zostavu, z ktorej ich importneme.

Ale na predoslom odstavci mozno aj tak nezalezi. Ako je to vlastne casovo viazane? Ak sa stanem studentom fakulty, mam vidiet aj vysledky sezon ked som este studentom nebol? Urcite ano. Ak prestanem byt studentom fakulty, mam stale vidiet vysledky z cias ked som studentom bol? Myslim ze tiez ano. A mam vidiet aj vysledky neskorsich sezon (odkedy som prestal byt studentom)? To uz trochu neviem, ale pre symetriu povedzme ze ano. Cize ak som bol studentom fakulty kedykolvek pocas historie, mal by som mat access level "student fakulty" vo vsetkych sezonach. V tom pripade mozno aj tak nechceme UserSeason.isStudent=1, ale nejaky iny mechanizmus. (To trochu pripomina User.department vs UserSeason.department, vid #175.)

svtimport commented 9 years ago

Updated by Tomáš Belan on 2015-07-02 at 15:44:41+02:00

Co sa zistilo o isStudent: bude to flag pre uzivatela (nie season) a ked ho ziskas, uz ho nikdy nestratis. Ak ho nemas a prihlasis sa, vykonaju sa dve kontroly: prva je ci mas v lubovolnej sezone participated=1, a druha je ci si dnes podla LDAPu student tejto fakulty. Ak nieco z toho odpovie ano, ziskas na veky vekov flag ze si studentom, a odvtedy mas pri pozerani vysledkov level "student fakulty" (alebo vacsi ak si aj nieco ine).

isTeacher=1 by tiez nemalo zavisiet od sezony. Ak si v lubovolnej sezone mal isTeacher=1, si ucitelom a mas level "ucitel fakulty".

svtimport commented 9 years ago

Updated by Tomáš Belan on 2015-07-02 at 15:51:52+02:00

Implementacne detaily: Definicia stlpca UserSeason.isStudent zostane tak, ako je podla #189 (tj ze mas zapisny list v tomto semestri). Stare sezony nam predbezne nevadia (alebo ak velmi chceme, nastavime vsade isStudent na hodnotu participated).

Nove flagy budu uzivatelske role (tabulka UsersRoles) - ROLE_RESULTS_FACTEACHER a ROLE_RESULTS_FACSTUDENT. Tieto role sa vyhodnocuju pri prihlaseni, alebo take cosi. Ak nemas FACTEACHER a prihlasis sa, spravi sa select ci v nejakom UserSeason mas isTeacher=1 a dostanes FACTEACHER. Ak nemas FACSTUDENT a prihlasis sa, spravi sa select ci v nejakom UserSeason mas isStudent=1 (co teda odnedavna pouziva #189 definiciu a v starych sezonach nevadi) a ak to nevyjde, tiez sa spravi ten LDAP check, a dostanes FACSTUDENT.

TomiBelan commented 8 years ago

Hopla, toto uz je davno fixnute v 42aef57956ff29311e71fc245f712bb97e901bcc.