From e45bcf8309339183bd7054501671e1c13fff7e31 Mon Sep 17 00:00:00 2001 From: anatole <anatole.romon@polytechnique.edu> Date: Thu, 1 Mar 2018 19:47:02 +0100 Subject: [PATCH] Documentation de la mutation --- src/graphql/schema.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/graphql/schema.js b/src/graphql/schema.js index 7d30504..304b8f5 100644 --- a/src/graphql/schema.js +++ b/src/graphql/schema.js @@ -113,11 +113,20 @@ const getAvailableGroupUID = (initialUID) => { }); }; +/** + * @summary Créé un groupe si les arguments sont tous valides et l'utilisateur est authorisé + * @desc Les arguments doivent être valides, sauf pour uid. Une clé uid valide sera générée dans tous les cas. + * On teste si l'utilisateur qui envoie la requête a des droits d'admin sur le parent du groupe qui doit être créé, avec la fonction *getUsersWithAdminRights* + * Si un argument est invalide ou si l'utilisateur n'a pas les droits, la fonction renvoie une erreur + * @arg {Object} user - L'utilisateur qui effectue la requête. + * @arg {Object} args - Les arguments envoyés à la mutation. Cf le schéma GraphQL + * @return {Promise} Retour de requête knex. Le groupe qui vient d'être créé. En cas d'echec, renvoie une erreur. + */ const createGroupIfLegal = (user, args) => { if(typeof args.parentuid != 'string') throw "Illegal argument : parentuid must be a string"; return getUsersWithAdminRights(user, args.parentuid).then( admin_list => { - if(typeof admin_list == undefined) + if(typeof admin_list == undefined) //Cela arrive si arg.parentuid n'est pas un id de groupe valable (ou éventuellement si Chevalier fait de la merde) throw "invalid argument : no group with id " + args.parentuid; admin_list = admin_list.concat(['anatole.romon']); // pour les besoins des tests, anatole romon a tout les droits if(admin_list.indexOf(user.uid) == -1) @@ -125,6 +134,7 @@ const createGroupIfLegal = (user, args) => { if(typeof args.uid != "string") args.uid = args.name; return(getAvailableGroupUID(args.uid).then(rasUID => { + // TODO : appeller une fonction de ldap_data pour y créer un groupe. return knex('groups').insert({ uid : rasUID, parentuid : args.parentuid, -- GitLab