PDF

Szablony uprawnień ACL

Przeczytasz w 10 min.

Spis treści

  1. Streszczenie
  2. Koncepcja
  3. Przypadek biznesowy
  4. Budowa rozwiązania
  5. Do zapamiętania…
  6. Informacje powiązane

Streszczenie

W artykule opisano budowanie schematu uprawnień opartego o model ACL (ang. Access Control List — listy kontroli dostępu). To jeden z dwóch dostępnych w nAxiom modeli uprawnień. Drugi to model RBAC (ang. Role Based Access Control — kontrola dostępu na podstawie ról). W artykule przedstawiono sposób użycia uprawnień ACL do filtrowania rekordów (dokumentów biznesowych) w widokach listowych na przykładzie prostego procesu biznesowego obsługi zamówień.

Koncepcja

Model uprawnień ACL określa prawa do wykonywania określonych czynności przez określonego użytkownika (kategorię użytkowników) w odniesieniu do określonej definicji dokumentu biznesowego (klasy dokumentów). Uprawnienia obejmują następujące czynności (w szablonach oznaczane pierwszymi literami terminów angielskich — RUDA):

  • odczyt — R (read)
  • aktualizacja — U (update)
  • usuwanie — D (delete)
  • administrowanie — A (admin); nadawanie uprawnień ACL do indywidualnych dokumentów.

W nAxiom można definiować uprawnienia — w formie szablonu uprawnień — według następujących charakterystyk użytkowników:

  • predefiniowana relacja użytkownik-dokument; obecnie obsługiwana dla twórcy dokumentu, planowana dla właściciela dokumentu, przełożonego twórcy i przełożonego właściciela,
  • rola użytkownika (kombinacja ról), opcjonalnie w połączeniu z przypisaniem do konkretnej jednostki organizacyjnej,
  • definiowana przez konsultanta relacja użytkownik-dokument (interesariusz), np. beneficjent wniosku, odbiorca korespondencji, recenzent oferty, autor opinii itp.; patrz sekcja Informacje powiązane.

Szablony uprawnień ACL definiuje się na poziomie definicji dokumentu biznesowego w dwóch wariantach:

  • szablony instancji: szablony uprawnień obowiązujące w każdym statusie dokumentu
  • szablony statusów: szablony uprawnień definiowane niezależnie dla każdego statusu dokumentu

W tym artykule zostaną opisane szablony uprawnień definiowane dla twórców dokumentów oraz dla użytkowników z określoną rolą dotyczące dokumentów w określonych statusach.

Przypadek biznesowy

Rozważmy proces biznesowy, w którym zamawiający składają zamówienia w systemie dostawcy. Proces obejmuje następujące kroki:

  • utworzenie zamówienia (wykonawca: Zamawiający, status: Utworzone)
  • przyjęcie do realizacji (wykonawca: Magazynier, status: W toku)
  • zakończenie realizacji (wykonawca: Magazynier, status: Zrealizowane)

System powinien umożliwiać kontrolę dostępu do zamówień w taki sposób, że każdy zamawiający ma dostęp wyłącznie do „swoich” zamówień, a magazynier do wszystkich zamówień oczekujących na realizację. Aby zrealizować te postulaty, należy zdefiniować szablony uprawnień ACL zgodnie z poniższą tabelą.

  Utworzone W toku Zrealizowane
Twórca dokumentu RUD* R R
Magazynier - RU R

* R - odczyt, U - aktualizacja, D - usuwanie

Budowa rozwiązania

Domyślnie w nAxiom uprawnienia ACL są wyłączone. Aby móc definiować szablony uprawnień, należy wyświetlić definicję odpowiedniego dokumentu biznesowego i na karcie Ogólne włączyć przełącznik Obsługa uprawnień. Spowoduje to wyświetlenie dwóch kart: Uprawnienia i Uprawnienia statusów.

Definicja dokumentu biznesowego z włączoną obsługą uprawnień
Definicja dokumentu biznesowego z włączoną obsługą uprawnień

Teraz możesz utworzyć pierwszy szablon uprawnień do zamówienia (status Utworzone, zakres: RUD) dla zamawiającego jako twórcy dokumentu. W tym celu kliknij zakładkę Uprawnienia statusów, a następnie w sekcji statusu Utworzone kliknij Nowy szablon. W wyświetlonym oknie zaznacz opcję Twórca dokumentu oraz zaznacz pola wyboru uprawnień.

