Rechten zetten op listitems
Vanaf Release https://mydgict.atlassian.net/wiki/spaces/PD/pages/1762557953 is het mogelijk om rechten te zetten op individuele listitems.
De rechten worden gezet met het standaard rechten - rollen systeem. Echter kan op dit moment (24032021) een consultant dit nog niet via de frontend uitvoeren. Nu alleen mogelijk via de database
Databasetabellen die handig zijn:
SYS_LISTITEMS - Deze tabel bevat de items voor elke listname.
SYS_APIV4_ROLES - Tabel met de rollen
SYS_APIV4_PERMISSIONS - Tabel met de permissies
Hierbij kan gekozen worden om:
items uit te sluiten - standaard krijg je alles te zien en worden de items uitgesloten waar permissies voor zijn gezet (actions_denied = 1)
items toe te staan - standaard krijg je niks te zien en worden alleen de items getoond waar permissies voor zijn gezet (actions_allowed = 1)
Voorkeur is te kiezen voor 1 van beide opties. Een gecombineerde variant is mogelijk maar vergt extra uitleg
Voorbeeld 1 :
Meldingen, veld Status bevat drie standaard statussen : Nieuw, Open en Gesloten
Een groep van gebruikers mag de status van een melding niet op Gesloten zetten
Acties:
Algemeen: Elke omgeving heeft zijn eigen database. Dit kan een probleem geven met het uitvoeren van de SQL statements maar vooral de te gebruiken ID’s. Voer alles dus uit op dezelfde database !
Zorg dat de rol in HUMBLE aanwezig is binnen de organisatie bij Rollen : https://app.humble-online.com/#/acl-roles/list/all en onthoudt het ID van de aangemaakt rol. Deze kan je ook vinden door het uitvoeren van het SQL statement: select * from sys_apiv4_roles
Nu moet je het ID achterhalen van de status Gesloten bij een melding. Dit is te vinden in de tabel SYS_LISTITEMS. In dit geval met de listname ‘ticket_status’. De lijst met keuzes is te vinden met SQL Statement : SELECT * FROM sys_listitems where listname = 'ticket_status'
4. Het ID van het resource type is benodigd om een permissie te zetten. De ID is ook te vinden in de tabel SYS_LISTITEMS maar dan met listname ‘acl_resource_type’. Voor het statement uit : SELECT * FROM sys_listitems where listname = 'acl_resource_type' and value = 10
Nu kan je permissies gaan zetten voor de Rol in de tabel SYS_APIV4_PERMISSIONS
role_id: het ID van de rol waarvoor de permissie geldt (stap 2)
resource_id: het ID van de listitem die je niet wil tonen in de status lijst bij de melding
actions_allowed: op 0 zetten
actions_denied: op 1 zetten
resource_type_id: het ID van de resource_type die je gevonden hebt bij stap 4
resource:
Dit vergt uitleg. In HUMBLE maken we gebruik van zgn. models
Deze models wijzen naar een database tabel
Elk model bestaat uit een beschrijving met de kolommen van deze tabel met daarbij behorende business logic funties
in de kolom resource moet een verwijzing komen naar het model en de kolom die wordt gebruikt. Gescheiden door een /
In dit geval : requestticket_model/status_id
Vraag Ontwikkeling voor de models / velden op andere schermen
Voeg de permissie regel toe in de database met bovenstaande waardes in de tabel SYS_APIV4_PERMISSIONS
INSERT INTO sys_apiv4_permissions
(role_id
,resource_id
,resource
,actions_allowed
,actions_denied
,organisation_id
,resource_type_id
)
VALUES
( 4, 137 , 'requestticket_model/status_id', 0, 1, 3, 494);
Voorbeeld 2 :
Meldingen, veld Status bevat drie standaard statussen : Nieuw, Open en Gesloten
Een groep van gebruikers mag alleen de status Nieuw zetten
Volg alle stappen zoals aangegeven in voorbeeld 1
Echter bij het toevoegen van de permissie
actions_allowed op 1 zetten
actions_denied op 0 zetten