Пример #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'])
Пример #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
Пример #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({})
Пример #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)
Пример #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': '',
        }],
    }
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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)
Пример #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'])
Пример #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)
Пример #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)
Пример #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'])
Пример #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)
Пример #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!!!!')
Пример #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()
Пример #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)
Пример #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'))
Пример #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)
Пример #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)
Пример #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()
Пример #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']
Пример #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)
Пример #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))
Пример #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
Пример #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)
Пример #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)