Example #1
0
def college_info(requesting_user, collegeid):
    c = College(collegeid)
    if c in requesting_user.colleges or requesting_user.is_blueshirt:
        response = c.details_dictionary_for(requesting_user)
        return json.dumps(response), 200

    else:
        return AUTHORIZATION_DENIED
Example #2
0
def college_info(requesting_user, collegeid):
    c = College(collegeid)
    if c in requesting_user.colleges or requesting_user.is_blueshirt:
        response = c.details_dictionary_for(requesting_user)
        return json.dumps(response), 200

    else:
        return AUTHORIZATION_DENIED
Example #3
0
def test_college_has_correct_users():
    c = College("college-1")
    users = set([u.username for u in c.users])
    eu = set(["teacher_coll1", "student_coll1_1", "student_coll1_2", \
                "blueshirt", "withdrawn_student"])

    assert users == eu
Example #4
0
def test_load_speed():
    c = College("college-3")

    t = time.time()
    c.users
    e = time.time()
    print(e-t)
    assert e-t < 1
Example #5
0
def assert_college_1_details_dictionary_for(requesting_user):
    c = College("college-1")
    data = c.details_dictionary_for(requesting_user)

    actual_name = data["name"]
    assert actual_name == "college the first"

    actual_teams = sorted(data["teams"])
    assert actual_teams == ["team-ABC", "team-DFE"]

    actual_counts = data["counts"]
    expected_counts = {
        'team_leaders': 1,
        'students': 3,
        'media_consent': 0,
        'withdrawn': 1,
    }
    assert actual_counts == expected_counts

    return data
Example #6
0
def assert_college_1_details_dictionary_for(requesting_user):
    c = College("college-1")
    data = c.details_dictionary_for(requesting_user)

    actual_name = data["name"]
    assert actual_name == "college the first"

    actual_teams = data["teams"]
    assert actual_teams == ["team-ABC", "team-DFE"]

    actual_counts = data["counts"]
    expected_counts = {
        'team_leaders': 1,
        'students': 3,
        'media_consent': 0,
        'withdrawn': 1,
    }
    assert actual_counts == expected_counts

    return data
Example #7
0
def test_details_dictionary_for_blueshirt_non_member():
    u = User.create_user("blueshirt")
    c = College("college-2")
    data = c.details_dictionary_for(u)

    actual_name = data["name"]
    assert actual_name == "secondary college"

    actual_teams = data["teams"]
    assert actual_teams == ["team-QWZ"]

    assert "users" not in data

    actual_counts = data["counts"]
    expected_counts = {
        'team_leaders': 1,
        'students': 2,
        'media_consent': 0,
        'withdrawn': 0,
    }
    assert actual_counts == expected_counts
Example #8
0
def test_details_dictionary_for_blueshirt_non_member():
    u = User.create_user("blueshirt")
    c = College("college-2")
    data = c.details_dictionary_for(u)

    actual_name = data["name"]
    assert actual_name == "secondary college"

    actual_teams = data["teams"]
    assert actual_teams == ["team-QWZ"]

    assert "users" not in data

    actual_counts = data["counts"]
    expected_counts = {
        'team_leaders': 1,
        'students': 2,
        'media_consent': 0,
        'withdrawn': 0,
    }
    assert actual_counts == expected_counts
Example #9
0
def college_info(collegeid):
    ah = AuthHelper(request)
    c = College(collegeid)
    if ah.auth_will_succeed and c in ah.user.colleges or ah.user.is_blueshirt:
        response = {}
        response["name"] = c.name
        response["teams"] = [t.name for t in c.teams]
        au = ah.user
        if c in au.colleges:
            response["users"] = [
                m.username for m in c.users if au.can_administrate(m)
            ]

        return json.dumps(response), 200

    else:
        return ah.auth_error_json, 403
Example #10
0
def test_college_has_correct_teams_with_blueshirt():
    c = College("college-1")
    actual = set([t.name for t in c.teams])
    assert actual == set(["team-ABC", "team-DFE"])
Example #11
0
def test_all_colleges():
    all_college_names = sorted(College.all_college_names())
    assert all_college_names == ["college-1", "college-2"]
Example #12
0
def test_college_neq_string_works_self():
    name = "college-1"
    c = College(name)

    assert (c != name) is False
Example #13
0
def test_all_colleges():
    assert len(College.all_college_names()) == 2
