PDF

Uprawnienia formularza

Przeczytasz w 19 min.

Spis treści

  1. Idea…
  2. Zastosowanie
  3. Założenia
  4. Realizacja
  5. Testy
  6. Baza danych
  7. Do zapamiętania
  8. Patrz także

Idea…

Uprawnienia formularza to „przedłużenie” funkcjonalności szablonów uprawnień na poziom formularza. Pozwalają one definiować dostęp do indywidualnych sekcji i pól formularza i w ten sposób określać wartości, które mają być widoczne/„modyfikowalne” dla określonych użytkowników. Zatem przedmiotem definiowanych uprawnień są obiekty na formularzu. Natomiast podmiotem uprawnień formularza są, podobnie jak dla dokumentów, twórcy dokumentów, użytkownicy z określonymi rolami (w tym z wybranych jednostek organizacyjnych) oraz interesariusze. Ponadto uprawnienia formularza określa się dla indywidualnych statusów, w tym także dla nowego dokumentu (jeszcze bez statusu), natomiast nie ma możliwości zdefiniowania zestawu uprawnień formularza dla wszystkich statusów.

Uprawnienia formularza są realizowane za pomocą zmiany atrybutów kontrolek na formularzu, dlatego uprawnienie do odczytu określonej wartości jest równoznaczne z ustawieniem widoczności kontrolki, w której ta wartość jest wyświetlana. Analogicznie uprawnienie do modyfikacji wartości odpowiada ustawieniu atrybutu tylko do odczytu dla kontrolki. Z tego też powodu w uprawnieniach formularza jest jeszcze trzecie „uprawnienie”, które odpowiada ustawieniu atrybutu wymagalności dla danej kontrolki. W uprawnieniach formularza można także określić, że podanie określonej wartości będzie dla danego użytkownika obowiązkowe.

Podobne możliwości dają także ustawienia dostępności dla kontrolek i sekcji formularza. Sposób łączenia ze sobą ustawień dostępności i uprawnień formularza przy użyciu odpowiedniego typu walidacji opisano w osobny artykule.





Zastosowanie

Najprostszym zastosowaniem uprawnień formularza jest poprawa wrażeń użytkownika, który ma tylko uprawnienia do wyświetlania dokumentu (R według szablonu uprawnień). Jednak po otwarciu dokumentu w formularzu we wszystkich polach jest możliwa edycja wartości. Dopiero przy próbie zapisu jest wyświetlany komunikat o braku dostępu. Używając uprawnień formularza, można włączyć tryb tylko do odczytu dla wszystkich sekcji formularza, dzięki czemu użytkownik nie odniesie wrażenia, że uprawnienia do dokumentu nie obowiązują w formularzu.

Próba zmiany wartości (pole Rabat) przez nieuprawnionego użytkownika
Próba zmiany wartości (pole Rabat) przez nieuprawnionego użytkownika

Są jednak sytuacje, kiedy użytkownik musi mieć uprawnienia do modyfikowania dokumentu, ponieważ powinien mieć możliwość zmiany niektórych wartości, ale jednocześnie nie powinien móc zmieniać innych wartości. W znanej z innych artykułów przykładowej aplikacji do obsługi zamówień pracownicy realizujący zamówienie muszą mieć możliwość zmiany statusu zamówienia na Zrealizowane, jednak nie powinni móc zmieniać żadnych szczegółów zamówienia. W tej sytuacji można włączyć tryb tylko do odczytu dla wszystkich sekcji formularza z wyjątkiem sekcji toolbar, w której są wyświetlane przyciski workflow.

Założenia

Jedyną czynnością wykonywaną przez pracownika działu kompletacji zamówień jest zmiana statusu zamówienia na Zrealizowane. To wymaga uprawnienia do aktualizacji dokumentu. W rezultacie taki pracownik może zmienić dane zamówienia, co na etapie realizacji jest raczej niepożądane. Aby rozwiązać ten problem biznesowy, można skorzystać z uprawnień formularza i dla interesariusza Realizator zamówienia (lub pracownika z rolą Specjalista ds. kompletacji zamówień, zależnie od modelu procesu biznesowego) wyłączyć możliwość aktualizacji sekcji formularza w statusie W toku.

Zablokowanie kontrolek w przypadku kierownika działu sprzedaży wymaga natomiast zdefiniowania uprawnień we wszystkich statusach, ponieważ ma on uprawnienie do odczytu zdefiniowane jako szablon instancji, to jest bez względu na status.

Realizacja

Aby zdefiniować uprawnienia formularza, przejdź do edycji formularza i kliknij przycisk Uprawnienia.

Uprawnienia formularza można definiować tylko wtedy, kiedy w definicji dokumentu biznesowego tego formularza włączono obsługę uprawnień.

Uprawnienia formularza
Uprawnienia formularza

Zostanie wymuszony zapis formularza. W wyświetlonym oknie dialogowym kliknij przycisk Nowy uprawniony. Zostanie wyświetlone kolejne okno, podobne do okna definiowania szablonu uprawnień.

