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()
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()
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()
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()
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()
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()