def _valid_request(self, user, prefix, group_id): group_repo = GroupRepository() group = group_repo.fetch(group_id) group_repo.close() if not group: print "Group doesn't exist." return False user_repo = UserRepository() member_list = user_repo.get_members_of_group(group_id) user_repo.close() if not any(member.id == user.id for member in member_list): print "User is not a member of the associated group." return False group_repo = GroupRepository() parent_group = group_repo.get_supergroup_of_group(group_id) group_repo.close() if not group_repo: print "Attempting to add membrer to the root." return False user_repo = UserRepository() parent_member_list = user_repo.get_members_of_group(parent_group.id) user_repo.close() if not any(member.id == user.id for member in parent_member_list): print "New user is not a member of the supergroup." return False return True
def get( self, group_id ): ur = UserRepository() gr = GroupRepository() dr = DeadlineRepository() # TODO: 404 if the user is not a member of the group. user = self.get_current_user() # TODO: 404 if the page doesn not exist in the DB. group = gr.get_user_group_tree(user.id, long(group_id)) gr.get_group_maintainer_rec(group) supergroup_list = gr.get_supergroup_list(group_id) group_is_public = group.maintainerId == None user_is_maintainer = group.maintainerId == user.id member_list = ur.get_members_of_group(group_id) deadline_list = dr.deadlines_for_user_for_group(user.id, group.id) print "Deadline List: ", deadline_list for deadline in deadline_list: deadline.group = group self.render( self.get_url(), user = user, group = group, supergroups = supergroup_list, subgroups = group.subgroups, group_is_public = group_is_public, user_is_maintainer = user_is_maintainer, members = member_list, deadlines = deadline_list, )
def _valid_request(self, user, prefix, group_id): group_repo = GroupRepository() group = group_repo.fetch(group_id) group_repo.close() if not group: print "Group doesn't exist." return False user_repo = UserRepository() member_list = user_repo.get_members_of_group(group_id) user_repo.close() if not any(member.id == user.id for member in member_list): print "User is not a member of the associated group." return False return True
def _perform_request(self, user, name, values): meeting_time = values[u"meeting_time"] meeting_message = values[u"meeting_message"] group_id = values[u"group_id"] curr_user = self.get_current_user() ur = UserRepository() users = ur.get_members_of_group(group_id) ur.close() gr = GroupRepository() group = gr.fetch(group_id) gr.close() cm = CukeMail() cm.subject(group.name + " meeting @ " + meeting_time) cm.message(meeting_message) cm.send([user.email for user in users]) self._persist_user(curr_user)
def _valid_request(self, curr_user, name, values): # Malformed request if u"group_id" not in values or u"user_email" not in values: print "Malformed request detected." return False # Malformed request group_id = values[u"group_id"] new_user_email = values[u"user_email"] if not group_id or not new_user_email: print "Required data is missing." return False user_repo = UserRepository() member_list = user_repo.get_members_of_group(group_id) user_repo.close() if not any(member.id == curr_user.id for member in member_list): print "User is not a member of the associated group." return False group_repo = GroupRepository() parent_group = group_repo.get_supergroup_of_group(group_id) group_repo.close() if not group_repo: print "Cannot add member to the root group." return False user_repo = UserRepository() parent_member_list = user_repo.get_members_of_group(parent_group.id) user_repo.close() if not any(member.id == curr_user.id for member in parent_member_list): print "New user is not a member of the supergroup." return False # New user is already a member of the group new_user_repo = UserRepository() new_user = new_user_repo.get_user_by_email(new_user_email) new_user_repo.close() if not new_user: print "New user doesn't exist." return False if not new_user.groups: print "New user isn't a member of any groups." return False if group_id in new_user.groups: print "New user is already already a member of the group." return False group_repo = GroupRepository() group = group_repo.fetch(group_id) group_repo.close() if not group: print "Group doesn't exist" return False # 1 => Public if group.type == 1: print "Cannot add members to public groups" return False return True