summaryrefslogtreecommitdiff
path: root/app/Controllers/extensionController.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Controllers/extensionController.php')
-rw-r--r--app/Controllers/extensionController.php42
1 files changed, 28 insertions, 14 deletions
diff --git a/app/Controllers/extensionController.php b/app/Controllers/extensionController.php
index 415f489a6..e348d9f31 100644
--- a/app/Controllers/extensionController.php
+++ b/app/Controllers/extensionController.php
@@ -52,16 +52,23 @@ class FreshRSS_extension_Controller extends Minz_ActionController {
Minz_Request::bad('feedback.extension.already_enabled', $url_redirect);
}
- if ($ext->getType() === 'system' && !FreshRSS_Auth::hasAccess('admin')) {
- Minz_Request::bad('feedback.extension.no_access', $url_redirect);
- }
+ if ($ext->getType() === 'system' && FreshRSS_Auth::hasAccess('admin')) {
+ $ext->install();
+
+ Minz_Configuration::addExtension($ext_name);
+ Minz_Configuration::writeFile();
- $ext->install();
+ Minz_Request::good('feedback.extension.enabled', $url_redirect);
+ } elseif ($ext->getType() === 'user') {
+ $ext->install();
- FreshRSS_Context::$conf->addExtension($ext_name);
- FreshRSS_Context::$conf->save();
+ FreshRSS_Context::$conf->addExtension($ext_name);
+ FreshRSS_Context::$conf->save();
- Minz_Request::good('feedback.extension.enabled', $url_redirect);
+ Minz_Request::good('feedback.extension.enabled', $url_redirect);
+ } else {
+ Minz_Request::bad('feedback.extension.no_access', $url_redirect);
+ }
}
Minz_Request::forward($url_redirect, true);
@@ -90,16 +97,23 @@ class FreshRSS_extension_Controller extends Minz_ActionController {
Minz_Request::bad('feedback.extension.not_enabled', $url_redirect);
}
- if ($ext->getType() === 'system' && !FreshRSS_Auth::hasAccess('admin')) {
- Minz_Request::bad('feedback.extension.no_access', $url_redirect);
- }
+ if ($ext->getType() === 'system' && FreshRSS_Auth::hasAccess('admin')) {
+ $ext->uninstall();
+
+ Minz_Configuration::removeExtension($ext_name);
+ Minz_Configuration::writeFile();
- $ext->uninstall();
+ Minz_Request::good('feedback.extension.disabled', $url_redirect);
+ } elseif ($ext->getType() === 'user') {
+ $ext->uninstall();
- FreshRSS_Context::$conf->removeExtension($ext_name);
- FreshRSS_Context::$conf->save();
+ FreshRSS_Context::$conf->removeExtension($ext_name);
+ FreshRSS_Context::$conf->save();
- Minz_Request::good('feedback.extension.disabled', $url_redirect);
+ Minz_Request::good('feedback.extension.disabled', $url_redirect);
+ } else {
+ Minz_Request::bad('feedback.extension.no_access', $url_redirect);
+ }
}
Minz_Request::forward($url_redirect, true);