Merge remote-tracking branch 'upstream/dev' into chat-notify

This commit is contained in:
Andrew Manning 2016-05-11 20:08:54 -04:00
commit 913d07a4a7
3 changed files with 114 additions and 89 deletions

View File

@ -1735,8 +1735,13 @@ class Admin extends \Zotlabs\Web\Controller {
}
$repoDir = __DIR__ . '/../../store/git/sys/extend/addon/' . $repoName;
if (!is_dir($repoDir)) {
logger('Repo directory does not exist: ' . $repoDir);
json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
}
if (!is_writable($repoDir)) {
logger('Repo directory not writable to web server: ' . $repoDir);
json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
}
$git = new GitRepo('sys', null, false, $repoName, $repoDir);
try {
if ($git->pull()) {
@ -1755,8 +1760,13 @@ class Admin extends \Zotlabs\Web\Controller {
}
$repoDir = __DIR__ . '/../../store/git/sys/extend/addon/' . $repoName;
if (!is_dir($repoDir)) {
logger('Repo directory does not exist: ' . $repoDir);
json_return_and_die(array('message' => 'Invalid addon repo.', 'success' => false));
}
if (!is_writable($repoDir)) {
logger('Repo directory not writable to web server: ' . $repoDir);
json_return_and_die(array('message' => 'Repo directory not writable to web server.', 'success' => false));
}
// TODO: remove directory and unlink /addon/files
if (rrmdir($repoDir)) {
json_return_and_die(array('message' => 'Repo deleted.', 'success' => true));
@ -1781,6 +1791,10 @@ class Admin extends \Zotlabs\Web\Controller {
}
}
}
if (!is_writable($extendDir)) {
logger('Directory not writable to web server: ' . $extendDir);
json_return_and_die(array('message' => 'Directory not writable to web server.', 'success' => false));
}
$repoName = null;
if (array_key_exists('repoName', $_REQUEST) && $_REQUEST['repoName'] !== '') {
$repoName = $_REQUEST['repoName'];
@ -1792,13 +1806,21 @@ class Admin extends \Zotlabs\Web\Controller {
json_return_and_die(array('message' => 'Invalid git repo', 'success' => false));
}
$repoDir = $addonDir . '/' . $repoName;
$tempAddonDir = __DIR__ . '/../../store/git/sys/temp/' . $repoName;
$tempRepoBaseDir = __DIR__ . '/../../store/git/sys/temp/';
$tempAddonDir = $tempRepoBaseDir . $repoName;
if (!is_writable($addonDir) || !is_writable($tempAddonDir)) {
logger('Temp repo directory or /extend/addon not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => 'Temp repo directory not writable to web server.', 'success' => false));
}
rename($tempAddonDir, $repoDir);
if (!is_writable(realpath(__DIR__ . '/../../addon/'))) {
logger('/addon directory not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => '/addon directory not writable to web server.', 'success' => false));
}
$files = array_diff(scandir($repoDir), array('.', '..'));
logger('files: ' . json_encode($files));
foreach ($files as $file)
{
foreach ($files as $file) {
if (is_dir($repoDir . '/' . $file) && $file !== '.git') {
$source = '../extend/addon/' . $repoName . '/' . $file;
$target = realpath(__DIR__ . '/../../addon/') . '/' . $file;
@ -1843,6 +1865,10 @@ class Admin extends \Zotlabs\Web\Controller {
json_return_and_die(array('message' => 'Invalid git repo: ' . $repoName, 'success' => false));
}
$repoDir = $tempAddonDir . '/' . $repoName;
if (!is_writable($tempAddonDir)) {
logger('Temporary directory for new addon repo is not writable to web server: ' . $tempAddonDir);
json_return_and_die(array('message' => 'Temporary directory for new addon repo is not writable to web server.', 'success' => false));
}
// clone the repo if new automatically
$git = new GitRepo('sys', $repoURL, true, $repoName, $repoDir);
@ -1865,7 +1891,6 @@ class Admin extends \Zotlabs\Web\Controller {
}
}
json_return_and_die(array('repo' => $repo, 'message' => '', 'success' => true));
} else {
json_return_and_die(array('message' => 'No repo URL provided', 'success' => false));
}

View File

@ -25,7 +25,9 @@
<div id="acl-radiowrapper-showall" class="radio">
<label>
<input id="acl-showall" type="radio" name="optionsRadios" value="option1" checked>
{{if $showallIcon}}<i class="fa {{$showallIcon}}"></i>{{/if}}
{{if $showallIcon}}
<i class="fa {{$showallIcon}}"></i>
{{/if}}
<span id="acl-showall-caption">{{$showall}}</span>
</label>
{{if $showallOrigin}}
@ -37,6 +39,7 @@
<input id="acl-showlimited" type="radio" name="optionsRadios" style="readonly" value="option2">
<span id=acl-showlimited-caption>{{$showlimited}}</span>
</label>
</div>
<div id="acl-list">
<div id="acl-search-wrapper">
<input type="text" id="acl-search" placeholder="&#xf002; {{$search}}">
@ -46,11 +49,8 @@
<div id="acl-list-content"></div>
</div>
</div>
</div>
<span id="acl-fields"></span>
</div>
<div class="acl-list-item" rel="acl-template" style="display:none">
<img data-src="{0}"><p>{1}</p>
<button class="acl-button-hide btn btn-xs btn-default"><i class="fa fa-times"></i> {{$hide}}</button>

View File

@ -15,7 +15,7 @@
</div>
<div class="clear"></div>
<div class="section-content-info-wrapper">
<h3>Installed Addon Repositories</h3>
<h3>Installed Plugin Repositories</h3>
{{foreach $addonrepos as $repo}}
<!-- <div class="section-content-tools-wrapper"> -->
<div style="margin-left: 30%; margin-right: 30%;">