Nowy uprawniony
Nowy uprawniony

Wybierz status dokumentu, w którym mają obowiązywać uprawnienia oraz użytkownika, któremu uprawnienia zostaną przypisane. W omawianym przypadku będzie to status W toku i rola Specjalista ds. kompletacji zamówień albo interesariusz Realizator zamówienia. Kliknij przycisk Zapisz. W oknie Uprawnienia dla formularza zostanie dodany wiersz ze znakowanymi kolorem polami wyboru dla każdej sekcji i każdej kontrolki na formularzu. Domyślnie pola wyboru uprawnień do odczytu i aktualizacji (Read i Update) są zaznaczone, a pole wyboru wymagalności (Mandatory) nie jest zaznaczone.

Aby zrealizować przyjęte założenia, wyczyść zaznaczenie pól wyboru Update w sekcji pól użytkownika i w sekcji pól systemowych.

Sekcja toolbar jest reprezentowana jako dwie podsekcje: sekcję przycisków akcji i sekcję przycisków workflow.

W podobny sposób utwórz uprawnienia dla kierownika działu sprzedaży. Po wykonaniu tych czynności schemat uprawnień formularza powinien wyglądać jak poniżej.

Schemat uprawnień formularza
Schemat uprawnień formularza

Aby zapewnić, że skonfigurowane uprawnienia będą obowiązywać niezależnie od ustawień dostępności zdefiniowanych dla poszczególnych pól i sekcji formularza, z listy Typ walidacji wybierz pozycję Ustawienia ACL. Spowoduje to, że ustawienia dostępności będą ignorowane, natomiast egzekwowane będą tylko uprawnienia formularza. Pozostałe pozycje z tej listy zostaną opisane w osobnym artykule.

Testy

W przeciwieństwie do uprawnień określanych na poziomie dokumentu biznesowego, zmiany uprawnień formularza obowiązują dla wszystkich dokumentów objętych uprawnieniami, a nie tylko dla tych, które zostały utworzone po wprowadzeniu zmiany.

Kierownik sprzedaży może wyświetlać poszczególne zamówienia w widoku formularza, ale wszystkie kontrolki na formularzu, z wyjątkiem przycisku Anuluj, są wyświetlane w trybie tylko do odczytu.

Formularz w trybie tylko do odczytu
Formularz w trybie tylko do odczytu

Realizator zamówienia również ma kontrolki na formularzu w trybie tylko do odczytu, ale może kliknąć przycisk Zakończ, aby przenieść dokument do statusu Zrealizowane i zakończyć obsługę zamówienia. (Pole wyboru Read oznaczone zieloną ramką na ilustracji w poprzedniej sekcji).

Formularz w trybie tylko do odczytu z dostępnym przyciskiem workflow
Formularz w trybie tylko do odczytu z dostępnym przyciskiem workflow

Baza danych

Informacje o uprawnieniach formularza są zapisywane w kilku tabelach systemowych, które przedstawiono na ilustracji. Poniżej zamieszczono krótki opis tych tabel.

Schemat tabel systemowych do zapisu informacji o uprawnieniach formularzy
Schemat tabel systemowych do zapisu informacji o uprawnieniach formularzy
[core].[ACLFormTemplateEntries]
Ogólne informacje o zdefiniowanych zestawach uprawnień formularzy
Nazwa kolumny Typ danych Zezwól NULL Opis
Id int Kolumna klucza głównego, identyfikator rekordu w tabeli
BusinessDocumentId int Identyfikator dokumentu biznesowego
FillRule int Identyfikator uprawnionego, patrz przypis poniżej
Description nvarchar(MAX) Opis zestawu uprawnień, kolumna nieużywana w przypadku uprawnień formularzy
StatusId int Identyfikator statusu, dla którego zdefiniowano zestaw uprawnień
OUInstanceId int Identyfikator jednostki organizacyjnej, w której obowiązuje zestaw uprawnień
StakeholderId int Identyfikator kategorii interesariuszy ([core].[Stakeholders]), dla której zdefiniowano zestaw uprawnień
RowGuid uniqueidentifier Unikatowy identyfikator zestawu uprawnień

Kolumna [FillRule] może zawierać następujące wartości:

  • 0: (na razie nieobsługiwane)
  • 1: twórca dokumentu
  • 2: właściciel dokumentu (na razie nieobsługiwane)
  • 3: przełożony twórcy (na razie nieobsługiwane)
  • 4: przełożony właściciela (na razie nieobsługiwane)
  • 5: interesariusze
  • 6: użytkownicy z wskazaną rolą
  • 7: użytkownicy z wskazaną rolą z wskazanej jednostki organizacyjnej
  • 8: użytkownicy z wskazaną rolą z wskazanej jednostki organizacyjnej i jej jednostkę podrzędnych
