Ejemplo n.º 1
0
def update_group_task():
    form = {k: request.form[k].strip() for k in request.form}
    if utils.validate_taskid(int(form['task_id'])):
        task = Task.query.filter_by(id=int(form['task_id'])).first()
        if utils.validate_ownership(int(current_user.id),
                                    int(form['group_id'])):
            task.update(
                owner_id=None,
                title=(None if 'title' not in form else form['title']),
                finish_time=(None if 'finish_time' not in form else
                             utils.trans_to_date(form['finish_time'])),
                status=(None if 'status' not in form else form['status']),
                publicity=(None if 'publicity' not in form else int(
                    form['publicity'])),
                group_id=(None if 'group_id' not in form else int(
                    form['group_id'])),
                info=(None if 'info' not in form else form['info']))
            db.session.commit()
            return Validity(True).get_resp()
        elif utils.validate_membership(int(current_user.id),
                                       int(form['group_id'])):
            # members can only edit the progress
            task.update(
                status=(None if 'status' not in form else int(form['status'])))
            db.session.commit()
            return Validity(True).get_resp()
        else:
            return Validity(False, 'No access').get_resp()
    else:
        return Validity(False, 'Invalid task id').get_resp()
Ejemplo n.º 2
0
def delete_group_task():
    form = {k: request.form[k].strip() for k in request.form}
    if utils.validate_ownership(int(current_user.id), int(form['group_id'])):
        if Task.query.filter_by(id=int(form['task_id'])).first():
            task = Task.query.filter_by(id=int(form['task_id'])).first()
            db.session.delete(task)
            db.session.commit()
            return Validity(True).get_resp()
        else:
            return Validity(False, 'Invalid task id').get_resp()
    else:
        return Validity(False, 'No access').get_resp()
Ejemplo n.º 3
0
def create_group_task():
    form = {k: request.form[k].strip() for k in request.form}
    if utils.validate_ownership(int(current_user.id), int(form['group_id'])):
        task = Task(owner_id=int(current_user.id),
                    title=form['title'],
                    finish_time=utils.trans_to_date(form['deadline']),
                    status=(0 if 'status' not in form else form['status']),
                    publicity=2,
                    group_id=(None if 'group_id' not in form else int(
                        form['group_id'])),
                    info=('' if 'info' not in form else form['info']))
        db.session.add(task)
        db.session.commit()
        return Validity(True, task.get_info_map()).get_resp()
    else:
        return Validity(False, 'No access').get_resp()
Ejemplo n.º 4
0
def delete_member():
    form = {k: request.form[k].strip() for k in request.form}
    if 'user_id' not in form:
        assert 'user_username' in form
        if utils.validate_username(form['user_username']):
            return Validity(
                False, 'User ' + form['user_username'] +
                ' does not exist.').get_resp()
        form['user_id'] = utils.get_userid(form['user_username'])
    if utils.validate_groupid(group_id=int(form['group_id'])):
        if utils.validate_membership(int(form['user_id']), int(
                form['group_id'])) and not utils.validate_ownership(
                    int(form['user_id']), int(form['group_id'])):
            group = Group.query.filter_by(id=int(form['group_id'])).first()
            group.delete_member(int(form['user_id']))
            db.session.commit()
            return Validity(True).get_resp()
        else:
            return Validity(False, 'Can not quit the group').get_resp()
    else:
        return Validity(False, 'Invalid group id').get_resp()
Ejemplo n.º 5
0
def update_group():
    form = {k: request.form[k].strip() for k in request.form}
    if 'owner_id' not in form and 'owner_username' in form:
        #assert 'owner_username' in form
        if utils.validate_username(form['owner_username']):
            return Validity(
                False, 'User ' + form['owner_username'] +
                ' does not exist.').get_resp()
        form['owner_id'] = utils.get_userid(form['owner_username'])
    if utils.validate_groupid(int(form['group_id'])):
        if utils.validate_ownership(int(current_user.id),
                                    int(form['group_id'])):
            group = Group.query.filter_by(id=int(form['group_id'])).first()
            group.update(name=(None if 'name' not in form else form['name']),
                         owner_id=(None if 'owner_id' not in form else int(
                             form['owner_id'])),
                         info=(None if 'info' not in form else form['info']))
            db.session.commit()
            return Validity(True, group.get_info_map()).get_resp()
        else:
            return Validity(False, 'No access').get_resp()
    else:
        return Validity(False, 'Invalid group id').get_resp()
Ejemplo n.º 6
0
def check_ownership():
    form = {k: request.form[k].strip() for k in request.form}
    if utils.validate_ownership(int(current_user.id), int(form['group_id'])):
        return Validity(True).get_resp()
    else:
        return Validity(False).get_resp()