Locked fields implementation

Some fields on a model should only be updated by
a user with a given role, but can be viewed by anyone.

Think a customer's payment terms; Customer service role should be
able to view them, but they can only be updated by accounting.