diff --git a/src/graphql/schema.js b/src/graphql/schema.js index 215452e9c2f1fab5b859ca59e7d1e573f0c93562..a2c99eed08bc90fc6f666a65046548725a3eac71 100644 --- a/src/graphql/schema.js +++ b/src/graphql/schema.js @@ -65,6 +65,28 @@ const typeDefs = ` `; +/** + * @summary Renvoie tous les utilisateurs ayant des droits d'administrateur sur un groupe. + * @desc Les utilisateurs qui ont un droit d'administrateur sur un groupe sont ses administrateurs et les utilisateurs ayant droit d'admin sur son parent + * @arg {String} uid - L'uid du groupe dont on veut les administrateurs. + * @return {Promise} Retour de requête knex. Promise qui renvera une liste de tous les utilisateurs ayant droit d'admin sur le groupe + */ +const getUsersWithAdminRights = (user, groupuid) => { + return listAdmins(user, groupuid); +}; + +/** + * @summary teste si un utilisateur a des droits + * @desc Cette fonction effectue une requête knex. Elle gère l'arête de parenté. + * @arg {Object} user - Objet contenant un attribut *uid* de type *string*. User représente l'utilisateur qui a effectué la requête. + * @return {Promise} Retour de requête knex. Liste de tous les groupes que l'utilisateur a le droit de voire. + */ +const hasAdminRights = (user, groupuid) => { + return getUsersWithAdminRights(user, groupuid).then(res => { + return (typeof res != "undefined" && res.indexOf(user.uid) != -1); + }); +} + /** * @summary Renvoie tous les groupes visibles par l'utilisateur user * @desc Cette fonction effectue une requête knex. Elle gère l'arête de parenté. @@ -104,16 +126,6 @@ const getGroupIfVisible = (user, uid) => { }); }; -/** - * @summary Renvoie tous les utilisateurs ayant des droits d'administrateur sur un groupe. - * @desc Les utilisateurs qui ont un droit d'administrateur sur un groupe sont ses administrateurs et les utilisateurs ayant droit d'admin sur son parent - * @arg {String} uid - L'uid du groupe dont on veut les administrateurs. - * @return {Promise} Retour de requête knex. Promise qui renvera une liste de tous les utilisateurs ayant droit d'admin sur le groupe - */ -const getUsersWithAdminRights = (user, uid) => { - return listAdmins(user, uid); -}; - /** * @summary Attribue un UID qui n'a pas encore été utilisé à un groupe * @desc RASifie le string initialUID si necessaire (ramené à de l'ASCCI sans espace), puis si l'uid est deja pris rajoute un n a la fin et reteste @@ -206,6 +218,9 @@ const resolvers = { }, Mutation: { + asAdmin: (obj, args, context) => { + + }, createGroup: (obj, args, context) => { return createGroupIfLegal(context.user, args); }