From d9a5b11c9a1b5e400e83130306bd375b22887201 Mon Sep 17 00:00:00 2001 From: Andrew Manning Date: Thu, 26 Jan 2017 21:20:15 -0500 Subject: Fixed numerous bugs with the addon repo management GUI. Only show Manage Repos button if webserver has write permission on extend/addon/. --- Zotlabs/Module/Admin/Plugins.php | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'Zotlabs/Module/Admin') diff --git a/Zotlabs/Module/Admin/Plugins.php b/Zotlabs/Module/Admin/Plugins.php index 9e48b4b86..527e96496 100644 --- a/Zotlabs/Module/Admin/Plugins.php +++ b/Zotlabs/Module/Admin/Plugins.php @@ -36,7 +36,7 @@ class Plugins { json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false)); } else { - if (!symlink('extend/addon', $addonDir)) { + if (!symlink(realpath('extend/addon'), $addonDir)) { logger('Error creating symlink to addon folder: ' . $addonDir); json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false)); } @@ -57,7 +57,7 @@ class Plugins { $files = array_diff(scandir($repoDir), array('.', '..')); foreach ($files as $file) { if (is_dir($repoDir . '/' . $file) && $file !== '.git') { - $source = 'extend/addon/' . $repoName . '/' . $file; + $source = '../extend/addon/' . $repoName . '/' . $file; $target = realpath('addon/') . '/' . $file; unlink($target); if (!symlink($source, $target)) { @@ -86,7 +86,7 @@ class Plugins { logger('Error creating extend folder: ' . $extendDir); json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false)); } else { - if (!symlink('extend/addon', $addonDir)) { + if (!symlink(realpath('extend/addon'), $addonDir)) { logger('Error creating symlink to addon folder: ' . $addonDir); json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false)); } @@ -119,7 +119,7 @@ class Plugins { logger('Error creating extend folder: ' . $extendDir); json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false)); } else { - if (!symlink('extend/addon', $addonDir)) { + if (!symlink(realpath('extend/addon'), $addonDir)) { logger('Error creating symlink to addon folder: ' . $addonDir); json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false)); } @@ -156,7 +156,7 @@ class Plugins { $files = array_diff(scandir($repoDir), array('.', '..')); foreach ($files as $file) { if (is_dir($repoDir . '/' . $file) && $file !== '.git') { - $source = 'extend/addon/' . $repoName . '/' . $file; + $source = '../extend/addon/' . $repoName . '/' . $file; $target = realpath('addon/') . '/' . $file; unlink($target); if (!symlink($source, $target)) { @@ -176,13 +176,13 @@ class Plugins { $repoURL = $_REQUEST['repoURL']; $extendDir = 'store/[data]/git/sys/extend'; $addonDir = $extendDir . '/addon'; - $tempAddonDir = 'store/[data]/git/sys/temp'; + $tempAddonDir = realpath('store/[data]') . '/git/sys/temp'; if (!file_exists($extendDir)) { if (!mkdir($extendDir, 0770, true)) { logger('Error creating extend folder: ' . $extendDir); json_return_and_die(array('message' => 'Error creating extend folder: ' . $extendDir, 'success' => false)); } else { - if (!symlink('extend/addon', $addonDir)) { + if (!symlink(realpath('extend/addon'), $addonDir)) { logger('Error creating symlink to addon folder: ' . $addonDir); json_return_and_die(array('message' => 'Error creating symlink to addon folder: ' . $addonDir, 'success' => false)); } @@ -395,6 +395,10 @@ class Plugins { usort($plugins,'self::plugin_sort'); + $allowManageRepos = false; + if(is_writable('extend/addon') && is_writable('store/[data]')) { + $allowManageRepos = true; + } $admin_plugins_add_repo_form= replace_macros( get_markup_template('admin_plugins_addrepo.tpl'), array( @@ -432,6 +436,7 @@ class Plugins { '$plugins' => $plugins, '$disabled' => t('Disabled - version incompatibility'), '$form_security_token' => get_form_security_token('admin_plugins'), + '$allowManageRepos' => $allowManageRepos, '$managerepos' => t('Manage Repos'), '$installedtitle' => t('Installed Plugin Repositories'), '$addnewrepotitle' => t('Install a New Plugin Repository'), -- cgit v1.2.3 From 7b065365e0d64a06ddfb7ade55e713a4b6a0f802 Mon Sep 17 00:00:00 2001 From: zotlabs Date: Mon, 30 Jan 2017 15:01:22 -0800 Subject: consolidate hubloc storage --- Zotlabs/Module/Admin/Queue.php | 1 - 1 file changed, 1 deletion(-) (limited to 'Zotlabs/Module/Admin') diff --git a/Zotlabs/Module/Admin/Queue.php b/Zotlabs/Module/Admin/Queue.php index 4986de925..5a47413ee 100644 --- a/Zotlabs/Module/Admin/Queue.php +++ b/Zotlabs/Module/Admin/Queue.php @@ -15,7 +15,6 @@ class Queue { $expert = ((array_key_exists('expert',$_REQUEST)) ? intval($_REQUEST['expert']) : 0); if($_REQUEST['drophub']) { - require_once('hubloc.php'); hubloc_mark_as_down($_REQUEST['drophub']); remove_queue_by_posturl($_REQUEST['drophub']); } -- cgit v1.2.3 From 8a69a5c3c7bd0188228d5c1c8580e5331a66e2da Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Sun, 26 Feb 2017 21:01:20 +0100 Subject: add a minversion to the theme and fallback to default if requirement is not met. mark incompatible themes in the theme selector --- Zotlabs/Module/Admin/Site.php | 9 ++++++++- Zotlabs/Module/Admin/Themes.php | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'Zotlabs/Module/Admin') diff --git a/Zotlabs/Module/Admin/Site.php b/Zotlabs/Module/Admin/Site.php index 829ca71e4..3bb384ec5 100644 --- a/Zotlabs/Module/Admin/Site.php +++ b/Zotlabs/Module/Admin/Site.php @@ -163,6 +163,13 @@ class Site { foreach($files as $file) { $vars = ''; $f = basename($file); + + $min_version = ((file_exists('view/theme/' . $f . '/.MINVERSION')) ? file_get_contents('view/theme/' . $f . '/.MINVERSION') : 0); + if((version_compare($min_version, STD_VERSION, '>=')) || ($min_version == 0)) { + $theme_choices[$f] = $theme_choices_mobile[$f] = sprintf(t('%s - (Incompatible)'), $f); + continue; + } + if (file_exists($file . '/library')) continue; if (file_exists($file . '/mobile')) @@ -310,4 +317,4 @@ class Site { )); } -} \ No newline at end of file +} diff --git a/Zotlabs/Module/Admin/Themes.php b/Zotlabs/Module/Admin/Themes.php index 63a9a1670..fc908ec8b 100644 --- a/Zotlabs/Module/Admin/Themes.php +++ b/Zotlabs/Module/Admin/Themes.php @@ -230,4 +230,4 @@ class Themes { -} \ No newline at end of file +} -- cgit v1.2.3 From 8e3e90ddd243011828b9dbb44e7c4abc00655b28 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Mon, 27 Feb 2017 10:13:08 +0100 Subject: set minversion and maxversion for themes in view/theme/themename/php/theme.php instead of separate file. --- Zotlabs/Module/Admin/Site.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Zotlabs/Module/Admin') diff --git a/Zotlabs/Module/Admin/Site.php b/Zotlabs/Module/Admin/Site.php index 3bb384ec5..b71e63030 100644 --- a/Zotlabs/Module/Admin/Site.php +++ b/Zotlabs/Module/Admin/Site.php @@ -164,8 +164,9 @@ class Site { $vars = ''; $f = basename($file); - $min_version = ((file_exists('view/theme/' . $f . '/.MINVERSION')) ? file_get_contents('view/theme/' . $f . '/.MINVERSION') : 0); - if((version_compare($min_version, STD_VERSION, '>=')) || ($min_version == 0)) { + $info = get_theme_info($f); + $compatible = check_plugin_versions($info); + if(!$compatible) { $theme_choices[$f] = $theme_choices_mobile[$f] = sprintf(t('%s - (Incompatible)'), $f); continue; } -- cgit v1.2.3