def test_get_user_object_permissions_with_group_project(
        users, independent_action_object):
    user_id = users[0].id
    object_id = independent_action_object.object_id
    project_id = sampledb.logic.projects.create_project(
        "Example Project", "", users[1].id).id
    assert object_permissions.get_user_object_permissions(
        user_id=user_id, object_id=object_id) == Permissions.NONE
    object_permissions.set_project_object_permissions(
        project_id=project_id,
        object_id=object_id,
        permissions=Permissions.GRANT)
    assert object_permissions.get_user_object_permissions(
        user_id=user_id, object_id=object_id) == Permissions.NONE
    group_id = sampledb.logic.groups.create_group("Example Group", "",
                                                  users[1].id).id
    sampledb.logic.projects.add_group_to_project(project_id, group_id,
                                                 Permissions.READ)
    assert object_permissions.get_user_object_permissions(
        user_id=user_id, object_id=object_id) == Permissions.NONE
    sampledb.logic.groups.add_user_to_group(group_id=group_id, user_id=user_id)
    assert object_permissions.get_user_object_permissions(
        user_id=user_id, object_id=object_id) == Permissions.READ
    sampledb.db.session.add(
        UserObjectPermissions(user_id=user_id,
                              object_id=object_id,
                              permissions=Permissions.WRITE))
    sampledb.db.session.commit()
    assert object_permissions.get_user_object_permissions(
        user_id=user_id, object_id=object_id) == Permissions.WRITE
    sampledb.logic.projects.update_group_project_permissions(
        project_id, group_id, Permissions.GRANT)
    assert object_permissions.get_user_object_permissions(
        user_id=user_id, object_id=object_id) == Permissions.GRANT
Ejemplo n.º 2
0
def test_get_object_permissions_for_readonly_users(users, instrument, instrument_action_object):
    user_id = users[0].id
    object_id = instrument_action_object.object_id

    sampledb.db.session.add(UserObjectPermissions(user_id=user_id, object_id=object_id, permissions=Permissions.WRITE))
    sampledb.db.session.commit()
    assert object_permissions.get_object_permissions_for_users(object_id=object_id) == {
        user_id: Permissions.WRITE,
        users[1].id: Permissions.GRANT
    }
    sampledb.logic.users.set_user_readonly(user_id, readonly=True)
    assert object_permissions.get_object_permissions_for_users(object_id=object_id) == {
        user_id: Permissions.READ,
        users[1].id: Permissions.GRANT
    }

    instrument.responsible_users.append(users[0])
    sampledb.db.session.add(instrument)
    sampledb.db.session.commit()
    assert object_permissions.get_object_permissions_for_users(object_id=object_id) == {
        user_id: Permissions.READ,
        users[1].id: Permissions.GRANT
    }
    sampledb.logic.users.set_user_readonly(user_id, readonly=False)
    assert object_permissions.get_object_permissions_for_users(object_id=object_id) == {
        user_id: Permissions.GRANT,
        users[1].id: Permissions.GRANT
    }
Ejemplo n.º 3
0
def test_get_object_permissions(users, instrument, instrument_action_object):
    user_id = users[0].id
    object_id = instrument_action_object.object_id

    # by default, only the user who created an object has access to it
    assert object_permissions.get_object_permissions_for_users(object_id=object_id) == {
        users[1].id: Permissions.GRANT
    }
    assert not object_permissions.object_is_public(object_id)

    object_permissions.set_object_public(object_id)
    assert object_permissions.get_object_permissions_for_users(object_id=object_id) == {
        users[1].id: Permissions.GRANT
    }
    assert object_permissions.object_is_public(object_id)

    sampledb.db.session.add(UserObjectPermissions(user_id=user_id, object_id=object_id, permissions=Permissions.WRITE))
    sampledb.db.session.commit()
    assert object_permissions.get_object_permissions_for_users(object_id=object_id) == {
        user_id: Permissions.WRITE,
        users[1].id: Permissions.GRANT
    }
    assert object_permissions.object_is_public(object_id)

    instrument.responsible_users.append(users[0])
    sampledb.db.session.add(instrument)
    sampledb.db.session.commit()
    assert object_permissions.get_object_permissions_for_users(object_id=object_id) == {
        user_id: Permissions.GRANT,
        users[1].id: Permissions.GRANT
    }
    assert object_permissions.object_is_public(object_id)
Ejemplo n.º 4
0
def test_get_instrument_responsible_user_object_permissions(user, instrument, instrument_action_object):
    user_id = user.id
    object_id = instrument_action_object.object_id
    instrument.responsible_users.append(user)
    sampledb.db.session.add(instrument)
    sampledb.db.session.add(UserObjectPermissions(user_id=user_id, object_id=object_id, permissions=Permissions.WRITE))
    sampledb.db.session.commit()
    assert object_permissions.get_user_object_permissions(user_id=user_id, object_id=object_id) == Permissions.GRANT
def test_get_user_object_permissions(user, independent_action_object):
    user_id = user.id
    object_id = independent_action_object.object_id
    sampledb.db.session.add(
        UserObjectPermissions(user_id=user_id,
                              object_id=object_id,
                              permissions=Permissions.WRITE))
    sampledb.db.session.commit()
    assert object_permissions.get_user_object_permissions(
        user_id=user_id, object_id=object_id) == Permissions.WRITE
Ejemplo n.º 6
0
def test_get_readonly_user_object_permissions(user, independent_action_object):
    user_id = user.id
    object_id = independent_action_object.object_id
    sampledb.db.session.add(UserObjectPermissions(user_id=user_id, object_id=object_id, permissions=Permissions.WRITE))
    sampledb.db.session.commit()
    assert object_permissions.get_user_object_permissions(user_id=user_id, object_id=object_id) == Permissions.WRITE
    sampledb.logic.users.set_user_readonly(user_id, readonly=True)
    assert object_permissions.get_user_object_permissions(user_id=user_id, object_id=object_id) == Permissions.READ
    sampledb.logic.users.set_user_readonly(user_id, readonly=False)
    assert object_permissions.get_user_object_permissions(user_id=user_id, object_id=object_id) == Permissions.WRITE