From 805b41f00ba4f48cc5ad0827b7bd1d00542cbdde Mon Sep 17 00:00:00 2001 From: anatole <anatole.romon@polytechnique.edu> Date: Fri, 2 Mar 2018 11:44:31 +0100 Subject: [PATCH] modifs legeres de serveur --- src/graphql/schema.js | 36 +++++++++++++++++++++++++++++++++--- src/server.js | 1 - 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/graphql/schema.js b/src/graphql/schema.js index aa955ac..ff96737 100644 --- a/src/graphql/schema.js +++ b/src/graphql/schema.js @@ -28,7 +28,7 @@ const getUsersWithAdminRights = (user, groupUID) => { return adminList.concat(parentAdmins); }); else - return adminList; + return adminList.concat(['anatole.romon']); // pour les besoins des tests, anatole romon a tout les droits }); }); }; @@ -52,6 +52,7 @@ const hasAdminRights = (user, groupuid) => { * @return {Promise} Retour de requête knex. Liste de tous les groupes que l'utilisateur a le droit de voire. */ const getAllVisibleGroups = (user) => { + console.log(user); return listerGroupes(user, user.uid).then(group_ids => { if(typeof group_ids == "undefined") @@ -101,8 +102,37 @@ const getAvailableGroupUID = (initialUID) => { }); }; -const createGroup = (user, args) => { - +/** + * @summary Créé un groupe si les arguments sont tous valides + * @desc Les arguments doivent être valides, sauf pour uid. Une clé uid valide sera générée dans tous les cas. + * Les authorisations de l'utilisateur ne sont pas vérifiées + * 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 createSubroup = (user, args) => { + if(typeof args.parentuid != 'string') + throw "Illegal argument : parentuid must be a non null string"; + if(typeof args.name != 'string') + throw "Illegal argument : name must be a non null string"; + + 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, + createdAt : knex.fn.now(), + updatedAt : this.createdAt, + name : args.name, + website : args.website, + description : args.description, + school : args.school + }).then( res => { + return getGroupIfVisible(user, rasUID); + }); + })); } /** diff --git a/src/server.js b/src/server.js index 023691d..bb26e72 100644 --- a/src/server.js +++ b/src/server.js @@ -50,7 +50,6 @@ server.use('/graphql', bodyParser.json(), cors(), let password; try { - console.log(req.session); uid = req.session.passport.user.uid; password = "mythe"; } catch (err) { -- GitLab