Theme Subset

For several reasons, it may sometimes be useful to limit users to a choice of a subset of all the installed themes.

This feature will allow wiki maintainers to restrict most users to a subset of installed themes by adding an entry to the wiki configuration file. User IDs listed in the superuser configuration parameter will have access to all installed themes. (An alternative is to implement another list of privileged users such as theme_testers = ['UserOne','UserTwo'].)

Add a new parameter to multiconfig.py that will negate the feature:

    theme_list = []

Near line 426 in userform.py of Moin 1.5.8 replace the lines:

        for theme in wikiutil.getPlugins('theme', self.request.cfg):
            options.append((theme, theme))

with:

        if self.cfg.theme_list and self.request.user.name not in self.cfg.superuser:
            theme_list  = self.cfg.theme_list
        else:
            theme_list = wikiutil.getPlugins('theme', self.request.cfg)
        for theme in theme_list:
            options.append((theme, theme))

Wiki maintainers wishing to implement the feature would add something like the following to wikiconfig.py:

    theme_list = ['mytheme1','mytheme2']

Documentation for HelpOnConfiguration:

Variable Name

Default

Description

theme_list

[]

List of themes for the Preferred Theme drop-down box on the User Preferences page. Users in superuser are not affected.

Note that implementation of this feature could eliminate the need for the theme_force configuration parameter. Setting theme_list to one theme that is the same as theme-default effectively does the same thing.


CategoryFeatureRequest

MoinMoin: FeatureRequests/ThemeSubset (last edited 2007-10-29 19:14:00 by localhost)