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