It should be possible to set conditions that trigger certain permissions. As an example, a sub-contractor could have different permissions based on the discipline of the form that is being raised. The electrical sub might be a direct participant in the form and thus would need edit permissions but the systems sub might only need to view it, and vice versa.