6.1.13. Utilisateurs

Cette partie de l'API de Bugzilla permet de créer des comptes utilisateurs, d'obtenir des informations sur ces comptes et de vous connecter ou déconnecter en utilisant un compte existant.

6.1.13.1. Connexion

Se connecter avec un identifiant utilisateur et un mot de passe est nécessaire pour beaucoup d'installations Bugzilla, pour rechercher des bogues confidentiels, créer de nouveaux bogues, etc. Cette méthode permet de récupérer un jeton qui peut être utilisé pour l'authentification pour les appels d'API suivants. Sinon, vous devrez passer votre login et password pour chaque appel.

Cette méthode sera retirée ultérieurement en faveur de l'utilisation de clés d'API.

Requête

GET /rest/login?login=foo@example.com&password=toosecrettoshow
nom type description
login string L'identifiant de connexion de l'utilisateur.
password string Le mot de passe de l'utilisateur.
restrict_login boolean Si défini à true, le jeton renvoyé par cette méthode sera seulement valide à partir de l'adresse IP qui a appelé cette méthode.

Réponse

{
  "token": "786-OLaWfBisMY",
  "id": 786
}
nom type description
id int Identifiant numérique de l'utilisateur qui s'est connecté.
token string Jeton qui peut être passé dans les paramètres pour authentification dans d'autres appels. Le jeton peut être envoyé avec toute future requête au Webservice, pour la durée de la session, c'est-à-dire, jusqu'à ce que Déconnexion soit appelé.

6.1.13.2. Déconnexion

Déconnecte l'utilisateur. Basiquement, cela invalide le jeton fourni de sorte qu'il ne puisse plus être réutilisé. Ne fait rien si le jeton n'est pas en cours d'utilisation. Cela supprimera également tout jeton d'authentification que le client pourrait avoir stocké.

Requête

GET /rest/logout?token=1234-VWvO51X69r
nom type description
token string Le jeton de l'utilisateur utilisé pour l'authentification.

6.1.13.3. Connexion valide

Cette méthode vérifie si les cookies d'un client ou le jeton en cours est encore valide ou a expiré. Un nom d'utilisateur valide correspondant doit être fourni également.

Requête

GET /rest/valid_login?login=foo@example.com&token=1234-VWvO51X69r
nom type description
login string L'identifiant de connexion qui correspond aux cookies ou au jeton fourni.
token string Jeton de connexion persistent actuellement utilisé pour l'authentification.

Réponse

Renvoie true/false si le jeton est valide pour l'identifiant de connexion fourni.

6.1.13.4. Création d'utilisateur

Crée un compte utilisateur directement dans Bugzilla, avec mot de passe, etc. Plutôt que ceci, il est préférable d'utiliser Offre de compte par courriel quand c'est possible, car cela permet de s'assurer que les adresses électroniques spécifiées peuvent effectivement recevoir un courriel. Cette fonction n'effectue pas cette vérification. Vous devez être authentifié et dans le groupe editusers pour réaliser cette action.

Requête

POST /rest/user
{
  "email" : "user@bugzilla.org",
  "full_name" : "Test User",
  "password" : "K16ldRr922I1"
}
nom type description
email string L'adresse électronique du nouvel utilisateur.
full_name string Le nom complet de l'utilisateur. Sera mis à blanc si non spécifié.
password string Le mot de passe pour le nouveau compte utilisateur, en texte brut. Les espaces en début et en fin du mot de passe seront retirés. Si vide ou non spécifié, le nouveau compte existera dans Bugzilla mais ne sera pas autorisé à se connecter en utilisant l'authentification par la base de données jusqu'à ce qu'un mot de passe soit défini par l'utilisateur (en réinitialisant le mot de passe) ou par l'administrateur.

Réponse

{
  "id": 58707
}
nom type desciption
id int L'identifiant numérique de l'utilisateur qui a été créé.

6.1.13.5. Mise à jour d'un utilisateur

Met à jour un compte utilisateur existant dans Bugzilla. Vous devez être authentifié et dans le groupe editusers pour réaliser cette action.

Requête

PUT /rest/user/(id_or_name)

