Locking Requirements
Write Locks. It must be possible to restrict modification of a resource to a specific person.
Lock Query. It must be possible to find out whether a given resource has any active modification restrictions, and if so, who currently has modification permission.
Unlock. It must be possible to remove a lock. Only the owner or a principal with appropriate access rights may remove the lock.