Uprawnienia do rekordów
Podsumowanie:Akcja uprawnień pozwala nadawać uprawnienia ACL do istniejących dokumentów. W akcji można wskazać dowolnego użytkownika (użytkowników), role biznesowe lub jednostkę organizacyjną, a także wybrać określone dokumenty. Akcja uprawnień pozwala dynamicznie sterować uprawnieniami ACL w aplikacji FrontSPA w środowisku produkcyjnym w odniesieniu do istniejących dokumentów. Uprawnienia do nowych dokumentów są określane na podstawie szablonów zdefiniowanych przez konsultanta w aplikacji AdminSPA.
☛ AdminSPA >
NARZĘDZIA
>Akcje
>Uprawnienia do rekordów

Oprócz właściwości wspólnych dla wszystkich akcji, w akcji uprawnień należy określić następujące właściwości:
SQL
: zdefiniowane w akcji zapytanie SQL musi zwrócić jeden lub więcej rekordów w następujących kolumnach; w zapytaniu obsługiwana jest także operacja UNION:
- PermissionTypes (varchar): rodzaj nadawanego uprawnienia (RUDA: R=odczyt, U=modyfikacja, D=usuwanie, A=administracja).
- SelectedUserGUID (uniqueidentifier): identyfikator użytkownika, któremu zostanie przypisane uprawnienie (dozwolony NULL).
- BusinessRolesId (varchar): identyfikator roli, której zostaną przypisane uprawnienia (użyj składni smart numbers, dozwolony NULL).
- SelectedOrgUnits (varchar): identyfikator jednostki organizacyjnej, z której mogą pochodzić użytkownicy o wskazanych rolach (np. ‘1’, ‘123’ itp., dozwolony NULL); jeśli zapytanie zwraca dane w tej kolumnie, musi także zwrócić rolę w kolumnie BusinessRolesId. W takim przypadku uprawnienia zostaną nadane użytkownikom, którym przypisano określoną rolę w określonej jednostce organizacyjnej.
- AllowChildOrgUnits (bit): flaga dostępu użytkowników z podrzędnych jednostek organizacyjnych (przyjmuje wartości 0=NIE lub 1=TAK, dozwolony NULL).
- Stakeholders (varchar): Parametr nieobsługiwany (wersja 1.14.0.15).
Opcjonalnie zapytanie może zwrócić kolumny:
- BusinessDocumentSchema (int): identyfikator definicji dokumentu (np 15, dozwolony NULL); w przypadku braku kolumny w zapytaniu lub wartości NULL uprawnienia dotyczą definicji dokumentu, do której należy bieżący dokument.
- InstanceId (int): identyfikator dokumentu (dozwolony NULL); w przypadku braku kolumny w zapytaniu lub wartości NULL uprawnienia dotyczą bieżącego dokumentu.
Kolumny muszą być zwracane w podanej kolejności; jeśli wartości w kolumnach typu varchar będą zwracane przez SQL, podstawiane za pomocą zmiennych {@PoleFormularza} lub przy użyciu mechanizmu smart numbers, konieczne będzie użycie funkcji SQL CAST do konwersji typu danych.
Jednostki organizacyjne mogą jedynie uzupełniać wybór użytkowników na podstawie ról, tak jak dotychczas w szablonach. Nie można przypisać uprawnień dla samej jednostki (można natomiast skonstruować zapytanie, które przypisze uprawnienia wszystkim użytkownikom należącym do określonej jednostki).
Zestaw wyników zwracanych przez zapytanie SQL może definiować wiele zestawów uprawnień. Zależnie od konfiguracji zapytania SQL może to być zestaw identycznych uprawnień dla wielu użytkowników, ról biznesowych, kategorii interesariuszy, definicji dokumentu biznesowego lub instancji dokumentu biznesowego. Natomiast przy użyciu operatora SQL UNION można jedną akcją utworzyć wiele różnych zestawów uprawnień.
Przykład 1
Akcja nada następujące uprawnienia:
- RUDA: bieżąca instancja dokumentu biznesowego, użytkownik, który utworzył tę instancję
SELECT
'RUDA' as PermissionTypes,
{@CreatedBy} as SelectedUserGUID,
NULL as BusinessRolesId,
NULL as SelectedOrgUnits,
0 as AllowChildOrgUnits,
NULL as Stakeholder,
{@BizDok} as BusinessDocumentSchema,
{@Id} as InstanceId
Przykład 2
Akcja nada bieżącemu uzytkownikowi uprawnienia RUDA do wszystkich instancji dokumentu biznesowego z tabeli dbo.RejestReklamacji
SELECT
'RUDA' as PermissionTypes,
{@UserId} as SelectedUserGUID,
NULL as BusinessRolesId,
NULL as SelectedOrgUnits,
0 as AllowChildOrgUnits,
NULL as Stakeholder,
{@BusinessDocId} as BusinessDocumentSchema,
Id as InstanceId
FROM dbo.RejestrReklamacji
Przykład 3
Akcja nada uprawnienie R do wszystkich instancji dokumentu z tabeli dbo.RejestrReklamacji wszystkim użytkownikom z tabeli core.UserProfiles.
SELECT
'R' as PermissionTypes,
up.Id as SelectedUserGUID,
NULL as BusinessRolesId,
NULL as SelectedOrgUnits,
0 as AllowChildOrgUnits,
NULL as Stakeholder,
{@BusinessDocId} as BusinessDocumentSchema,
rr.Id as InstanceId
FROM dbo.RejestrReklamacji rr
CROSS JOIN core.UserProfiles up
Przykład 4
Akcja nada uprawnienie RU do bieżącej instancji dokumentu dla każdego użytkownika należącego do jednostki organizacyjnej o podanym identyfikatorze.
SELECT
'RU' as PermissionTypes,
[UserProfileId] as SelectedUserGUID,
NULL as BusinessRolesId,
NULL as SelectedOrgUnits,
0 as AllowChildOrgUnits,
NULL as Stakeholder
FROM core.[OUInstanceUsers]
WHERE OUInstanceId = {@OrgUnitId}
Przykład 5
Akcja nada uprawnienie RUD do bieżącej instancji dokumentu każdemu użytkownikowi z rolą Kierownik w jednostce organizacyjnej o podanym identyfikatorze.
SELECT
'RUD' as PermissionTypes,
NULL as SelectedUserGUID,
{&WyjsciaPrywatne1.BusinessRoles.WyjsciaPrywatneModule.wyj_kier}
as BusinessRolesId,
{@OrgUnitId} as SelectedOrgUnits,
0 as AllowChildOrgUnits,
NULL as Stakeholder
Powiązane tematy: