Example #1
0
def test_admin_userpermission_change_to_member():
    '''
    Test that admin_userpermission_change can set permissions of the user with the given user ID
    from owner to member permissions.
    '''
    clear()
    user1 = auth_register('*****@*****.**', 'password', 'Bill', 'Gates')
    user2 = auth_register('*****@*****.**', 'password', 'Steve',
                          'Ballmer')

    # First user changes permissions of second user to make them a Flockr owner
    admin_userpermission_change(user1['token'], user2['u_id'], 1)

    # Second user creates a private channel
    f_channel = channels_create(user2['token'], 'Private Channel', False)
    # First user is able to join the private channel as they are a Flockr owner
    channel_join(user1['token'], f_channel['channel_id'])
    channel_leave(user1['token'], f_channel['channel_id'])

    # Second user changes permissions of first user to make them a member
    admin_userpermission_change(user2['token'], user1['u_id'], 2)

    # Check that first user is now a member
    # (verified by now not being able to join the private channel)
    with pytest.raises(AccessError):
        channel_join(user1['token'], f_channel['channel_id'])
Example #2
0
def test_userpermssion_change_other_owner():
    '''
    Register two users, with one being owner by default, and change the
    permission of the member to owner. Newly promoted owner should be able
    to change the permissions of the other owner.
    '''
    clear()
    user_1 = auth_register('*****@*****.**', '123abc!@#*', 'Bob', 'Ross', None)
    user_2 = auth_register('*****@*****.**', '123abc!@#*', 'Jo', 'Ross', None)

    token_1 = user_1['token']
    token_2 = user_2['token']

    id_1 = user_1['u_id']
    id_2 = user_2['u_id']

    owner_level = 1
    member_level = 2

    admin_userpermission_change(token_1, id_2, owner_level)
    admin_userpermission_change(token_2, id_1, member_level)

    for user in users:
        if user['u_id'] == id_1:
            assert user['permission_id'] == member_level
            break
Example #3
0
def admin_user_permission_change():
    payload = request.get_json()
    token = payload['token']
    u_id = payload['u_id']
    permission_id = payload['permission_id']
    other.admin_userpermission_change(token, u_id, permission_id)
    return dumps({})
Example #4
0
def test_permissions_removeowner():
    '''
    If permissions updated then no errors raised when removing.
    '''
    clear()
    #flock owner
    user_1 = auth_register("*****@*****.**", "passwordOne", "Firstone", "Lastone")
    user_1_token = user_1.get('token')

    #change permissions to flock owner
    user_2 = auth_register("*****@*****.**", "passwordTwo", "Firsttwo", "Lasttwo")
    user_2_id = user_2.get('u_id')
    user_2_token = user_2.get('token')

    #add as channel owner
    user_3 = auth_register("*****@*****.**", "passwordOne", "Firstone", "Lastone")
    user_3_id = user_3.get('u_id')

    #make user 2 become owner
    admin_userpermission_change(user_1_token, user_2_id, 1)

    channel = channels_create(user_1_token, "channel1", True)
    
    channel1_id = channel.get("channel_id") 

    channel_join(user_2_token, channel1_id)

    channel_addowner(user_1_token, channel1_id, user_3_id)

    channel_removeowner(user_2_token, channel1_id, user_3_id)
Example #5
0
def test_admin_userpermission_change_2to1():
    boyu_dict, wenyao_dict = initialise_data()
    admin_userpermission_change(boyu_dict['token'], wenyao_dict['u_id'], 1)
    # create a channel and add the new flockr owner as a member
    channel = channels_create(boyu_dict['token'], "team1", True)
    channel_id = channel['channel_id']
    channel_invite(boyu_dict['token'], channel_id, wenyao_dict['u_id'])
    # check if the new flockr owner has owner permission in the channel
    channel_removeowner(wenyao_dict['token'], channel_id, boyu_dict['u_id'])
    assert channel_details(wenyao_dict['token'], channel_id) == {
        'name':
        'team1',
        'owner_members': [{
            'u_id': wenyao_dict['u_id'],
            'name_first': 'Wenyao',
            'name_last': 'Chen',
            'profile_img_url': '',
        }],
        'all_members': [{
            'u_id': boyu_dict['u_id'],
            'name_first': 'Boyu',
            'name_last': 'Cai',
            'profile_img_url': '',
        }, {
            'u_id': wenyao_dict['u_id'],
            'name_first': 'Wenyao',
            'name_last': 'Chen',
            'profile_img_url': '',
        }],
    }
