Tags:
create new tag
, view all tags

Feature Proposals » Lowering precedence of user preferences

Summary

Current State: Developer: Reason: Date: Concerns By: Bug Tracking: Proposed For:
MergedToCore HideyoImazu AcceptedBy7DayFeedbackPeriod 2013-08-20   TWikibug:Item7397 KampalaRelease

Edit Form

TopicSummary:
CurrentState:
CommittedDeveloper:
ReasonForDecision:
DateOfCommitment:   Format: YYYY-MM-DD
ConcernRaisedBy:
BugTracking:
OutstandingIssues:
RelatedTopics:
InterestedParties:
ProposedFor:
TWikiContributors:
 

Motivation

You can finalize preference values in user preferences now. This may cause webs or topics to work in an manner the owner/author doesn't intend.

Description and Documentation

User preferences need to be able to be read after topic preferences instead of before web preferences.

{DemoteUserPreferences} configuration parameter will be introduced. If it's true, user level preferences variables are set at the last step of preferences variable setting rather than the 4th step.

In addition, DENYUSERPREFERENCES and ALLOWUSERPREFERENCES preferences variables will be introduced to restrict what user preferences are denied/allowed to be set. Those will affect user preferences regardless of {DemoteUserPreferences}.

  • DENYUSERPREFEENCES and ALLOWUSERPREFEENCES may have comma separated list of variable names
  • If a preferences variable is listed in DENYUSERPREFEENCES, the variable cannot be overridden at the user level. There is a special value "all", which means no preferences variables can be overridden at the user level
  • If ALLOWUSERPREFEENCES is set and not empty, only the listed preferences variables can be overridden. There is a special value "all", which means any preferences variable can be overridden at the user level. But actually, "all" is not necessary since a blank value or not setting ALLOWUSERPREFEENCES has the same effect
  • DENYUSERPREFEENCES takes precedence over ALLOWUSERPREFEENCES. If a variable is listed on both, it cannot be overridden. If DENYUSERPREFEENCES is "all", the value of ALLOWUSERPREFEENCES doesn't matter.

Examples

Provided {DemoteUserPreferences} is set true...

If you don't allow user preferences at all in a web, you put the the following line on WebPreferences.

   * Set DENYUSERPREFERENCES = all

If you allow TINYMCEPLUGIN_DISABLE and SKIN to be set in user preferences:

   * Set ALLOWUSERPREFERENCES = TINYMCEPLUGIN_DISABLE, SKIN

If you allow user preferences to set anything other than TINYMCEPLUGIN_DISABLE or SKIN

   * Set DENYUSERPREFERENCES = TINYMCEPLUGIN_DISABLE, SKIN

You can set DENYUSERPREFERENCES and ALLOWUSERPREFERENCES at the site level. In that case, those variables affect how user preferences are read even if {DemoteUserPreferences} is false.

Impact

Introduction of {DemoteUserPreferences} makes things more complex.

Implementation

-- Contributors: Hideyo Imazu - 2013-08-20

Discussion

Thanks Hideyo-san for amending the spec based on the discussion we had today at the JerusalemReleaseMeeting2013x08x29.

-- Peter Thoeny - 2013-08-30

Edit | Attach | Watch | Print version | History: r9 < r8 < r7 < r6 < r5 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r9 - 2014-05-07 - HideyoImazu
 
  • Learn about TWiki  
  • Download TWiki
This site is powered by the TWiki collaboration platform Powered by Perl Hosted by OICcam.com Ideas, requests, problems regarding TWiki? Send feedback. Ask community in the support forum.
Copyright © 1999-2016 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.