IAP #14: Grupuri probleme

Aceasta pagina descrie o propunere pentru echipa infoarena. Informatiile prezentate aici nu reprezinta planuri oficiale ale Asociatiei infoarena decat daca propunerea este adoptata.
Data2009-11-20
Autor(i)toni2007Pripoae Teodor Anton toni2007
StareIN-CONSTRUCTIE

Abstract

Propun ca pentru fiecare problema sa poata fi asociat un grup de useri care sa poate fi administratori pe acea problema.

Motivatie

Aceasta functionalitate este utila concursurilor organizate de comunitate, unde un helper nu poate vedea problemele adaugate de un alt helper sau admin pana acestea nu apar in arhiva sau in concurs si nici nu poate trimite solutii.

Detalii

  • Autorul problemei, sau un administrator va putea selecta un grup de useri carora le va acorda drepturi pe acea problema.
  • Orice helper / admin va putea adauga un grup nou.
  • Helperii vor putea edita doar grupurile create de ei, adaugand sau eliminand utilizatorii din acel grup.
  • Orice user din grup va putea edita, atasa fisiere si trimite solutii la acea problema.
  • Orice user din grup va putea descarca testele si va putea vedea toate sursele trimise la acea problema.
  • Un user din grupul unei probleme nu va putea sterge problema decat daca este cel care a creat-o.

Implementare

  • Se va crea un tabel ia_groups care va contine id-ul grupului, numele grupului si autorul. De asemenea va exista si un tabel ia_groups_users care va contine linii de forma: id-ul grupului si user-ul. Cand se va verifica daca un user este intr-un grup, se va cauta in tabelul ia_groups_users daca exista o linie cu id-ul grupului respectiv si numele user-ului. Cand se vor cauta utilizatorii care apartin unui grup se vor selecta din ia_groups_users toate liniile cu id-ul egal cu cel al grupului.