|
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) |
|
|