Example #6
0
def user_permission_change():
    data = request.get_json()
    token = str(data["token"])
    u_id = int(data["u_id"])
    permission_id = data["permission_id"]
    admin_userpermission_change(token, u_id, permission_id)
    return dumps({})
def test_admin_userpermission_change_successful():
    clear()
    admin, usera, userb = register_n_users(3, include_admin=True)

    admin_userpermission_change(admin["token"], usera["u_id"], 1)

    # usera should now be able to change other people's permission
    admin_userpermission_change(usera["token"], userb["u_id"], 2)
Example #8
0
def test_admin_userpermission_change_invalid_uid():
    '''
    Exception test for invalid uid
    '''
    other.clear()
    user_1 = auth.auth_register('*****@*****.**', 'abcd1234', 'Will', 'Smith')
    auth.auth_register('*****@*****.**', 'abcd1234', 'Carlton', 'Banks')
    with pytest.raises(error.InputError):
        other.admin_userpermission_change(user_1['token'], 4, 2)
Example #9
0
def test_admin_userpermission_change_unauthorised():
    '''
    Exception test for an unauthorised user
    '''
    other.clear()
    user_1 = auth.auth_register('*****@*****.**', 'abcd1234', 'Will', 'Smith')
    user_2 = auth.auth_register('*****@*****.**', 'abcd1234', 'Carlton', 'Banks') 
    with pytest.raises(error.AccessError):
        other.admin_userpermission_change(user_2['token'], user_1['u_id'], 3)
Example #10
0
def test_admin_userpermission_change_invalid_user():
    clear()
    user = auth_register('*****@*****.**', '3mptyH3@dn0i', 'Ben', 'Lucas')
    invalid_u_id1 = user['u_id'] + 34
    invalid_u_id2 = user['u_id'] + 79

    with pytest.raises(InputError):
        admin_userpermission_change(user['token'], invalid_u_id1, 2)

    with pytest.raises(InputError):
        admin_userpermission_change(user['token'], invalid_u_id2, 2)
Example #11
0
def test_admin_userpermission_change_user_notowner():
    clear()
    user1 = auth_register('*****@*****.**', 'NKJ*j2j3b', 'Thomas', 'Dean')
    user2 = auth_register('*****@*****.**', '980ujdfKJn', 'Bethany', 'Bridgers')
    user3 = auth_register('*****@*****.**', '&YHBJBNJMK', 'Bob', 'Higgins')

    with pytest.raises(AccessError):
        admin_userpermission_change(user2['token'], user1['u_id'], 1)

    with pytest.raises(AccessError):
        admin_userpermission_change(user2['token'], user3['u_id'], 1)
def test_admin_userpermission_change_fail_other():
    clear()
    admin, usera, userb = register_n_users(3, include_admin=True)

    # cannot change another member's permission
    with pytest.raises(AccessError):
        admin_userpermission_change(usera["token"], userb["u_id"], 1)

    # cannot change admin permission
    with pytest.raises(AccessError):
        admin_userpermission_change(usera["token"], admin["u_id"], 2)
Example #13
0
def test_channel_join_user_permission_changed():
    other.clear()
    owner = auth.auth_register("*****@*****.**", "password", "Homer",
                               "Simpson")
    random_user1 = auth.auth_register("*****@*****.**", "password", "Bart",
                                      "Simpson")

    channel_1 = channels.channels_create(owner['token'], "channel_1", True)
    other.admin_userpermission_change(owner['token'], random_user1['u_id'], 1)

    channel.channel_join(random_user1['token'], channel_1['channel_id'])
Example #14
0
def test_token_invalid():
    '''
    Testing when oken is invalid.
    '''
    clear()
    # first user should automatically become a flockr owner
    user_1 = auth_register("*****@*****.**", "passwordOne", "Firstone", "Lastone")
  
    # put random user id as input:     
    with pytest.raises(AccessError):
        admin_userpermission_change('token', user_1.get('u_id'), 1)
Example #15
0
def test_invalid_user():
    '''
    Testing when user is invalid.
    '''
    clear()
    # first user should automatically become a flockr owner
    user_1 = auth_register("*****@*****.**", "passwordOne", "Firstone", "Lastone")
    user_1_token = user_1.get('token')
  
    # put random user id as input:     
    with pytest.raises(InputError):
        admin_userpermission_change(user_1_token, 123, 1)
Example #16
0
def test_admin_userpermission_no_permission():
    boyu_dict, wenyao_dict = initialise_data()
    admin_userpermission_change(boyu_dict['token'], wenyao_dict['u_id'], 1)
    admin_userpermission_change(boyu_dict['token'], wenyao_dict['u_id'], 2)
    # create a channel and add the new flockr owner as a member
    channel = channels_create(boyu_dict['token'], "team1", True)
    channel_id = channel['channel_id']
    channel_invite(boyu_dict['token'], channel_id, wenyao_dict['u_id'])
    # check if the user has owner permission in the channel
    with pytest.raises(AccessError):
        assert channel_removeowner(wenyao_dict['token'], channel_id,
                                   boyu_dict['u_id'])
Example #17
0
def test_invalid_id():
    '''
    Testing invalid permission_id.
    '''
    clear()
    user_1 = auth_register("*****@*****.**", "passwordOne", "Firstone", "Lastone")
    user_1_token = user_1.get('token')

    user_2 = auth_register("*****@*****.**", "passwordTwo", "Firsttwo", "Lasttwo")
    user_2_id = user_2.get('u_id')

    with pytest.raises(InputError):
        admin_userpermission_change(user_1_token, user_2_id, 3)
Example #18
0
def test_flocker_owner_access_other():
    '''
    Testing for a valid message edited by a flocker owner.
    '''
    clear()
    user = auth_register("*****@*****.**", "password", "User_0", "User_last_0")
    user_1 = auth_register("*****@*****.**", "password", "User_1", "User_last_1")
    channel_1 = channels_create(user.get('token'), 'channel_1', True)
    channel_join(user_1.get("token"), channel_1.get("channel_id"))
    admin_userpermission_change(user.get('token'), user_1.get("u_id"), 1)

    message_info = message_send(user.get('token'), channel_1.get('channel_id'), 'Hello world')
    message_edit(user_1.get('token'), message_info.get('message_id'), 'Hellooo Worlldddd!!!!')
Example #19
0
def test_admin_userpermission_change_revert_success(user1):
    """
    Tests successful uses of admin_userpermission_change,
    focusing on reverting changes
    """
    user2 = auth.auth_register("*****@*****.**", "honeysyrup2",
                               "first_name", "last_name")
    assert other.admin_userpermission_change(user1["token"], user2["u_id"],
                                             1) == {}
    assert other.admin_userpermission_change(user1["token"], user2["u_id"],
                                             2) == {}

    other.clear()
Example #20
0
def test_userpermssion_change_notexist():
    
    '''
    Register one user, the owner as first to register. Attempts to change
    permission of a non-existing user, to get InputError returned.
    '''
    clear()
    user_owner = auth_register('*****@*****.**', '123abc!@#*', 'Bob', 'Ross', None)
    owner_token = user_owner['token']
    non_member_id = 99
    owner_level = 1

    with pytest.raises(InputError):
        admin_userpermission_change(owner_token, non_member_id, owner_level)
Example #21
0
def test_remove_flocker_owner_access():
    '''
    Testing for a valid message removed by a flockr owner.
    '''
    clear()
    user = auth_register("*****@*****.**", "password", "First", "Last")
    user_1 = auth_register("*****@*****.**", "password", "First_1", "Last_1")
    channel_1 = channels_create(user.get('token'), 'channel_1', True)
    channel_join(user_1.get('token'), channel_1.get('channel_id'))
    message_info = message_send(user_1.get('token'), channel_1.get('channel_id'), 'Hello world')

    admin_userpermission_change(user.get('token'), user_1.get("u_id"), 1)

    message_remove(user_1.get('token'), message_info.get('message_id'))
Example #22
0
def test_admin_userpermission_change_user_not_owner():
    '''
    Test that an AccessError is raised when the authorised user calling
    admin_userpermission_change does not have owner permissions
    '''
    clear()
    f_owner = auth_register('*****@*****.**', 'password', 'Bob', 'Bob')
    member1 = auth_register('*****@*****.**', 'password', 'Tim', 'Hall')
    member2 = auth_register('*****@*****.**', 'password', 'Kim', 'Sean')

    with pytest.raises(AccessError):
        admin_userpermission_change(member1['token'], f_owner['u_id'], 2)
    with pytest.raises(AccessError):
        admin_userpermission_change(member2['token'], member1['u_id'], 1)
