예제 #1
0
파일: routes.py 프로젝트: dqu123/donut
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)
예제 #2
0
파일: routes.py 프로젝트: dqu123/donut
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))
예제 #3
0
파일: routes.py 프로젝트: dqu123/donut
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))
예제 #4
0
파일: routes.py 프로젝트: dqu123/donut
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))
예제 #5
0
파일: routes.py 프로젝트: dqu123/donut
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))
예제 #6
0
def test_get_id(client):
    assert helpers.get_id(group, 'F034CB412C0411E997ED021EF4D6E881') == 1
    assert helpers.get_id(group, 'nonsense') == False