Skip to content
Snippets Groups Projects
Commit e45bcf83 authored by Anatole ROMON's avatar Anatole ROMON
Browse files

Documentation de la mutation

parent 9bee65b8
No related branches found
No related tags found
No related merge requests found
...@@ -113,11 +113,20 @@ const getAvailableGroupUID = (initialUID) => { ...@@ -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) => { const createGroupIfLegal = (user, args) => {
if(typeof args.parentuid != 'string') if(typeof args.parentuid != 'string')
throw "Illegal argument : parentuid must be a string"; throw "Illegal argument : parentuid must be a string";
return getUsersWithAdminRights(user, args.parentuid).then( admin_list => { 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; 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 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) if(admin_list.indexOf(user.uid) == -1)
...@@ -125,6 +134,7 @@ const createGroupIfLegal = (user, args) => { ...@@ -125,6 +134,7 @@ const createGroupIfLegal = (user, args) => {
if(typeof args.uid != "string") if(typeof args.uid != "string")
args.uid = args.name; args.uid = args.name;
return(getAvailableGroupUID(args.uid).then(rasUID => { return(getAvailableGroupUID(args.uid).then(rasUID => {
// TODO : appeller une fonction de ldap_data pour y créer un groupe.
return knex('groups').insert({ return knex('groups').insert({
uid : rasUID, uid : rasUID,
parentuid : args.parentuid, parentuid : args.parentuid,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment