Design Challenge #10 - A Permission Puzzle

Based on a challenge submitted by Ben Ettlinger - thanks Ben!

We are building a web application that will allow customers to update profile information for the facilities to which we provide power. Here is a subset of the model:

 

A CUSTOMER can own one or more FACILITIES

A FACILITY is owned by one and only one CUSTOMER

Permission rules:

If a CUSTOMER is not a Government Agency, they can update information only on their FACILITY.

If a CUSTOMER is a Government Agency, they can update information only on their FACILITY and also for other Government Agencies.

How would you modify this model to support these two permission rules? 

To read the response to this design challenge, please click here