Version 1.3
Gestion des droits sur la table layer_styles⚓
La version 1.3 implémente un mécanisme pour la gestion des droits sur la table layer_styles du schéma public, dans laquelle QGIS stocke les styles applicables aux tables de la base.
Rien n'est mis en place automatiquement lors de la montée de version, il appartiendra à l'administrateur de choisir parmi les différentes stratégies proposées celles qui convient le mieux à son organisation, et de l'appliquer via la fonction asgard_layer_styles.
Plus de précisions dans la partie Quid du schéma public ? et dans la description de la fonction asgard_layer_styles.
Référence SPS : ticket #105026.
Diverses petites fonctions utilitaires⚓
Le développement d'un système de gestion des droits sur layer_styles a nécessité la création d'un ensemble de petites fonctions utilitaires, qui pourraient également servir aux administrateurs :
asgard_has_role_usagedétermine si un rôle est membre d'un autre. C'est un équivalent plus permissif de la fonction PostgreSQLpg_has_role, qui renvoieFalseplutôt qu'une erreur lorsque l'un des rôles considérés n'existe pas ;asgard_is_relation_ownerteste si un rôle est membre du propriétaire d'une table, vue ou autre relation ;asgard_is_producteur,asgard_is_editeuretasgard_is_lecteurtestent respectivement si un rôle est membre du groupe producteur[1], éditeur[2] ou lecteur[3] d'un schéma donné.
Vue de consultation des droits⚓
La version 1.3 ajoute aux objets d'ASGARD la vue z_asgard.gestion_schema_read_only (mentionnée ici), également indispensable à la mise en oeuvre de la gestion des droits sur layer_styles.
Cette vue montre les mêmes informations que la vue utilisateur gestion_schema_usr, mais s'en distingue par le fait qu'elle présente tous les schémas référencés et non exclusivement ceux sur lesquels l'utilisateur est habilité à intervenir. Elle est en lecture seule et accessible à tout utilisateur membre de g_consult[4]. Ce dernier point a justifié de petites adaptations dans les fonctions asgard_diagnostic et asgard_initialise_schema, pour que la première détecte comme anomalie la disparition de ce privilège et que la seconde le rétablisse.
Nomenclature nationale des schémas⚓
Les correctifs suivants ont été apportés à la nomenclature nationale des schémas :
le nom du schéma
c_air_clim_qual_poludevientc_air_clim_qual_polluet, pour le même schéma, la valeur du champniv2_abrest désormais « qualite_pollution » au lieu de « qualité_pollution » ;pour tous les schémas dont le
niv1est « Données génériques »,niv1_abrvaut désormais « donnee_generique » au lieu de « donnees_generique ».
Ces modifications sont prises en compte par la fonction d'import de la nomenclature, asgard_import_nomenclature.
Le script de montée de version effectue les commandes suivantes pour les répercuter dans la table de gestion :
UPDATE z_asgard.gestion_schema_usr
SET nom_schema = 'c_air_clim_qual_pollu',
niv2_abr = 'qualite_pollution'
WHERE nom_schema = 'c_air_clim_qual_polu' ;
UPDATE z_asgard.gestion_schema_usr
SET niv1_abr = 'donnee_generique'
WHERE niv1_abr = 'donnees_generique' ;
Référence SPS : ticket #129251.
Attention :
Si le schéma c_air_clim_qual_polu existait dans la base de données, cela aura pour effet de le renommer. Il importe de noter que cela pourrait affecter les projets QGIS dont des couches pointeraient sur les tables et vues de ce schéma.