Concedere dinamicamente le autorizzazioni agli utenti

Tradotto automaticamente da Deepl

Dopo la possibilità di utilizzare il proprio sistema di gestione degli utenti finali e il comando SET USER ALIAS vi starete chiedendo come gestire le autorizzazioni degli utenti finali senza creare più account utente 4D. Continuate a leggere perché questa release ha la risposta!

Gli sviluppatori 4D hanno spesso bisogno di gestire gli utenti finali con il proprio sistema di directory(ad esempio, da uno sviluppo interno a uno esterno con LDAP o SSO). Una soluzione era quella di creare tutti gli account utente 4D possibili, per poi passare da uno all’altro.

4D v18 R4 rende le cose più intuitive consentendo di impostare i diritti degli utenti con i gruppi … dinamicamente.

Il modo più semplice per farlo è creare un account utente predefinito senza appartenere a nessun gruppo:

Poi si può creare un gruppo per ogni diritto che si desidera gestire.

blank

In fase di esecuzione, è ancora possibile utilizzare il comando SET USER ALIAS per impostare il nome dell’utente in modo che appaia ovunque nel database.

Ora, con il nuovo comando SET GROUP ACCESS, è possibile impostare dinamicamente anche l’appartenenza a un gruppo.

Si noti che questi due comandi non sono disponibili sul lato server.

Ecco un esempio di codice eseguito su un client remoto dopo l’autenticazione personalizzata dell’utente:

// Set my own user field as alias
SET USER ALIAS([MyUserTable]Name)

// Set user groups following rights
C_COLLECTION ($userGroups)
$userGroups :=New collection
If([MyUserTable]4DWriteProAccess)
$userGroups .push("4D Write Pro")
End if
If ([MyUserTable]4DViewProAccess)
$userGroups .push("4D View Pro")
End if
SET GROUP ACCESS ($userGroups)

Se si desidera, è possibile impostare l’accesso del gruppo di utenti corrente su nessuno:

SET GROUP ACCESS(New collection)

È possibile ripristinare l’accesso al gruppo di utenti corrente in base a come è memorizzato nel file della directory:

SET GROUP ACCESS

Il nuovo comando Get group access consente di recuperare l’appartenenza al gruppo corrente:

SET GROUP ACCESS(New collection("4D View Pro"; "4D Write Pro"))

$collection :=Get group access
// $collection contiene ["4D View Pro", "4D Write Pro"]

Tutti gli accessi dati ai gruppi non influiscono sulla directory utente/gruppo.

Ora tocca a voi provare. Gestite gli utenti e i gruppi in modo dinamico… come volete voi!

Avatar
- Product Owner -Damien Fuzeau è entrato a far parte del team 4D Product nel febbraio 2019. In qualità di Product Owner, si occupa di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo lavoro consiste anche nell'assicurarsi che le implementazioni delle funzionalità fornite soddisfino le esigenze dei clienti.Damien si è laureato all'Università di Nantes in ingegneria del software. Ha trascorso più di 23 anni nella sua precedente azienda, prima come sviluppatore (scoprendo 4D nel 1997), poi come responsabile dell'ingegneria e architetto software. Questa azienda è un partner OEM di 4D e ha distribuito software aziendali basati su 4D per migliaia di utenti, su centinaia di server. Damien è quindi abituato allo sviluppo e alla distribuzione di 4D in un contesto multilingue.