asgard_has_role_usage

z_asgard.asgard_has_role_usage(role_parent text [, role_enfant text DEFAULT current_user ])

La fonction asgard_has_role_usage détermine si un rôle est membre d'un autre (y compris indirectement) et hérite de ses droits. Elle est équivalente à pg_has_role(role_enfant, role_parent, 'USAGE') en plus permissif : elle renvoie False quand l'un des rôles n'existe pas plutôt que d'échouer.

Schéma

z_asgard

Arguments

  1. role_parent est le nom du rôle dont on souhaite savoir si l'autre est membre.

  2. [optionnel] role_enfant est le nom du rôle dont on souhaite savoir s'il est membre de l'autre. Si non renseigné, la fonction testera l'utilisateur courant.

Tous les arguments sont en écriture naturelle, sans les guillemets des identifiants PostgreSQL.

Résultat

True si la relation entre les rôles est vérifiée. False si elle ne l'est pas ou si l'un des rôles n'existe pas.

Exemple

Pour savoir si le rôle jon.snow est membre de g_admin :

1
2
SELECT z_asgard.asgard_has_role_usage('g_admin', 'jon.snow') ;

Pour savoir si l'utilisateur courant est membre de g_admin :

1
2
SELECT z_asgard.asgard_has_role_usage('g_admin') ;