Vous pouvez modifier un unique utilisateur en passant le numéro d'identifiant ou le nom de connexion de l'utilisateur dans l'URL. Pour modifier plus d'un utilisateur, vous devez indiquer les numéros d'identifiants supplémentaires ou les noms de connexion en utilisant respectivement les paramètres ids ou names.

nom type description
id_or_name mixed Le numéro d'identifiant ou le nom de connexion de l'utilisateur à modifier.
ids array Les numéros d'identifiants supplémentaires des utilisateurs à modifier.
names array Les noms de connexion supplémentaires des utilisateurs à modifier.
full_name string Le nouveau nom de l'utilisateur.
email string L'adresse électronique de l'utilisateur. Cette adresse est utilisée pour se connecter à Bugzilla. Veuillez noter que vous ne pouvez modifier qu'un utilisateur à la fois lors d'un changement de nom ou d'adresse électronique. (Une erreur sera renvoyée si vous essayez de mettre à jour ce champ pour plusieurs utilisateurs en même temps).
password string Le mot de passe de l'utilisateur.
email_enabled boolean Une valeur booléenne pour activer/désactiver l'envoi de courriel de bogue à l'utilisateur.
login_denied_text string Un champ texte contenant la raison de l'interdiction de se connecter à Bugzilla d'un utilisateur. Si vide, alors le compte utilisateur est actif ; sinon, il est fermé/désactivé
groups object Les groupes dont cet utilisateur est directement membre. Pour les définir, vous devez passer un objet comme valeur. Les éléments de l'objet sont décrits dans mise à jour d'objets groupes ci-dessous.
bless_groups object Idem que pour groups mais affecte les groupes sur lesquels un utilisateur a les droits d'édition.

Mise à jour d'objet groupes :

nom type description
add array Les identifiants ou les noms de groupes auxquels l'utilisateur doit être ajouté.
remove array Les identifiants ou les noms de groupes desquels l'utilisateur doit être retiré.
set array Entiers ou chaînes qui sont un ensemble exact d'identifiants ou de noms de groupes dont l'utilisateur doit être membre. Ceci ne retire pas de groupes à l'utilisateur si la personne effectuant la modification n'a pas les privilèges appropriés pour le groupe.

Si vous spécifiez set, alors add et remove seront ignorés. Un groupe présent à la fois dans la liste add et remove sera ajouté. Indiquer un groupe pour lequel l'utilisateur effectuant la modification n'a pas les privilèges nécessaires générera une erreur.

Réponse

  • utilisateurs : (tableau) Liste des changements sur des objets utilisateurs contenant les éléments suivants :
nom type description
id int L'identifiant de l'utilisateur mis à jour.
changes object

Les modifications effectuées sur cet utilisateur. Les clés sont les noms des champs modifiés et les valeurs sont des objets contenant deux éléments :

  • added: (string) Les valeurs ajoutées à ce champ, peut être une liste séparée par une virgule suivie d'une espace si plusieurs valeurs ont été ajoutées.
  • removed: (string) Les valeurs retirées de ce champ, peut être une liste séparée par une virgule suivie d'une espace si plusieurs valeurs ont été retirées.

6.1.13.6. Obtention d'un utilisateur

Obtient les informations sur les comptes utilisateurs de Bugzilla.

Requête

Pour obtenir des informations sur un utilisateur de Bugzilla :

GET /rest/user/(id_or_name)

Pour obtenir plusieurs identifiants ou noms d'utilisateurs :

GET /rest/user?names=foo@bar.com&name=test@bugzilla.org
GET /rest/user?ids=123&ids=321

Pour obtenir un utilisateur correspondant à une chaîne de recherche :

GET /rest/user?match=foo

Pour obtenir un utilisateur en utilisant une valeur d'identifiant ou en utilisant match, vous devez être authentifié.

nom type description
id_or_name mixed Un identifiant (entier) d'utilisateur ou le nom de connexion de l'utilisateur.
ids array Identifiants (entiers) d'utilisateurs. Les utilisateurs non connectés ne peuvent pas passer ce paramètre à cette fonction. S'ils le font, ils obtiendront une erreur. Les utilisateurs connectés obtiendront une erreur s'ils spécifient un identifiant d'utilisateur qu'ils ne sont pas autorisés à voir.
names array Noms de connexion.
match array

