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
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 }
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)
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
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