diff --git a/db/seeds/01_create_groups.js b/db/seeds/01_create_groups.js
index fb2d49459c027fc55830236aced3132281aeb598..65f5cdbe23e29d9b0ee6249191f3ea8f6d2bd291 100644
--- a/db/seeds/01_create_groups.js
+++ b/db/seeds/01_create_groups.js
@@ -21,6 +21,13 @@ exports.seed = function(knex, Promise) {
           school: 'polytechnique',
           parentuid: 'kes',
           type : 'simple'
+        },{
+          name: 'Faërix',
+          uid: 'faerix',
+          website: 'faerix.net',
+          school: 'polytechnique',
+          parentuid: 'kes',
+          type : 'simple'
         },{
           name: 'Bôbar',
           uid: 'bob',
diff --git a/src/graphql/connectors/connectors.js b/src/graphql/connectors/connectors.js
index 6b431f7322b76a167affb16fd27e738b756b80aa..62d736096af6296b0f58bfd2a7b67e539ee6d030 100644
--- a/src/graphql/connectors/connectors.js
+++ b/src/graphql/connectors/connectors.js
@@ -264,8 +264,9 @@ export async function getAllVisibleGroups(user){
  * @return {Promise(Boolean)} Boolean indiquant si l'utilisateur est membre du groupe.
  * @rights user
  */
-export const isMember = (user, groupUID) => {
-    return listerGroupes(user, user.uid).then(group_ids => group_ids && group_ids.indexOf(groupUID) != -1);
+export async function isMember(user, groupUID){
+    let member_list = await getGroupMemberUsers(user, groupUID);
+    return member_list && member_list.indexOf(groupUID) != -1;
 };
 
 /**
@@ -462,8 +463,7 @@ export const getMetaGroupAdminMembers = (user, metaGroupUID) => {
 };
 
 /**
- * @function getMetaGroupMembers
- * @summary Renvoie tous les membres d'un meta-groupe.
+ * @summary Renvoie un callback qui génère tous les membres d'un meta-groupe.
  * @param {Object} user - Utilisateur effectuant la requête.
  * @param {String} metaGroupUID - Identifiant unique du groupe.
  * @return {Promise(callback)} a callback to build a query for the members of a group
@@ -478,4 +478,56 @@ export async function getMetaGroupMembersCallback(user, metaGroupUID){
             .innerJoin('meta_group_membership', 'groups.uid', 'meta_group_membership.member_uid')
             .where('meta_group_membership.union_uid', '=', metaGroupUID);
     };
-};
\ No newline at end of file
+};
+
+/**
+ * @summary Renvoie un callback qui génère tous les membres admin d'un meta-groupe.
+ * @param {Object} user - Utilisateur effectuant la requête.
+ * @param {String} metaGroupUID - Identifiant unique du groupe.
+ * @return {Promise(callback)} a callback to build a query for the admin members of a group
+ * @author akka vodol 
+ * @rights member(metaGroupUID)
+ */
+export async function getMetaGroupAdminMembersCallback(user, metaGroupUID){
+    return function(query_builder){
+        return query_builder.distinct().select().from('groups')
+            .innerJoin('meta_group_membership', 'groups.uid', 'meta_group_membership.member_uid')
+            .where('meta_group_membership.union_uid', '=', metaGroupUID)
+            .where('meta_group_membership.status', '=', 'admin');
+    };
+};
+
+/**
+ * @summary Renvoie les membres d'un groupe quelquonque.
+ * @param {Object} user - Utilisateur effectuant la requête.
+ * @param {String} metaGroupUID - Identifiant unique du groupe.
+ * @return {Promise(List)} Une liste des uid de tous les membres du groupe
+ * @author akka vodol 
+ * @rights member(metaGroupUID)
+ */
+export async function getGroupMemberUsers(user, GroupUID){
+    switch( await getGroupType(user, GroupUID) ){
+    case "simple":
+        return listerMembres(user, GroupUID);
+    case "meta":
+        return getMetaGroupMemberUsers(user, GroupUID);
+    default:
+        return undefined;
+    }
+};
+
+/**
+ * @summary Renvoie les membres d'un meta groupe.
+ * @param {Object} user - Utilisateur effectuant la requête.
+ * @param {String} metaGroupUID - Identifiant unique du groupe.
+ * @return {Promise(List)} Une liste des uid de tous les membres du groupe
+ * @author akka vodol 
+ * @rights member(metaGroupUID)
+ */
+export async function getMetaGroupMemberUsers(user, metaGroupUID){
+    let member_group_list = await getMetaGroupMembersCallback(user, metaGroupUID).then(cb => cb(knex));
+    let members = [];
+    for(memberGroup of await member_group_list){
+        members = members.concat(getGroupMemberUsers(user, metaGroupUID));
+    }
+};
diff --git a/src/graphql/resolvers.js b/src/graphql/resolvers.js
index d7b681cd619ad33549c7016c9bfdff526486346d..af922178fc3b7386590b202d9c5c1551a8a856df 100644
--- a/src/graphql/resolvers.js
+++ b/src/graphql/resolvers.js
@@ -23,8 +23,12 @@ export const resolvers = {
                 throw "You do not have admin rights over this group";
         },
 
-        asMember: function (obj, args, context){
-            return {groupUID : args.groupUID};
+        asMember: async function (obj, args, context){
+            if(await connectors.isMember(context.user, args.groupUID) 
+                || connectors.hasAdminRights(context.user, args.groupUID))
+                return {groupUID : args.groupUID};
+            else
+                throw "You do not have member rights over this group";
         },
 
         accessGroups: (obj, args, context) => {