Ceci fonctionne comme la 'correspondance d'utilisateurs' dans Bugzilla. Seront renvoyés les noms réels ou les noms de connexion contenant une des chaînes spécifiées. Les utilisateurs que vous n'êtes pas autorisé à voir ne seront pas présents dans la liste renvoyée.

La plupart des installations ont une limite pour le nombre de correspondances renvoyées pour chaque chaîne ; par défaut, cette valeur est de 1000 mais peut être modifiée par l'administrateur de Bugzilla.

Les utilisateurs non connectés ne peuvent pas utiliser cet argument et une erreur sera renvoyée s'ils essaient (ceci est mis en place pour rendre plus difficile la collecte d'adresses électroniques par les spammeurs et pour respecter les restrictions de visibilité des utilisateurs qui sont mises en œuvre dans certaines installations de Bugzilla).

limit int Limite le nombre de correspondances utilisateur à l'aide du paramètre match. Si la valeur est supérieure à celle du système, la valeur limite du système sera utilisée. Ce paramètre n'est valide qu'avec l'utilisation du paramètre match.
group_ids array Identifiants numériques des groupes dans lesquels un utilisateur peut être.
groups array Noms des groupes dans lesquels un utilisateur peut être. Si group_ids ou groups sont spécifiés, cela limite la valeur renvoyée aux utilisateurs présents dans au moins un des groupes spécifiés.
include_disabled boolean Par défaut, en utilisant le paramètre match, les utilisateurs désactivés sont exclus des valeurs renvoyées à moins que leur nom complet soit identique à la chaîne de recherche. En définissant include_disabled à true, les utilisateurs désactivés seront inclus dans les valeurs renvoyées même si leur nom d'utilisateur ne correspond pas totalement à la chaîne de requête.

Réponse

  • users: (array) Chaque objet décrit un utilisateur et contient les éléments suivants :
nom type description
id int L'identifiant (entier) unique utilisé par Bugzilla pour représenter cet utilisateur. Même si le nom de l'utilisateur change, ceci ne sera pas modifié.
real_name string Le nom réel de l'utilisateur. Peut être vide.
email string L'adresse électronique de l'utilisateur.
name string Le nom de connexion de l'utilisateur. Veuillez noter que dans certaines situations ceci sera différent de son adresse électronique.
can_login boolean Une valeur booléenne indiquant si l'utilisateur peut se connecter à Bugzilla.
email_enabled boolean Une valeur booléenne indiquant si les courriels relatifs aux bogues seront envoyés à l'utilisateur.
login_denied_text string Un champ texte contenant la raison du refus de connexion d'un utilisateur à Bugzilla. Si ce champ est vide, le compte utilisateur est actif ; sinon, celui-ci est désactivé/fermé.
groups array Les groupes dont l'utilisateur est membre. Si l'utilisateur connecté interroge son propre compte ou s'il est membre du groupe 'editusers', le tableau contiendra tous les groupes dont l"utilisateur est membre. Sinon, le tableau ne contiendra que les groupes pour lesquels l'utilisateur a les droits d'édition. Chaque objet décrit le groupe et contient les éléments décrits dans l'objet groupe ci-dessous.
saved_searches array Recherches enregistrées de l'utilisateur, chacune contenant les éléments de l'objet recherche décrit ci-dessous.
saved_reports array Rapports enregistrés de l'utilisateur, chacun contenant les éléments de l'objet recherche décrit ci-dessous.

Objet groupe :

nom type description
id int L'identifiant du groupe
name string Le nom du groupe
description string La description du groupe

Objet recherche :

nom type description
id int Un identifiant (entier) unique identifiant le rapport enregistré.
name string Le nom du rapport enregistré.
query string Les paramètres CGI du rapport enregistré.

Si vous n'êtes pas authentifié lors de l'appel à cette fonction, vous ne verrez que les éléments id, name et real_name. Si vous êtes authentifié et n'êtes pas membre du groupe 'editusers', vous ne verrez que les éléments id, name, real_name, email, can_login et groups. Les groupes renvoyés sont filtrés sur la base de vos droits d'édition pour chaque groupe. Les éléments saved_searches et saved_reports sont renvoyés seulement si vous faite la requête sur votre propre compte, même si vous êtes membre du groupe 'editusers'.


Cette documentation contient très probablement des bogues ; si vous en découvrez, veuillez les signaler ici.