In Drupal 7, what is the best way to prevent any non-administrative user from changing a custom user profile field?
Use case: I've created a user field called "Customer ID" that I do not want the user (any of my actual customers) to change. The field exists for my own reference and for programmatic usage in other modules. I don't mind the user seeing Customer ID, but they should not be able to edit it.
Should I override the page template for the user profile page? If so, how is the template changed to make a field read-only or invisible?
Thank you very much for your help!