Ultima actualizare: 19.06.2026.
Acest document explică modul în care este moderat conținutul generat de utilizatori (UGC) în NavTrail. Documentul există pentru a documenta politica noastră publicată privind moderarea conținutului UGC și pentru a oferi utilizatorilor o imagine clară a ceea ce pot să se aștepte. O copie este găzduită public la https://navtrail.app/moderation-ro (alături de politica de confidențialitate).
Dacă ai o întrebare despre o decizie specifică de moderare sau dorești să raportezi conținut pe care fluxul din aplicație nu îl acoperă, trimite email la contact@navtrail.app.
Patru zone de funcționalitate acceptă conținut de la utilizatori:
| Funcție | Câmpuri text liber | Durată de viață |
|---|---|---|
| POI-uri comunitare (campare, izvoare, puncte de belvedere, refugii, vulcanizări) | nume (≤ 80 caractere), descriere (≤ 800 caractere) | Permanent până când este raportat / șters de creator |
| Rapoarte de obstacole (copaci căzuți, alunecări, etc.) | descriere (≤ 280 caractere, opțional) | TTL 4 ore, apoi șters automat |
| Alerte SOS | descriere (≤ 280 caractere, opțional), contact_hint (≤ 80 caractere, opțional) | TTL 24 ore, apoi rezolvat automat |
| Porecle convoi | poreclă (≤ 8 caractere, vizibilă doar membrilor convoiului) | 12 ore după ultima activitate |
| Nume utilizator (handle public) | nume utilizator (3–20 caractere, litere/cifre/underscore; afișat pe POI-urile, obstacolele și alertele SOS create de tine în loc de un ID anonim) | Permanent până la ștergerea contului |
Restul (trasee GPS, regiuni de hartă descărcate, intrări în calculatorul de presiune anvelope, etc.) este stocat doar pe dispozitivul utilizatorului.
contact_hint de pe alertele SOS poate conține informațiile de contact ale raportorului însuși (ex: propriul număr de telefon) dar nu ale altcuiva.NavTrail folosește trei straturi complementare de moderare, susținute de un model de cont consolidat în v1.2: navigarea și postarea de POI-uri/obstacole sunt anonime implicit, dar un utilizator își poate crea un cont permanent, verificat prin email — iar trimiterea unui SOS necesită acum un astfel de cont. Deoarece este nevoie de un email verificat pentru a trimite un SOS, aplicarea la nivel de cont (inclusiv ștergerea contului celui care trimite alerte SOS false) este un factor de descurajare real, alături de controalele server-side de mai jos.
Fiecare nume/descriere de POI, descriere de obstacol și descriere/contact-hint de SOS trece printr-un filtru de listă de cuvinte server-side înainte de inserare. Filtrul folosește potrivire pe cuvânt întreg cu reducerea diacriticelor române (ă/â/î/ș/ț → a/a/i/s/t) pentru a prinde încercări comune de evitare. Conținutul care se potrivește cu lista de cuvinte este respins cu eroarea content_blocked_profanity; utilizatorul vede un mesaj localizat care îi cere să reformuleze.
Implementare: trigger-uri BEFORE INSERT pe pois, reports, sos_alerts în supabase/migrations/0010_ugc_moderation.sql.
Lista de cuvinte este intenționat îngustă (insulte severe + vulgarități comune, ~25 termeni în română și engleză). Preferăm să lăsăm conținut la limită să treacă; calea raportare-și-ascundere-automată de mai jos este a doua linie de apărare.
Fiecare suprafață UGC are o acțiune "🚩 Raportează conținutul" vizibilă tuturor utilizatorilor cu excepția creatorului:
Rapoartele sunt imutabile și vizibile doar raportorului (un utilizator nu poate vedea cine altcineva a mai raportat un rând). Una raportare per utilizator per rând este impusă la nivelul bazei de date.
Când numărul de raportori distincți pentru un rând atinge 3:
is_hidden devine true; POI-ul dispare de pe hartă pentru toată lumea, cu excepția creatorului. O protecție de 24 de ore împotriva vechimii previne griefing-ul POI-urilor abia adăugate.status devine RESOLVED; markerul cade din interogările bbox iar UPDATE-ul Realtime îl elimină de pe hărțile clienților deschiși.resolved_at este marcat cu timpul curent; același efect de eliminare.Trigger-urile rulează ca funcții SECURITY DEFINER și marchează resolved_by_user_id = NULL astfel încât jurnalul de audit distinge rezolvarea-de-sistem de rezolvarea-umană.
Implementare: poi_auto_hide_on_reports, report_auto_resolve_on_reports, sos_auto_resolve_on_reports.
Chiar și conținutul pe care nimeni nu îl raportează nu trăiește la nesfârșit:
Rândurile expirate / rezolvate sunt curățate de joburi pg_cron la fiecare 15 minute până la 1 oră, în funcție de tabel.
Pentru conținut care ocolește straturile automate (o singură postare foarte toxică care nu declanșează lista de cuvinte și nu este văzută de încă 3 utilizatori), operatorul (Constantin, contact@navtrail.app) își rezervă dreptul de a:
Aceste acțiuni sunt luate ca răspuns la rapoarte prin email la contact@navtrail.app sau prin observare proactivă de către operator. Acțiunile operatorului sunt înregistrate dar nu sunt vizibile public.
Tu poți:
contact@navtrail.app cu ID-ul tău (vizibil în Setări → Despre) și îl vom șterge în 30 de zile.Dacă găsești conținut abuziv care nu a fost ascuns automat de acțiunea de raportare din aplicație:
contact@navtrail.app direct, cu un screenshot. Ne angajăm la primul răspuns în 48 de ore și la eliminarea conținutului care încalcă clar regulile în 7 zile.Această politică se poate modifica pe măsură ce aplicația crește. Modificările materiale vor fi anunțate în notele de versiune ale aplicației și reflectate în data "ultima actualizare" de la începutul acestui document. Versiunea curentă trăiește mereu la https://navtrail.app/moderation-ro.