Table of Contents
Last updated: 6/18/2025

Locking


'Locking' is the ability to "lock" any SoftType instance so that no other person may edit that SoftType instance. This lock may then be delegated to another person if desired.

Security

Note that in the diagram above a delegated lock owner may re-delegate the lock to yet another person. A chain of delegated lock owners is created so that each time a delegated lock owner releases delegation, that the delegation returns back to the previously delegated owner in the chain. With repeated release delegations the delegation will eventually return back to the original lock owner.

Only the currently delegated lock owner may edit the object. Previously delegated lock owners and even the original lock owner may not edit the object as long as the lock is delegated to someone else.

Actions


  • lock: Lock an object so that only the person who locked the object may edit that object
  • delegateLock: Move the locking rights over to another person
  • releaseDelegatedLock: Releases a delegation and puts the locking rights back to the person who originally made the lock or the previous delegated lock owner. This action can only be done by the person to whom the lock is delegated.
  • releaseLock: Releases a lock on an object. This can only be done by the person owning the rights to the lock and not a delegated lock owner.
  • forceRemoveLock: Remove a lock on an object even if you are not the one who locked the object.

Actors


Here we define the different actors in a locking scenario and what actions they may perform on a locked object. Note that the actions shown below are "possible" allowed actions. However, it is possible in the configuration to remove the rights to almost any action.

  • Lock Owner
    • Edit the locked object ( only if the lock not delegated)
    • Release Lock ( only if the lock not delegated)
    • Force release lock (not logical to use since release lock does the same thing)
    • Delegate Lock ( only if the lock not delegated)
  • Delegated Lock Owner
    • Edit the locked object ( only if the lock is not re-delegated)
    • Force release lock (if given this right in the configuration)
    • Delegate Lock ( only if the lock is not already re-delegated)
    • Release delegation ( only if the lock is not re-delegated )
  • Non-lock owner
    • Force release lock (if given this right in the configuration)