[core].[ACLFormTemplateEntryRoles]
Informacje o rolach powiązanych z poszczególnymi zestawami uprawnień formularzy
Nazwa kolumny Typ danych Zezwól NULL Opis
Id int Kolumna klucza głównego, identyfikator rekordu w tabeli
ACLFormTemplateEntryId int Identyfikator zestawu uprawnień (kolumna [Id] z tabeli [core].[ACLFormTemplateEntries])
RoleId int Identyfikator roli, dla której obowiązuje schemat uprawnień
[core].[ACLFormTemplateEntrySections]
Szczegółowe uprawnienia dla sekcji formularza
Nazwa kolumny Typ danych Zezwól NULL Opis
Id int Kolumna klucza głównego, identyfikator rekordu w tabeli
ACLFormTemplateEntryId int Identyfikator zestawu uprawnień (kolumna [Id] z tabeli [core].[ACLFormTemplateEntries])
SectionId int Identyfikator sekcji formularza, której dotyczą uprawnienia
RUM nvarchar(MAX) Symbol przyznanych uprawnień (R - read/odczyt, U - update/modyfikacja, M - mandatory/wymagalność)
[core].[ACLFormTemplateEntryFields]
Szczegółowe uprawnienia dla pól formularza
Nazwa kolumny Typ danych Zezwól NULL Opis
Id int Kolumna klucza głównego, identyfikator rekordu w tabeli
ACLFormTemplateEntryId int Identyfikator zestawu uprawnień (kolumna [Id] z tabeli [core].[ACLFormTemplateEntries])
FieldId int Identyfikator pola( kontrolki) na formularzu, którego dotyczą uprawnienia
RUM nvarchar(MAX) Symbol przyznanych uprawnień (R - read/odczyt, U - update/modyfikacja, M - mandatory/wymagalność)
[core].[ACLFormInstanceEntries]
Szczegółowe wpisy uprawnień dla poszczególnych dokumentów; na schemat uprawnień dla jednego dokumentu składa się zestaw rekordów po jednym dla każdego pola i sekcji formularza
Nazwa kolumny Typ danych Zezwól NULL Opis
Id int Kolumna klucza głównego, identyfikator rekordu w tabeli
ACLId int Identyfikator dokumentu biznesowego (kolumna o tej samej nazwie z odpowiedniej tabeli dokumentu biznesowego)
CanRead bit Uprawnienie do odczytu
CanUpdate bit Uprawnienie do aktualizacji
IsMandatory bit Ustawienie wymagalności
UserProfileId uniqueidentifier Identyfikator użytkownika — w przypadku schematu uprawnień dla twórcy dokumentu
StatusId int Identyfikator statusu, dla którego obowiązuje zestaw uprawnień
FormSectionId int Identyfikator sekcji formularza, której dotyczą uprawnienia
FormFieldId int Identyfikator pola na formularzu, którego dotyczą uprawnienia
OUInstanceId int Identyfikator jednostki organizacyjnej, w której obowiązuje zestaw uprawnień
OUSubinstances bit Flaga wskazująca, czy uprawnienia mają obowiązywać w jednostkach podrzędnych danej jednostki organizacyjnej; wartość domyślna 0
StakeholderId int Identyfikator kategorii interesariuszy ([core].[Stakeholders]), dla której obowiązuje zestaw uprawnień
[core].[ACLFormInstanceEntryRoles]
Informacje o rolach powiązanych z indywidualnym wpisem uprawnień dla konkretnego dokumentu
Nazwa kolumny Typ danych Zezwól NULL Opis
Id int Kolumna klucza głównego, identyfikator rekordu w tabeli
ACLFormInstanceEntryId int Identyfikator zestawu uprawnień (kolumna [Id] z tabeli [core].[ACLFormTemplateEntries])
RoleId int Identyfikator roli, dla której obowiązuje dany wpis uprawnień

Do zapamiętania

  • Uprawnienia na poziomie formularza można definiować tylko po włączeniu obsługi uprawnień w definicji dokumentu biznesowego oraz na poziomie listy.
  • Schematy uprawnień formularza są przypisywane do definicji dokumentu biznesowego; jeśli z daną definicją będzie używanych kilka formularzy, będą one korzystać z tego samego schematu uprawnień.
  • Uprawnienia formularza nie ograniczają dostępu do danych w bazie danych za pomocą instrukcji SQL, np. w akcjach.
  • W przeciwieństwie do szablonów uprawnień, zmiany uprawnień formularza działają dla już istniejących dokumentów (dla których działają szablony uprawnień).
  • Uprawnienia formularza można definiować dla nowo tworzonego dokumentu (bez statusu), co pozwala kontrolować możliwość tworzenia nowych dokumentów.

Patrz także

  • Leksykon nAxiom: 5.8 Uprawnienia do dokumentów (CRUD/A)
  • Leksykon nAxiom: 4.4.6.7 Lista wyboru (interesariusz)
  • Leksykon nAxiom: 4.5.13 Akcje interesariuszy

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