Entrée de Registre Security | Update
Mettre à jour le contenu d'un ou plusieurs champs dans l'enregistrement en cours lorsque l'enregistrement est sauvegardé si une condition est remplie (une valeur donnée est dans un champ de l'enregistrement en cours). Notamment (mais pas exclusivement) utilisée pour modifier les champs de Sécurité au niveau de l'enregistrement.
L'entrée de Registre Security Update permet de modifier le contenu d'un ou plusieurs champs à chaque fois qu'un enregistrement est sauvegardé (inséré ou modifié), en fonction de la valeur dans un champ de l'enregistrement en cours. Même si tous les champs peuvent être mis à jour de cette façon, les champs RLS (Record Level Security, Sécurité au Niveau de l’Enregistrement) :
SecCanDisplay
SecCanEdit
SecCanDelete
sont particulièrement utiles car leur mise à jour permet de modifier la sécurité de l'enregistrement si une condition de l'enregistrement actuel change.
Le serveur de la base de données applique les paramètres Security|Update chaque fois qu'un enregistrement est enregistré (pour toutes les insertions et mises à jour). Les entrées sont appliquées après que les opérations d'affectation soient exécutées et avant que la validation soit lancée. Cela signifie que les opérations d'affectation peuvent être utilisées pour construire une valeur composite qui peut être testée par les paramètres Security|Update. Par exemple, il est possible de concaténer deux champs en un seul qui peut alors être vérifié.
Il est également possible d'appliquer une formule avancée pour calculer un champ à vérifier. Par exemple, vous pouvez définir des entrées de registre Security|Update en fonction d'une plage d'évaluations pour un objet. Vous pouvez utiliser une opération d'affectation pour définir une valeur dans un champ en fonction des plages :
Gamme |
Valeur |
---|---|
$0 - $1000 | Pas cher |
$1001 - $10000 | Moyen |
$10001 - | Cher |
Vous pouvez alors utiliser les trois valeurs Pas cher, Moyen et Cher dans les entrées de Registre Security|Update.
Notez que vous ne pouvez pas utiliser le code de validation pour calculer des valeurs puisque les entrées Security|Update sont appliquées avant que le code de validation soit exécuté.
Utilisation
Cette entrée de Registre est attribuée aux utilisateurs et aux groupes :
Clé | Utilisateur | Utilisateur | Groupe | Groupe | Groupe | Groupe |
---|---|---|---|---|---|---|
Clé 1 | User
|
User
|
Group
|
Group
|
Group
|
Group
|
Clé 2 | utilisateur | utilisateur | groupe | groupe | Default
|
Default
|
Clé 3 | Table
|
Table
|
Table
|
Table
|
Table
|
Table
|
Clé 4 | table | Default
|
table | Default
|
table | Default
|
Clé 5 | Security
|
|||||
Clé 6 | Update
|
|||||
Clé 7 | colonne | |||||
Clé 8 | valeur | |||||
Valeur | paramètres |
User
|
utilisateur | Table
|
table | Security
|
Update
|
colonne | valeur | paramètres |
User
|
utilisateur | Table
|
Default
|
Security
|
Update
|
colonne | valeur | paramètres |
Group
|
groupe | Table
|
table | Security
|
Update
|
colonne | valeur | paramètres |
Group
|
groupe | Table
|
Default
|
Security
|
Update
|
colonne | valeur | paramètres |
Group
|
Default
|
Table
|
table | Security
|
Update
|
colonne | valeur | paramètres |
Group
|
Default
|
Table
|
Default
|
Security
|
Update
|
colonne | valeur | paramètres |
où :
colonne |
définit le champ qui doit être consulté pour trouver une valeur correspondante. Si colonne est un champ de fichiers joints
Lors du référencement d'un champ de fichiers joints dans une entrée de Registre Security|Update, il est nécessaire d'utiliser le nom Lien d’un champ et le NEI d'un enregistrement. Par exemple :
Lorsqu'un champ de fichiers joints est référencé comme la Valeur, il est dans le format nom du Lien=IRN :
|
||||||||||||||||||||||||||||||||||||||||||||||||||
valeur |
est un modèle de recherche basé sur EMu. S’il y a une correspondance entre les données dans colonne avec la requête valeur, alors l'entrée de Registre est utilisée et les paramètres sont appliqués. Note: Si colonne contient un tableau de valeurs, chaque entrée est comparée à valeur. Puisque valeur est un mode de recherche, une attention particulière est requise si vous voulez une correspondance avec le contenu complet d'un champ. Par exemple, pour correspondre à Enregistrement mais pas à Enregistrement en attente, le modèle ^Registration$ doit être utilisé. Il est important de se rappeler que valeur fonctionne de la même manière qu'un terme de recherche EMu. Toutes les comparaisons de valeur sont insensibles à la casse. |
||||||||||||||||||||||||||||||||||||||||||||||||||
paramètres |
est une liste d’affectations à des colonnes, séparées par des points-virgules, qui est appliquée s’il y a une correspondance entre les données dans colonne avec la requête valeur. Le format des paramètres est : colonne=[+/-]terme:[+/-]terme:...;colonne=[+/-]terme:... où : |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
Si vous spécifiez une entrée de Registre Security|Update pour limiter l'affichage d'un enregistrement au groupe Admin si Statut de l'enregistrement est changé à Retiré par exemple, il est nécessaire de spécifier un entrée de Registre Security|Update pour tenir compte du changement du Statut de l'enregistrement de Retiré à une autre condition (Actif ou vide par exemple). Si aucune entrée de Registre Security|Update n'est spécifiée pour tenir compte du changement, changer le Statut de l'enregistrement de Retiré à une autre condition ne mettra pas à jour la sécurité de l'enregistrement.
Pourquoi ?
Nous avons seulement dit à EMu quoi faire si Statut de l'enregistrement = Retiré; nous n'avons pas dit à EMu quoi faire si Statut de l'enregistrement n'est plus = Retiré.
Qu'est-ce que cela signifie ?
Si nous spécifions seulement une entrée de Registre Security|Update pour limiter l'affichage d'un enregistrement au groupe Admin quand Statut de l'enregistrement = Retiré, changer Statut de l'enregistrement à tout autre statut que Retiré ne rendra pas l'enregistrement disponible aux autres utilisateurs.
Si nous voulons que la Sécurité au niveau de l'enregistrement soit ajustée afin que les utilisateurs dans le groupe Admin soient les seuls autorisés à modifier et supprimer des enregistrements qui ont un Statut de l’enregistrement de Retiré, l'entrée suivante peut être utilisée :
Clé | Paramètre |
---|---|
Clé 1 | Group
|
Clé 2 | Default
|
Clé 3 | Table
|
Clé 4 | Default
|
Clé 5 | Security
|
Clé 6 | Update
|
Clé 7 | SecRecordStatus
|
Clé 8 | ^Retired$
|
Valeur | SecCanEdit=Group Admin;SecCanDelete=Group Admin
|
Les clés 7 et 8 indiquent que l'entrée ne s'applique que lorsque le champ SecRecordStatus correspond au mode ^Retiré$ (c’est à dire que le champ contient uniquement Retiré). Si ce n'est pas le cas, l'entrée de Registre est ignorée. Si l’enregistrement correspond aux critères, le champ SecCanEdit est réglé sur groupe Admin. Comme il n’y a pas de plus ni de moins de fourni, le contenu de SecCanEdit est remplacé par groupe Admin. Une mise à jour similaire se produit pour SecCanDelete.
Un exemple plus complexe consiste à enlever l'accès d'édition pour tous les utilisateurs Conservation et Storage quand un objet est retiré de l'inventaire (deaccessioned). Supposons que le champ RecObejctStatus contienne le mot Deaccessioned pour les objets qui ne font plus partie de notre collection. Une entrée de Registre appropriée est :
Clé | Paramètre |
---|---|
Clé 1 | Group
|
Clé 2 | Default
|
Clé 3 | Table
|
Clé 4 | ecatalogue
|
Clé 5 | Security
|
Clé 6 | Update
|
Clé 7 | RecObjectStatus
|
Clé 8 | ^Deaccessioned$
|
Valeur | SecCanEdit=-Group Conservation:-Group Storage |
Notez que les termes à établir sont précédés d’un signe moins, indiquant que le terme (dans ce cas le nom du groupe) doit être enlevé du champ SecCanEdit.
Un troisième exemple nécessite que pour tous les enregistrements avec une estimation de l’objet de High (élevé) le groupe Student (Étudiant) soit enlevé et le groupe Valuers (Experts) soit ajouté pour l'affichage et l’édition de l’enregistrement. Le champ contenant l’estimation de l'objet est ValValuationCode. Une entrée de Registre appropriée est :
Clé | Paramètre |
---|---|
Clé 1 | Group
|
Clé 2 | Default
|
Clé 3 | Table
|
Clé 4 | ecatalogue
|
Clé 5 | Security
|
Clé 6 | Update
|
Clé 7 | ValValuationCode
|
Clé 8 | ^High$
|
Valeur | SecCanDisplay=-Group Student:+Group Valuers;SecCanEdit=-Group Student:+Group Valuers |
Remarquez comment plus d'un champ peut être mis à jour avec une seule entrée de Registre. Notez également :
- Si un terme est précédé d’un symbole plus et le terme apparaît déjà dans le champ, il n'est pas rajouté.
- De même, si un terme est précédé d’un moins et qu’il n'apparaît pas dans le champ, il est ignoré.
Dans ce dernier exemple, nous restreignons le privilège d'affichage pour les enregistrements qui n'ont pas été approuvés pour l'affichage sur l'intranet aux groupes Admin, Curator, Storage et Conservation. Une fois que l’enregistrement a été approuvé pour l'affichage sur l'intranet, nous allons autoriser tous les utilisateurs à consulter l’enregistrement. Dans ce cas, deux entrées de Registre sont nécessaires :
- La première limite l'accès pour les enregistrements qui ne sont pas disponibles sur l'intranet.
- La deuxième donne accès à tous les utilisateurs pour les enregistrements disponibles sur l'intranet.
Les entrées de Registre correspondantes sont :
Clé | Paramètre |
---|---|
Clé 1 | Group
|
Clé 2 | Default
|
Clé 3 | Table
|
Clé 4 | ecatalogue
|
Clé 5 | Security
|
Clé 6 | Update
|
Clé 7 | AdmPublishWebPasswordFlag
|
Clé 8 | N
|
Valeur | SecCanDisplay=Group Admin:+Group Curator:+Group Storage:+Group Conservation |
Clé | Paramètre |
Clé 1 | Group
|
Clé 2 | Default
|
Clé 3 | Table
|
Clé 4 | ecatalogue
|
Clé 5 | Security
|
Clé 6 | Update
|
Clé 7 | AdmPublishWebPasswordFlag
|
Clé 8 | Y
|
Valeur | SecCanDisplay=Group Default |
Notez que le premier terme de la première entrée de Registre (Group Admin) n’est pas précédé d’un plus ou d’un moins, ce qui signifie qu'il remplace le contenu actuel de SecCanDisplay. Les termes suivants doivent être précédés d’un symbole plus sinon ils effaceront également le contenu actuel plutôt que d'ajouter au premier terme. La deuxième entrée du Registre remplace le contenu de SecCanDisplay avec group Default (ce qui donne accès à tout le monde).
En utilisant une combinaison d'entrées de Registre, il est possible de produire des modifications de privilèges sophistiquées et dynamiques.