Detailed Scenario Illustrating Concatenation and Inheritance Mechanisms

This section contains a lengthy but comprehensive scenario illustrating how the setting concatenation and inheritance mechanism works.

The scenario involves one end user and two administration levels, explains what happens when both administrators successively set, explicitly modify, lock and unlock settings, and describes the impact on the end user inheriting these settings and who in turn explicitly modifies and resets settings.

We assume before reading this scenario that you are already familiar with the following concepts:
  • basic settings concatenation and inheritance mechanisms
  • resetting settings
  • locking and unlocking settings.
The scenario presents a list of tables containing settings visible to or specified by Administrators 0 and 1, and visible to or specified by the User.

Legend

Black: unlocked values inherited from the higher administration level, or from software defaults

Blue: explicitly modified values

Orange: values locked by the current administrator

Red: inherited locked values

(X, Y, Z) this expression represents the state of the setting where:

  • X represents the administration level where the value has been set:
    • 0 or 1 (meaning Admin 0 or Admin 1): specifies the level where the setting has been set in the administration concatenation. "0" means that the highest level administrator has set this setting.
    • D means Default value: this means that no one has set this setting and thus the value is the code default value.
  • Y represents the administration level where the setting has been locked:
    • 0 or 1 (meaning Admin 0 or Admin 1): specifies the level where the setting has been locked in the administration concatenation. 0 means that the administrator of highest level has locked this setting. The level X and Y can be different. In this case, we have necessary X <= Y.
    • U is for Unlocked meaning that the parameter has not been locked
  • Z specifies if the parameter has been explicitly modified at the current level by the logged user (or administrator):
    • T for TRUE meaning that the value has been explicitly modified and thus is not inherited
    • F for FALSE meaning that the current value of the setting is inherited from an administrator.
1. The initial status of the settings after installation is:

Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 a1 (D, U, F) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 a1 (D, U, F) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
User a1 (D, U, F) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)

The settings visible to Admin 0, Admin 1 and User are identical: they are the default values provided by the software.

2. Admin 0 explicitly changes Setting 1 to value b1:

Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 b1 (D, U, F) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
User b1 (D, U, F) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)

Admin 1 and User inherit the value b1.

3. User explicitly changes Setting 2 to value b2:

Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 b1 (D, U, F) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
User b1 (D, U, F) b2 (D, U, T) a3 (D, U, F) a4 (D, U, F)

 

4. Admin 1 explicitly changes Setting 2 to value c2 and Setting 3 to value b3:

Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 b1 (0, U, F) c2 (D, U, T) b3 (D, U, T) a4 (D, U, F)
User b1 (0, U, F) b2 (1, U, T) b3 (1, U, F) a4 (D, U, F)

When the User starts a session, because the User has not yet explicitly modified Setting 3, the User inherits directly the new value b3. However, as the user has already explicitly modified Setting 2, the modification of Setting 2 made earlier by Admin 1 is not visible.

5. The User then resets the settings:

Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 b1 (0, U, F) c2 (D, U, T) b3 (D, U, F) a4 (D, U, F)
User b1 (0, U, F) c2 (1, U, F) b3 (1, U, F) a4 (D, U, F)

After the reset, the User immediately sees that the value of Setting 1 is imposed by Admin 0, whereas the values of Settings 2 and 3 are imposed by Admin 1. The main difference is that, for Setting 2, the User now inherits the value c2.

6. The User explicitly changes Setting 2 to value d2 and Setting 4 to value b4:

Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 b1 (0, U, F) c2 (D, U, T) b3 (D, U, T) a4 (D, U, F)
User b1 (0, U, F) d2 (1, U, T) b3 (1, U, F) b4 (D, U, T)

 

7. Admin 1 locks Settings 1 and 2:

Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 b1 (0, L, F) c2 (D, L, T) b3 (D, U, T) a4 (D, U, F)
User b1 (0, 1, F) c2 (1, 1, F) b3 (1, U, F) b4 (D, U, T)

The User now inherits the values of Settings 1 and 2 directly: the values are locked so they cannot be modified.

Note that the value locked for the Setting 1 is directly inherited from the Admin 0. The lock and value can be set at different administration levels.

  8. Admin 1 unlocks Setting 1 and explicitly changes the value to d1:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 d1 (0, U, T) c2 (D, L, T) b3 (D, U, T) a4 (D, U, F)
User d1 (1, U, F) c2 (1, 1, F) b3 (1, U, F) b4 (D, U, T)

Because the User has not yet explicitly changed (and therefore has not saved) Setting 1 before Admin 1 locked it earlier, the User now inherits the new value d1 from Admin 1 when the setting is unlocked.

  9. Admin 1 unlocks Setting 2 and explicitly changes the value to e2:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 d1 (0, U, T) e2 (D, U, T) b3 (D, U, T) a4 (D, U, F)
