def feedback_view_complaint(group, id): if group not in Groups or not helpers.get_id(group, id): return flask.abort(404) complaint_id = helpers.get_id(group, id) complaint = helpers.get_all_fields(group, complaint_id) complaint['uuid'] = id perms = set() if auth_utils.check_login(): perms = auth_utils.get_permissions(flask.session['username']) bodperms = set(permissions[group]) if default_permissions.ADMIN not in perms: bodperms &= perms namedperms = [permissions[group](perm).name for perm in bodperms] return flask.render_template( 'complaint.html', complaint=complaint, perms=namedperms, group=group)
def arc_ombuds(id): if 'username' not in flask.session: return flask.abort(403) complaint_id = helpers.get_id('arc', id) if not complaint_id: return flask.abort(400) ombuds = flask.request.form.get('ombuds') if ombuds is None: return flask.abort(400) helpers.set_ombuds(complaint_id, ombuds) return flask.redirect( flask.url_for('feedback.feedback_view_complaint', group='arc', id=id))
def set_resolved(group, id): if group not in Groups: return flask.abort(404) # Authenticate if not auth_utils.check_login() or not auth_utils.check_permission( flask.session['username'], permissions[group].TOGGLE_RESOLVED): return flask.abort(403) complaint_id = helpers.get_id(group, id) resolved = 'status' in flask.request.form helpers.set_resolved(group, complaint_id, resolved) return flask.redirect( flask.url_for('feedback.feedback_view_complaint', group=group, id=id))
def feedback_remove_email(group, id): if group not in Groups: return flask.abort(404) if 'username' not in flask.session or not auth_utils.check_permission( flask.session['username'], permissions[group].ADD_REMOVE_EMAIL): return flask.abort(403) complaint_id = helpers.get_id(group, id) if not complaint_id: return flask.abort(400) data = flask.request.form.getlist('emails') for em in data: helpers.remove_email(group, complaint_id, em) return flask.redirect( flask.url_for('feedback.feedback_view_complaint', group=group, id=id))
def feedback_add_msg(group, id): if group not in Groups: return flask.abort(404) complaint_id = helpers.get_id(group, id) if not complaint_id: return flask.abort(400) fields = ['message', 'poster'] data = {} for field in fields: data[field] = flask.request.form.get(field) if not data['message']: return flask.abort(400) helpers.add_msg(group, complaint_id, data['message'], data['poster']) return flask.redirect( flask.url_for('feedback.feedback_view_complaint', group=group, id=id))
def test_get_id(client): assert helpers.get_id(group, 'F034CB412C0411E997ED021EF4D6E881') == 1 assert helpers.get_id(group, 'nonsense') == False