Przejdź do treści

Grupy uprawnień

Uprawnienia w module redagowania nadaje się, dopisując użytkownika do grup. BPP tworzy grupy automatycznie (m.in. „wprowadzanie danych”, „indeks autorów”, „dane systemowe”, „struktura”, „web”, „raporty”, „administracja”) i przy każdej migracji bazy odtwarza ich listę uprawnień (odtworz_grupy). Ręczne okrojenie uprawnień grupy w panelu nie przetrwa więc aktualizacji — o dostępie decyduje to, kto należy do grupy.

Grupy uprzywilejowane

Część grup pozwala na więcej niż redagowanie danych: na wstawienie wykonywalnego HTML/JavaScript, który zobaczą inni użytkownicy, albo na zmianę konfiguracji całego serwisu. Takie grupy należy traktować tak samo jak konto administratora (superużytkownika).

Grupa Co może Dlaczego to uprawnienie równoważne administracyjnemu
„administracja” Edytować użytkowników i grupy (w tym przynależność do grup), formularze wyszukiwania, kolumny modułu redagowania, obsługujących zgłoszenia. Może dopisać dowolne konto — także własne — do każdej grupy, w tym do grup uprzywilejowanych z tej tabeli.
„web” Edytować szablony przechowywane w bazie (dbtemplates), artykuły na stronie głównej, witryny (Site) i favicony. Szablony z bazy mają pierwszeństwo przed szablonami z dysku, więc można nadpisać dowolny szablon serwisu, także stronę logowania i panel administracyjny. Treść artykułów jest wyświetlana jako surowy HTML. W obu przypadkach można wstrzyknąć JavaScript widoczny dla wszystkich użytkowników, w tym superużytkowników. Zmiana domeny witryny wpływa na rozpoznawanie uczelni po nazwie hosta i na adresy bezwzględne generowane przez system.
„dane systemowe” Edytować słowniki systemowe, w tym ustawienia formularzy (formdefaults) z polami „HTML przed” / „HTML po” (html_before, html_after). Pola te są wstawiane do formularzy (m.in. raportów i importów) jako kod szablonu Django, bez filtrowania HTML — można w nich umieścić JavaScript wykonywany u każdego, kto otworzy formularz.
„raporty” Edytować definicje raportów (flexible-reports): szablon raportu, tabele, kolumny, źródła danych. Szablon raportu jest renderowany jako szablon Django bez filtrowania HTML. Zmiana szablonu istniejącego raportu trafia do wszystkich jego odbiorców — zależnie od ustawień raportu także do niezalogowanych.

Grupy „wprowadzanie danych”, „indeks autorów” i „struktura” nie są na tej liście: pola z HTML-em, które redagują (tytuły, streszczenia, „informacje”, „szczegóły”, „uwagi”, biogram autora, tytuł strony głównej, opisy jednostek, tekst deklaracji dostępności), są przy zapisie lub wyświetlaniu oczyszczane z niedozwolonych znaczników. Konfigurację integracji uczelni (PBN, Clarivate, ORCID, DSpace) wraz z danymi dostępowymi widzi i zmienia wyłącznie superużytkownik.

Zalecenia

  • Nadawaj grupy uprzywilejowane tylko zaufanym osobom, tak samo jak konto superużytkownika. Osobom, które mają wyłącznie redagować publikacje, wystarczy „wprowadzanie danych”.
  • Uwierzytelnianie wieloskładnikowe (MFA). BPP nie ma własnego drugiego składnika logowania (TOTP, klucze sprzętowe). MFA można uzyskać przez zewnętrznego dostawcę tożsamości — logowanie przez Microsoft 365, OIDC albo LDAP/ActiveDirectory — jeżeli wymusza je ten dostawca. Logowanie loginem i hasłem BPP pozostaje przy tym dostępne, więc dla kont uprzywilejowanych warto korzystać wyłącznie z logowania przez dostawcę z MFA i stosować politykę haseł.
  • Okresowo przeglądaj członków grup. W panelu administracyjnym: „Użytkownicy” — kolumna z listą grup oraz filtr „grupy” w panelu bocznym (pokazuje wszystkich członków wybranej grupy); filtr „status superużytkownika” pokazuje konta z pełnymi uprawnieniami.
  • Historia zmian.
    • Szablony z bazy (dbtemplates) mają historię wersji z porównaniem zmian (django-reversion) — przycisk „Historia” na stronie szablonu.
    • Rekord uczelni również ma historię wersji (django-reversion).
    • W instalacji produkcyjnej dziennik django-easy-audit rejestruje zmiany rekordów uczelni i jednostek.
    • Dla pozostałych obiektów (artykuły, ustawienia formularzy, raporty, użytkownicy i grupy) dostępny jest standardowy dziennik panelu administracyjnego (przycisk „Historia”): kto i kiedy zmienił obiekt oraz które pola — bez poprzedniej treści. Jeżeli potrzebny jest pełny ślad zmian, rozważ dopisanie tych modeli do DJANGO_EASY_AUDIT_REGISTERED_CLASSES.