User d1 (1, U, F) d2 (1, U, T) b3 (1, U, F) b4 (D, U, T)

Earlier in the scenario (step 6), the User had already explicitly changed the value of Setting 2 to d2 before Admin 1 locked it. This value was saved. Consequently, because the lock is no longer present, the User does not inherit the new value e2 from Admin 1 (as in step 8).

In this case, once the setting has been unlocked, the User retrieves the value set in step 6, i.e. d2.

  10. Admin 1 sets Setting1 to c1 and Setting 2 to c2 again and  locks them:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 c1 (0, L, F) c2 (D, L, T) b3 (D, U, T) a4 (D, U, F)
User c1 (0, 1, F) c2 (1, 1, F) b3 (1, U, F) b4 (D, U, T)

 

  11.  The User resets:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 c1 (0, L, F) c2 (D, L, T) b3 (D, U, T) a4 (D, U, F)
User c1 (0, 1, F) c2 (1, 1, F) b3 (1, U, F) a4 (D, U, F)

 
  12. Admin 1 unlocks Setting 1 and explicitly changes the value to d1, and unlocks Setting 2 and explicitly changes the value to e2:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 d1 (0, U, T) e2 (D, U, T) b3 (D, U, T) a4 (D, U, F)
User d1 (1, U, F) e2 (1, U, F) b3 (1, U, F) a4 (D, U, F)

It is important here to note the difference with step 9. The user reset the setting in step 11, and has also lost all modifications, therefore the d2 value of the Setting 2 is lost and is not restored.

  13. The User now explicitly changes the values of all four settings like this:
 
  • Setting 1 is changed to e1
  • Setting 2 is changed to f2
  • Setting 3 is changed to c3
  • Setting 4 is changed to b4

 

Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 b1 (D, U, T) a2 (D, U, F) a3 (D, U, F) a4 (D, U, F)
Admin 1 d1 (0, U, T) e2 (D, U, T) b3 (D, U, T) a4 (D, U, F)
User e1 (1, U, T) f2 (1, U, T) c3 (1, U, T) b4 (D, U, T)

Both Admin 1 and the User now inherit the locks and values of Settings 1 and 3, which can no longer be modified.

  15. Admin 0 resets:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 a1 (D, L, F) a2 (D, U, F) a3 (D, L, F) a4 (D, U, F)
Admin 1 a1 (D, 0, F) e2 (D, U, T) a3 (D, 0, F) a4 (D, U, F)
User a1 (D, 0, F) f2 (1, U, T) a3 (D, 0, F) b4 (D, U, T)

The locks are not removed by the reset, which works only on the values. Thus the two locks on Setting1 and 2 remain unchanged. The default value of Setting 1 is however restored.

  16. The User finally resets the settings:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 a1 (D, L, F) a2 (D, U, F) a3 (D, L, F) a4 (D, U, F)
Admin 1 a1 (D, 0, F) e2 (D, U, T) a3 (D, 0, F) a4 (D, U, F)
User a1 (D, 0, F) e2 (1, U, F) a3 (D, 0, F) a4 (D, U, F)

The value of Setting 2 is now e2, and the value of Setting 4 is now back to a4.

  17. Admin 1 sets Setting 4 to b4:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 a1 (D, L, F) a2 (D, U, F) a3 (D, L, F) a4 (D, U, F)
Admin 1 a1 (D, 0, F) e2 (D, U, T) a3 (D, 0, F) b4 (D, U, T)
User a1 (D, 0, F) e2 (1, U, F) a3 (D, 0, F) a4 (1, U, F)

 

  18. Admin 0 sets Setting 4 to c4:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 a1 (D, L, F) a2 (D, U, F) a3 (D, L, F) c4 (D, U, T)
Admin 1 a1 (D, 0, F) e2 (D, U, T) a3 (D, 0, F) b4 (0, U, T)
User a1 (D, 0, F) e2 (1, U, F) a3 (D, 0, F) a4 (1, U, F)

 

  19. Admin 0 locks Setting 4:
 
Setting
/Level
Setting 1 Setting 2 Setting 3 Setting 4
Default a1 a2 a3 a4
Admin 0 a1 (D, L, F) a2 (D, U, F) a3 (D, L, F) c4 (D, L, T)
Admin 1 a1 (D, 0, F) e2 (D, U, T) a3 (D, 0, F) c4 (0, 0, F)
User a1 (D, 0, F) e2 (1, U, F) a3 (D, 0, F) c4 (0, 0, F)