I observed that on various TWiki installations (4.0.4, 4.1.0, 4.1.2) . It seems that User preferences won't override Web preferences. Yet User preferences do override Site preferences as one would expect. Most of my testing was done using SKIN.
Can someone try to reproduce that bug?
--
TWiki:Main/StephaneLenclud - 06 Mar 2007
In
TWikiVariables you find the spec for the settings precedence
You can set variables in all the following places:
- local site level in TWiki.TWikiPreferences
- plugin topics (see TWikiPlugins)
- local site level in Main.TWikiPreferences
- user level in individual user topics in Main web
- web level in WebPreferences of each web
- topic level in topics in webs
- session variables (if sessions are enabled)
The settings overwrite each other in the order shown.
Ie. Session overrides topic, topic overrides web, web overwrites user, user overwrites local site etc etc
So what you report is not a bug. It is exactly how it should work.
If you want to prevent a setting to be overwritten by a later setting, you use the FINALPREFERENCES variable as described in
TWikiVariables.
We have discussed this order of precedence heavily the past year and the current order is the one most could agree on which gives the best overall flexibility.
So if you want to define a skin that can be overwritten at user level then you need to define it at site level.
--
TWiki:Main.KennethLavrsen - 06 Mar 2007
Ok thanks for the clarification, I should RTFM really
It does not seem right to me though. I feel like user preferences should be stronger than web preferences and possibly topic preferences too. Surely if a user goes through the trouble of setting preferences on his home topic he wants to see them taking precedence over every thing else but session variables.
IMHO 4 should move to 6. Did you guys discussed that somewhere in the Codev? What about making that behavior customizable through configure for instance?
--
TWiki:Main.StephaneLenclud - 07 Mar 2007
Thanks a lot Kenneth by using FINALPREFERENCES on my user topic I was able to achieve the desired behavior by preventing web level to override that one preference.
--
TWiki:Main.StephaneLenclud - 07 Mar 2007