Index: /Users/mh/Documents/workspace/SC7.0/HTML/EN/settings/server/plugins.html =================================================================== --- /Users/mh/Documents/workspace/SC7.0/HTML/EN/settings/server/plugins.html (revision 17075) +++ /Users/mh/Documents/workspace/SC7.0/HTML/EN/settings/server/plugins.html (working copy) @@ -10,6 +10,7 @@ [% name = plugins.$plugin.name %] [% version = plugins.$plugin.version %] + [% enforce = plugins.$plugin.enforce %] [% settings = plugins.$plugin.optionsURL %] [% enabled = pluginState.$plugin %] @@ -14,7 +15,7 @@ [% enabled = pluginState.$plugin %] [% title = BLOCK %] - [% name | getstring %] + [% name | getstring %] [% END %] [% WRAPPER setting desc = plugins.$plugin.description %] Index: /Users/mh/Documents/workspace/SC7.0/Slim/Plugin/Favorites/install.xml =================================================================== --- /Users/mh/Documents/workspace/SC7.0/Slim/Plugin/Favorites/install.xml (revision 17075) +++ /Users/mh/Documents/workspace/SC7.0/Slim/Plugin/Favorites/install.xml (working copy) @@ -14,6 +14,7 @@ http://www.slimdevices.com/ plugins/Favorites/settings/basic.html 2 + 1 SqueezeCenter Index: /Users/mh/Documents/workspace/SC7.0/Slim/Utils/PluginManager.pm =================================================================== --- /Users/mh/Documents/workspace/SC7.0/Slim/Utils/PluginManager.pm (revision 17078) +++ /Users/mh/Documents/workspace/SC7.0/Slim/Utils/PluginManager.pm (working copy) @@ -381,6 +381,13 @@ delete $manifest->{opType}; + + if ($manifest->{'enforce'}) { + + $log->debug("Enabling plugin: $name - must not be disabled"); + $prefs->set($name, STATE_ENABLED); + } + if (defined $prefs->get($name) && $prefs->get($name) eq STATE_DISABLED) { $log->warn("Skipping plugin: $name - disabled"); @@ -635,6 +642,11 @@ my $class = shift; my $plugin = shift; + if ($plugins->{$plugin}->{enforce}) { + $log->debug("Can't disable plugin: $plugin - 'enforce' set in install.xml"); + return; + } + my $opType = $plugins->{$plugin}->{'opType'}; if ($opType eq OP_NEEDS_UNINSTALL) {