Exemple #1
0
    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
Exemple #2
0
    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,
        )
Exemple #3
0
    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
Exemple #4
0
    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)
Exemple #5
0
    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