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_usage
détermine si un rôle est membre d'un autre. C'est un équivalent plus permissif de la fonction PostgreSQLpg_has_role
, qui renvoieFalse
plutôt qu'une erreur lorsque l'un des rôles considérés n'existe pas ;asgard_is_relation_owner
teste si un rôle est membre du propriétaire d'une table, vue ou autre relation ;asgard_is_producteur
,asgard_is_editeur
etasgard_is_lecteur
testent 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_polu
devientc_air_clim_qual_pollu
et, pour le même schéma, la valeur du champniv2_abr
est désormais « qualite_pollution » au lieu de « qualité_pollution » ;pour tous les schémas dont le
niv1
est « Données génériques »,niv1_abr
vaut 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.