summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-12-04 19:47:43 +0100
committerGravatar Marien Fressinaud <dev@marienfressinaud.fr> 2014-12-04 19:47:43 +0100
commit1086ba4a2bbe43a0101105624f831516b59ba9e9 (patch)
tree33f17552c6d29d97f734bc3484c128a66d8d0c35
parent86f69ca396572ca4d7668a33e84cb4f3b523fc4e (diff)
Enable extensions for users
-rw-r--r--app/FreshRSS.php6
-rw-r--r--app/Models/Configuration.php8
-rw-r--r--lib/Minz/ExtensionManager.php11
3 files changed, 24 insertions, 1 deletions
diff --git a/app/FreshRSS.php b/app/FreshRSS.php
index 2db811a71..166ee1709 100644
--- a/app/FreshRSS.php
+++ b/app/FreshRSS.php
@@ -6,7 +6,7 @@ class FreshRSS extends Minz_FrontController {
Minz_Session::init('FreshRSS');
}
- // Load list of extensions and initialize the "system" ones.
+ // Load list of extensions and enable the "system" ones.
Minz_ExtensionManager::init();
// Need to be called just after session init because it initializes
@@ -29,6 +29,10 @@ class FreshRSS extends Minz_FrontController {
// Load context and configuration.
FreshRSS_Context::init();
+ // Enable extensions for the current user.
+ $ext_list = FreshRSS_Context::$conf->extensions_enabled;
+ Minz_ExtensionManager::enable_by_list($ext_list);
+
// Init i18n.
Minz_Session::_param('language', FreshRSS_Context::$conf->language);
Minz_Translate::init();
diff --git a/app/Models/Configuration.php b/app/Models/Configuration.php
index 8668470b0..13ce43990 100644
--- a/app/Models/Configuration.php
+++ b/app/Models/Configuration.php
@@ -64,6 +64,7 @@ class FreshRSS_Configuration {
'sharing' => array(),
'queries' => array(),
'html5_notif_timeout' => 0,
+ 'extensions_enabled' => array(),
);
private $available_languages = array(
@@ -342,4 +343,11 @@ class FreshRSS_Configuration {
public function _bottomline_link($value) {
$this->data['bottomline_link'] = ((bool)$value) && $value !== 'no';
}
+
+ public function _extensions_enabled($value) {
+ if (!is_array($value)) {
+ $value = array($value);
+ }
+ $this->data['extensions_enabled'] = $value;
+ }
}
diff --git a/lib/Minz/ExtensionManager.php b/lib/Minz/ExtensionManager.php
index ae648fe0d..789557b9e 100644
--- a/lib/Minz/ExtensionManager.php
+++ b/lib/Minz/ExtensionManager.php
@@ -147,4 +147,15 @@ class Minz_ExtensionManager {
$ext->init();
}
}
+
+ /**
+ * Enable a list of extensions.
+ *
+ * @param $ext_list the names of extensions we want to load.
+ */
+ public static function enable_by_list($ext_list) {
+ foreach ($ext_list as $ext_name) {
+ self::enable($ext_name);
+ }
+ }
}