diff --git a/src/graphql/models/groupModel.ts b/src/graphql/models/groupModel.ts index 1a4e217d9c122af6d362d23e87b1422a5fa559ea..9785d3c2f3570fe113845b7f48f14cfa3cfeccb0 100644 --- a/src/graphql/models/groupModel.ts +++ b/src/graphql/models/groupModel.ts @@ -160,7 +160,10 @@ export class GroupModel { * @rights connectedOrOnplatal */ getAllSimpleGroupsFromMeta(gid: string): Promise<GroupSet> { - throw "Not implemented"; + let arg=new GroupSet(); + arg.add(gid); + let res=Tools.simpleGroupsOfGroups(arg); + return res; } /** diff --git a/src/graphql/models/tools.ts b/src/graphql/models/tools.ts index 26d0f8b9357507a2abd7c3edc7b7c763c13ecb43..7a1895ad0033304dfce3c44ee36a9985cfe1844b 100644 --- a/src/graphql/models/tools.ts +++ b/src/graphql/models/tools.ts @@ -119,6 +119,21 @@ export class Tools { })); } + /** + * @memberof GraphQL + * @summary Fonction qui renvoit tous les simple-groupes dont ces groupes sont membres. + * @arg {GroupSet} groups - Un ensemble de gid des groupes a considérer. + * @return {Promise(GroupSet)} Renvoie un GroupSet contenant le nom des simple-groupes. + * @static + * @async + */ + static async simpleGroupsOfGroups(groups: GroupSet): Promise<GroupSet> { + let simples = await knex.select('simple_group_gid').from('metagroup_memberships').whereIn('meta_group_gid', [...groups]); + return new GroupSet(simples.map( elt => { + return elt.simple_group_gid; + })); + } + /** * @memberof GraphQL * @summary Fonction qui renvoit tous les groupes (simples ou méta) dont le user est membre.