Когда кто-то либо назначает запись, проверка прав выполняется для обоих пользователей:
- Тот кто назначает должен иметь доступ на чтение, запись и назначение для записи которую он переназначает (и всех дочерних, которые будут участвовать в каскадном назначении, например, действия)
- Тот КОМУ назначают, должен иметь право на чтение ВСЕХ записей, которые ему назначают, как минимум на уровне пользователя.
В конце концов убедитесь что вы можете проделать операцию через интерфейс, а потом реализуйте ее в коде!