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:

  1. 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 !

  2. 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

  3. 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