There is the `assignable_assignees`-method on WorkPackage that is more precise than your `project.principals`.

Additionally one could refactor this to create an `assignable_to?(user)`-method, that would capsulate what you are trying to do here.

One thing that we will have to talk about is the consequence of adding such a validation to an existing data set. There will be a lot of invalid work packages once this is activated.