Protected properties allows document properties to be disabled by some arbitrary condition. This could be time based, or whether a user has a particular permission/name.
To create a property you must create a new Data Type for the property and another for the data type you want to protect (you can use any existing data type).
Ships with an Admin Only check but can be easily extended with more - the code reflects all implementations of IProtectedPropertyAccessCheck interface in all loaded DLLs.
An example implementation is also included that disables properties if the users name is not "bob".