Szablon uprawnień dla twórcy dokumentu w statusie <code>Utworzone</code>
Szablon uprawnień dla twórcy dokumentu w statusie Utworzone

W podobny sposób utwórz szablony dla twórcy w innych statusach. W przypadku magazyniera zaznacz opcję Wymagana rola i wybierz odpowiednią rolę ze znajdującej się obok listy wielowyboru.

Wybranie kilku ról na tej liście spowoduje, że szablon będzie obowiązywał użytkowników, którzy mają przypisane wszystkie wybrane role.

Po zdefiniowaniu odpowiednich szablonów karta Uprawnienia statusów powinna wyglądać jak na ilustracjach poniżej.

Szablony uprawnień dla statusów
Szablony uprawnień dla statusów

W nAxiom kontrola dostępu w oparciu o szablony uprawnień jest realizowana wyłącznie dla dokumentów tworzonych po zdefiniowaniu szablonów. Również zmiany szablonów uprawnień są egzekwowane tylko dla dokumentów utworzonych po wprowadzeniu tych zmian.

Aby uprawnienia zdefiniowane w szablonach były weryfikowane w widokach listowych, w konfiguracji listy powiązanej z danym dokumentem biznesowym należy zaznaczyć odpowiednie pola wyboru Według szablonu instancji i/lub Według szablonu statusu w grupie Weryfikacja uprawnień. (W przypadku zaznaczenia obu pól obowiązujące uprawnienia będą logiczną sumą uprawnień zdefiniowanych w szablonach instancji i w szablonach statusu).

Włączanie weryfikacji uprawnień w konfiguracji listy
Włączanie weryfikacji uprawnień w konfiguracji listy

Do zapamiętania…

  • Definicja dokumentu biznesowego: tu włączasz obsługę uprawnień ACL i definiujesz szablony uprawnień.
  • Konfiguracja lisy: tu decydujesz, jakie warianty szablonów uprawnień (statusu czy instancji) mają być stosowane w widokach listowych; jeśli używasz własnego zapytania jako źródła danych dla listy, to zapytanie musi zwracać kolumny Status i ACLId, ponadto w konfiguracji listy muszą zostać włączone przełączniki Stronicowanie i Funkcja server-side (karta Ustawienia listy).
  • Jeśli włączysz obsługę i weryfikację uprawnień, ale nie zdefiniujesz szablonów, nikt nie będzie miał dostępu do tworzonych dokumentów.
  • Szablony uprawnień nie działają wstecz: kontrola dostępu określona przez szablony uprawnień działa tylko dla dokumentów utworzonych po zdefiniowaniu/zmodyfikowaniu szablonów — dopiero wtedy podczas tworzenia dokumentów są tworzone wpisy uprawnień w systemowych tabelach bazy danych.
  • Uprawnienie do aktualizacji (Uupdate) dokumentu jest egzekwowane w momencie próby zapisu zmienionego dokumentu; nawet jeśli dany użytkownik nie ma uprawnienia do aktualizacji dokumentu, może edytować wartości w polach formularza, jednak nie może zapisać tych zmian. Aby uniemożliwić edycję wartości, należy skorzystać z uprawnień definiowanych na poziomie formularza, które opisano w osobnym artykule.
  • Uprawnienie do usuwania (Ddelete) dokumentów jest realizowane po skonfigurowaniu obsługi usuwania w edycji inline.
  • Jeśli w powiązanym z dokumentem biznesowym widoku listy używane jest własne zapytanie SQL, musi ono zwracać kolumnę ACLId z tabeli dokumentu biznesowego, żeby uprawnienia działały.
  • W szablonie uprawnień można wskazać jednostkę organizacyjną, ale tylko w połączeniu z rolą użytkownika; nie można wybrać samej jednostki organizacyjnej jako podmiotu szablonu uprawnień.

Informacje powiązane

  • Artykuł z Bazy Wiedzy nr 2. Uprawnienia interesariuszy
  • Artykuł z Bazy Wiedzy nr 4. Uprawnienia formularzy
  • Leksykon nAxiom: 5.8 Uprawnienia do dokumentów (CRUD/A)
  • Leksykon nAxiom: 4.3.2.3 Właściwości listy — karta Edycja inline

Copyright © 2025 OPTEAM SA. Theme Copyright © 2017-2020 Patrick Marsceill. Distributed by an MIT license.