Example #14
0
def colleges():
    ah = AuthHelper(request)
    if ah.auth_will_succeed and ah.user.is_blueshirt:
        return json.dumps({"colleges":College.all_college_names()})
    else:
        return ah.auth_error_json,403
Example #15
0
def test_details_dictionary_for_non_member():
    c = College("college-1")
    u = User.create_user("student_coll2_1")

    with assert_raises(AssertionError):
        c.details_dictionary_for(u)
Example #16
0
def colleges(requesting_user):
    if requesting_user.is_blueshirt:
        return json.dumps({"colleges":College.all_college_names()})
    else:
        return AUTHORIZATION_DENIED
Example #17
0
def test_details_dictionary_for_non_member():
    c = College("college-1")
    u = User.create_user("student_coll2_1")

    with assert_raises(AssertionError):
        c.details_dictionary_for(u)
Example #18
0
def test_college_has_correct_name():
    c = College("college-1")
    assert c.name == "college the first"
Example #19
0
def colleges(requesting_user):
    if requesting_user.is_blueshirt:
        return json.dumps({"colleges": College.all_college_names()})
    else:
        return AUTHORIZATION_DENIED
Example #20
0
def test_college_eq_works():
    c = College("college-1")
    c2 = College("college-1")
    assert c == c2
Example #21
0
def test_college_eq_string_works():
    c = College("college-1")
    c2 = "college-1"

    assert c == c2
Example #22
0
def test_college_neq_works_other():
    c = College("college-1")
    c2 = College("college-2")

    assert c != c2
Example #23
0
def test_all_colleges():
    assert len(College.all_college_names()) == 2
Example #24
0
def test_college_neq_works_self():
    c = College("college-1")

    assert (c != c) is False
Example #25
0
def colleges():
    ah = AuthHelper(request)
    if ah.auth_will_succeed and ah.user.is_blueshirt:
        return json.dumps({"colleges": College.all_college_names()})
    else:
        return ah.auth_error_json, 403
Example #26
0
def test_college_neq_string_works_other():
    c = College("college-1")
    c2 = "college-2"

    assert c != c2
Example #27
0
def register_user():
    ah = AuthHelper(request)

    if not ah.auth_will_succeed:
        return ah.auth_error_json, 403

    requesting_user = ah.user
    if not requesting_user.can_register_users:
        return json.dumps({"error": "YOU_CANT_REGISTER_USERS"}), 403

    teacher_username = requesting_user.username
    college_group = request.form["college"].strip()
    first_name = request.form["first_name"].strip()
    last_name = request.form["last_name"].strip()
    email = request.form["email"].strip()
    team = request.form["team"].strip()

    if College(college_group) not in requesting_user.colleges:
        return json.dumps({"error": "BAD_COLLEGE"}), 403

    if team not in [t.name for t in College(college_group).teams]:
        return json.dumps({"error": "BAD_TEAM"}), 403

    if not helpers.is_email_valid(email):
        return json.dumps({"error": "BAD_EMAIL"}), 403

    if not helpers.is_name_valid(first_name):
        return json.dumps({"error": "BAD_FIRST_NAME"}), 403

    if not helpers.is_name_valid(last_name):
        return json.dumps({"error": "BAD_LAST_NAME"}), 403

    if User.name_used(first_name, last_name) or helpers.email_used(email):
        return json.dumps({"error": "DETAILS_ALREADY_USED"}), 403

    u = User.create_new_user(requesting_user, college_group, first_name,
                             last_name)
    verify_code = helpers.create_verify_code(u.username, email)

    pu = PendingUser(u.username)
    pu.teacher_username = teacher_username
    pu.college = college_group
    pu.email = email
    pu.team = team
    pu.verify_code = verify_code
    pu.save()

    log_action('registering user', pu)

    url = url_for('activate_account',
                  username=u.username,
                  code=verify_code,
                  _external=True)
    pu.send_welcome_email(first_name, url)

    rqu_email_vars = {
        'name': requesting_user.first_name,
        'pu_first_name': first_name,
        'pu_last_name': last_name,
        'pu_username': pu.username,
        'pu_college': College(pu.college).name,
        'pu_email': pu.email,
        'pu_team': pu.team
    }
    mailer.email_template(requesting_user.email, 'user_requested',
                          rqu_email_vars)

    return "{}", 202
Example #28
0
def test_college_has_correct_teams():
    c = College("college-1")
    assert set([t.name for t in c.teams]) == set(["team-ABC", "team-DFE"])