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

correction de bug dans authentifiers

parent 5ae5632a
No related branches found
No related tags found
No related merge requests found
......@@ -60,9 +60,9 @@ export function viewer(user, groupUID){
*/
export async function member(user, groupUID){
let group_list = await selectors.groupsWithMember(user);
let test = await knex.with('group_list', group_list).select().from('group_list').where('uid', groupUID);
if(test[0])
return new User(user, new UtilisateurConnecte(user));
let test = group_list && await knex.with('group_list', group_list).select().from('group_list').where('uid', groupUID);
if(test && test[0])
return new User(user, null);
return await admin(user, groupUID);
}
......@@ -87,7 +87,7 @@ export async function speaker(user, groupUID){
export async function admin(user, groupUID){
let adminList = await list_selectors.usersWithAdminRights(user, groupUID);
if (typeof adminList != "undefined" && adminList.indexOf(user.uid) != -1)
return new User(user, AdministrateurConnecte());
return new User(user, null);
}
/**
......@@ -100,8 +100,13 @@ export async function admin(user, groupUID){
*/
export async function superviser(user, groupUID){
let supervised_groups = await list_selectors.supervisedGroups(user);
let i = supervised_groups.indexOf(groupUID);
if(i < 0)
return false;
return supervised_groups.justification(i) || true;
console.log(supervised_groups);
for(let i = 0; i < supervised_groups.length; i++){
if(supervised_groups[i].uid == groupUID){
let user_obj = new User(user, null);
user_obj.justification = (supervised_groups.justification && supervised_groups.justification[i]);
return user_obj;
}
}
return false;
}
\ No newline at end of file
......@@ -432,33 +432,34 @@ export async function allVisibleAnnouncements(user){
return result;
}
export async function allVisiblePrivatePosts(user){
let selection = await selectors.visiblePrivatePosts(user);
let result = await knex.select().from('private_posts').whereIn('id', selection);
for(r of result){
r.type = 'PrivatePost';
export async function recievedPrivatePosts(user, groupUID){
let result = await knex('private_post').select()
.where('recipient_uid', groupUID);
for(element of result){
element.type = 'PrivatePost';
}
return result;
}
export async function allVisibleQuestions(user){
let selection = await selectors.visibleQuestions(user);
let result = await knex.select().from('questions').whereIn('id', selection);
for(r of result){
r.type = 'Question';
export async function receivedQuestions(user, groupUID){
let result = await knex().select().from('question')
.where('recipient_uid', groupUID);
for(element of result){
element.type = 'Question';
}
return result;
}
export async function allVisibleAnswers(user){
let selection = await selectors.visibleAnswers(user);
let result = await knex.select().from('answers').whereIn('id', selection);
for(r of result){
r.type = 'Answer';
export async function recievedAnswers(user, groupUID){
let result = await knex().select().from('answer')
.where('recipient_uid', groupUID);
for(element of result){
element.type = 'Answer';
}
return result;
}
export async function visibleMessages(user, messageID){
}
......
......@@ -48,13 +48,13 @@ export async function supervisedGroups(user){
.whereIn('member_uid', child_simple_groups);
let new_start_groups = difference(child_simple_groups.concat(child_meta_groups), visited_groups);
let new_visited_groups = visited_groups.concat(new_start_groups);
if(new_start_groups)
if(new_start_groups.length > 0)
return recursive_explorer(new_visited_groups, new_start_groups);
else
return new_visited_groups;
}
let groups_with_admin = await selectors.groupsWithAdmin(user)(knex);
let groups_with_admin = (await selectors.groupsWithAdmin(user))(knex);
return recursive_explorer([], groups_with_admin);
}
......
......@@ -44,7 +44,7 @@ export async function groupsWithSpeaker(user){
export async function groupsWithAdmin(user){
return function (query_builder){
return null;
return ["kes"];
};
}
......@@ -63,25 +63,6 @@ export async function visibleEvents(user){
};
}
export async function visiblePrivatePosts(user){
return query_builder => {
return query_builder;
};
}
export async function visibleQuestions(user){
return query_builder => {
return query_builder;
};
}
export async function visibleAnswers(user){
return query_builder => {
return query_builder;
};
}
export async function messageHosts(user, messageID){
return function(query_builder){
return query_builder.select({uid : 'group'}).from('group_message_relationships')
......
......@@ -181,7 +181,7 @@ export const resolvers = {
// Superviser mutations
takeAdminRights : async function(obj, args, context){
let user = await authentifiers.superviser(user, args.from);
let user = await authentifiers.superviser(context.user, args.from);
return user && await connectors.takeAdminRights(user, args.from, user.justification);
},
......@@ -326,12 +326,42 @@ export const resolvers = {
likers: async function(obj, args, context){
return connectors.utilisateur.listMembers(context.user,obj.uid);
},
privatePosts: async function(obj, args, context){
let user = await authentifiers.member(context.user, obj.uid);
return user && connectors.recievedPrivatePosts(user, obj.uid);
},
questions: async function(obj, args, context){
let user = await authentifiers.member(context.user, obj.uid);
return user && connectors.recievedQuestions(user, obj.uid);
},
answers: async function(obj, args, context){
let user = await authentifiers.member(context.user, obj.uid);
return user && connectors.recievedAnswers(user, obj.uid);
}
},
// @rights viewer(obj.uid)
MetaGroup: {
members: (obj, args, context) => {
},
privatePosts: async function(obj, args, context){
let user = await authentifiers.member(context.user, obj.uid);
return user && connectors.recievedPrivatePosts(user, obj.uid);
},
questions: async function(obj, args, context){
let user = await authentifiers.member(context.user, obj.uid);
return user && connectors.recievedQuestions(user, obj.uid);
},
answers: async function(obj, args, context){
let user = await authentifiers.member(context.user, obj.uid);
return user && connectors.recievedAnswers(user, obj.uid);
}
}
};
......@@ -47,11 +47,11 @@ const Group = `
# member requests
# Les posts prives dans ce groupe
# privatePosts: [PrivatePost]
privatePosts: [PrivatePost]
# Les questions addressees à ce groupe
# questions: [Question]
questions: [Question]
# Les reponses donnees par ce groupe
# answers: [Answer]
answers: [Answer]
}
......@@ -74,6 +74,10 @@ const Group = `
school: String
# Groupe parent
parent: Group
privatePosts: [PrivatePost]
questions: [Question]
answers: [Answer]
}
# Un groupe dont les membre sont d'autres groupes
......@@ -87,6 +91,10 @@ const Group = `
# Les groupes constitutifs du méta-groupe.
members: [Group]!
privatePosts: [PrivatePost]
questions: [Question]
answers: [Answer]
}
`;
......
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