Archiving records

Archiving records

Hi all,

Here is the business logic i want to achieve: when an Order Status== Archive, I want to prevent everyone from modifying any field in the record unless the user is a certain Role or Profile.

I know i can write the code in OnEdit and OnAdd to disable each and every field. But this becomes a maintenance burden in the long run because I need to remember to update them when I add a new field. 

I have Enterprise edition, so Role and Profiel are available to me. Is it possible to achieve what I want?