Example #23
0
def test_non_owner_access():
    '''
    Testing a non-owner trying to use permission change.
    '''
    clear()
    auth_register("*****@*****.**", "passwordOne", "Firstone", "Lastone")
    
    user_2 = auth_register("*****@*****.**", "passwordOne", "Firstone", "Lastone")
    user_2_token = user_2.get('token')
    
    user_3 = auth_register("*****@*****.**", "passwordOne", "Firstone", "Lastone")
    user_3_id = user_3.get('u_id')

    with pytest.raises(AccessError):
        admin_userpermission_change(user_2_token, user_3_id, 1)
Example #24
0
def test_change_permission(user1):
    """
    Changes user"s serverwide permissions
    to whatever was specified
    """
    user2 = auth.auth_register("*****@*****.**", "Sullivan", "Mike", "Wazowski")
    # User2 is not owner, so can't remove owner
    with pytest.raises(AccessError):
        assert other.admin_userpermission_change(user2["token"], user1["u_id"], 2)
    # User1 is owner, so can add owner
    data.change_permission(user2["u_id"], 1)
    # User2 is owner so can remove owner (Would raise AccessError if 
    # change_permission didn't work as intended)
    assert other.admin_userpermission_change(user2["token"], user1["u_id"], 2) == {}

    other.clear()
Example #25
0
def test_admin_userpermission_change():
    '''
    Test that the function changes a users' permission
    '''
    other.clear()
    user_1 = auth.auth_register('*****@*****.**', 'abcd1234', 'Will', 'Smith')
    user_2 = auth.auth_register('*****@*****.**', 'abcd1234', 'Carlton', 'Banks')
    channel_1 = channels.channels_create(user_1['token'], 'channel_1', True)
    channel.channel_join(user_2['token'], channel_1['channel_id'])


    other.admin_userpermission_change(user_1['token'], user_2['u_id'], 1)

    info = channel.channel_details(user_1['token'], channel_1['channel_id'])

    assert info['owner_members'][1]['u_id'] == user_2['u_id']
Example #26
0
def test_userpermssion_change_member():
    '''
    Register two users, one owner as first to register, and the other member
    by default. Member will attempt to change owner's permission to member, only
    to get an AccessError.
    '''
    clear()
    user_owner = auth_register('*****@*****.**', '123abc!@#*', 'Bob', 'Ross', None)
    user_member = auth_register('*****@*****.**', '123abc!@#*', 'Jo', 'Ross', None)

    member_token = user_member['token']
    owner_id = user_owner['u_id']
    member_level = 2

    with pytest.raises(AccessError):
        admin_userpermission_change(member_token, owner_id, member_level)
Example #27
0
def admin_userpermission_change_handler():
    data = request.get_json()

    token = data["token"]
    u_id = data["u_id"]
    permission_id = data["permission_id"]

    return jsonify(admin_userpermission_change(token, u_id, permission_id))
Example #28
0
def test_admin_userpermission_change_demote():
    '''
    Test if the function can promote a user then demote him
    '''
    other.clear()
    user_1 = auth.auth_register('*****@*****.**', 'abcd1234', 'Will', 'Smith')
    user_2 = auth.auth_register('*****@*****.**', 'abcd1234', 'Carlton', 'Banks')
    channel_1 = channels.channels_create(user_1['token'], 'channel_1', True)
    channels.channels_create(user_1['token'], 'channel_1', True)
    channel.channel_join(user_2['token'], channel_1['channel_id'])


    other.admin_userpermission_change(user_1['token'], user_2['u_id'], 1)
    other.admin_userpermission_change(user_1['token'], user_2['u_id'], 2)
    info = channel.channel_details(user_1['token'], channel_1['channel_id'])

    assert len(info['owner_members']) == 1
Example #29
0
def test_userpermission_input_err():
    other.clear()

    u0 = auth.auth_register('*****@*****.**', 'youshallpass', 'King',
                            'Kingson')

    # call function with invalid id 0
    with pytest.raises(InputError):
        assert other.admin_userpermission_change(u0['token'], 0, 1)
Example #30
0
def change_permissions():
    """
    Sets a user's permissions according to the permission value using http
    """
    data = request.get_json()
    token = data["token"]
    u_id = convert_to_int(data["u_id"])
    permission_id = convert_to_int(data["permission_id"])
    return other.admin_userpermission_change(token, u_id, permission_id)