aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xautotest-external.sh2
-rw-r--r--core/js/setupchecks.js2
-rw-r--r--core/js/tests/specs/setupchecksSpec.js8
-rw-r--r--lib/private/share/share.php2
-rw-r--r--settings/Controller/AppSettingsController.php25
-rw-r--r--settings/js/apps.js2
-rw-r--r--settings/js/users/groups.js2
-rw-r--r--settings/templates/apps.php2
-rw-r--r--tests/core/command/encryption/changekeystorageroottest.php4
9 files changed, 38 insertions, 11 deletions
diff --git a/autotest-external.sh b/autotest-external.sh
index 643153bb064..ef6516c0721 100755
--- a/autotest-external.sh
+++ b/autotest-external.sh
@@ -218,7 +218,7 @@ EOF
stopFile=`echo "$startFile" | sed 's/start/stop/'`
echo "stop: $stopFile"
if [ -f $FILES_EXTERNAL_BACKEND_ENV_PATH/$stopFile ]; then
- # execute stop file if existant
+ # execute stop file if existent
./$FILES_EXTERNAL_BACKEND_ENV_PATH/$stopFile
fi
if [ "$DOEXIT" ]; then
diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js
index 025cdb0fcd6..4cc50e51ae6 100644
--- a/core/js/setupchecks.js
+++ b/core/js/setupchecks.js
@@ -273,7 +273,7 @@
}
}
- var minimumSeconds = 15768000;
+ var minimumSeconds = 15552000;
if(isNaN(transportSecurityValidity) || transportSecurityValidity <= (minimumSeconds - 1)) {
messages.push({
msg: t('core', 'The "Strict-Transport-Security" HTTP header is not configured to at least "{seconds}" seconds. For enhanced security we recommend enabling HSTS as described in our <a href="{docUrl}" rel="noreferrer">security tips</a>.', {'seconds': minimumSeconds, docUrl: '#admin-tips'}),
diff --git a/core/js/tests/specs/setupchecksSpec.js b/core/js/tests/specs/setupchecksSpec.js
index 6dd8657a077..4931ca990da 100644
--- a/core/js/tests/specs/setupchecksSpec.js
+++ b/core/js/tests/specs/setupchecksSpec.js
@@ -542,7 +542,7 @@ describe('OC.SetupChecks tests', function() {
async.done(function( data, s, x ){
expect(data).toEqual([{
- msg: 'The "Strict-Transport-Security" HTTP header is not configured to at least "15768000" seconds. For enhanced security we recommend enabling HSTS as described in our <a href="#admin-tips" rel="noreferrer">security tips</a>.',
+ msg: 'The "Strict-Transport-Security" HTTP header is not configured to at least "15552000" seconds. For enhanced security we recommend enabling HSTS as described in our <a href="#admin-tips" rel="noreferrer">security tips</a>.',
type: OC.SetupChecks.MESSAGE_TYPE_WARNING
}]);
done();
@@ -555,7 +555,7 @@ describe('OC.SetupChecks tests', function() {
suite.server.requests[0].respond(200,
{
- 'Strict-Transport-Security': 'max-age=15767999',
+ 'Strict-Transport-Security': 'max-age=15551999',
'X-XSS-Protection': '1; mode=block',
'X-Content-Type-Options': 'nosniff',
'X-Robots-Tag': 'none',
@@ -567,7 +567,7 @@ describe('OC.SetupChecks tests', function() {
async.done(function( data, s, x ){
expect(data).toEqual([{
- msg: 'The "Strict-Transport-Security" HTTP header is not configured to at least "15768000" seconds. For enhanced security we recommend enabling HSTS as described in our <a href="#admin-tips" rel="noreferrer">security tips</a>.',
+ msg: 'The "Strict-Transport-Security" HTTP header is not configured to at least "15552000" seconds. For enhanced security we recommend enabling HSTS as described in our <a href="#admin-tips" rel="noreferrer">security tips</a>.',
type: OC.SetupChecks.MESSAGE_TYPE_WARNING
}]);
done();
@@ -592,7 +592,7 @@ describe('OC.SetupChecks tests', function() {
async.done(function( data, s, x ){
expect(data).toEqual([{
- msg: 'The "Strict-Transport-Security" HTTP header is not configured to at least "15768000" seconds. For enhanced security we recommend enabling HSTS as described in our <a href="#admin-tips" rel="noreferrer">security tips</a>.',
+ msg: 'The "Strict-Transport-Security" HTTP header is not configured to at least "15552000" seconds. For enhanced security we recommend enabling HSTS as described in our <a href="#admin-tips" rel="noreferrer">security tips</a>.',
type: OC.SetupChecks.MESSAGE_TYPE_WARNING
}]);
done();
diff --git a/lib/private/share/share.php b/lib/private/share/share.php
index 3dcfa14079b..c6f7258c536 100644
--- a/lib/private/share/share.php
+++ b/lib/private/share/share.php
@@ -1265,7 +1265,7 @@ class Share extends Constants {
/**
* validate expiration date if it meets all constraints
*
- * @param string $expireDate well formate date string, e.g. "DD-MM-YYYY"
+ * @param string $expireDate well formatted date string, e.g. "DD-MM-YYYY"
* @param string $shareTime timestamp when the file was shared
* @param string $itemType
* @param string $itemSource
diff --git a/settings/Controller/AppSettingsController.php b/settings/Controller/AppSettingsController.php
index cc69d3130d9..6c86cbf2cd3 100644
--- a/settings/Controller/AppSettingsController.php
+++ b/settings/Controller/AppSettingsController.php
@@ -259,6 +259,12 @@ class AppSettingsController extends Controller {
$apps = array_filter($apps, function ($app) use ($installedApps) {
return !in_array($app['id'], $installedApps);
});
+
+ // show tooltip if app is downloaded from remote server
+ $inactiveApps = $this->getInactiveApps();
+ foreach ($apps as &$app) {
+ $app['needsDownload'] = !in_array($app['id'], $inactiveApps);
+ }
}
// sort by score
@@ -319,4 +325,23 @@ class AppSettingsController extends Controller {
});
return $apps;
}
+
+ /**
+ * @return array
+ */
+ private function getInactiveApps() {
+ $inactiveApps = \OC_App::listAllApps(true, false, $this->ocsClient);
+ $inactiveApps = array_filter($inactiveApps,
+ function ($app) {
+ return !$app['active'];
+ });
+ $inactiveApps = array_map(function($app) {
+ if (isset($app['ocsid'])) {
+ return $app['ocsid'];
+ }
+ return $app['id'];
+ }, $inactiveApps);
+ return $inactiveApps;
+ }
+
}
diff --git a/settings/js/apps.js b/settings/js/apps.js
index e052a9ee9d3..1b687012815 100644
--- a/settings/js/apps.js
+++ b/settings/js/apps.js
@@ -119,6 +119,8 @@ OC.Settings.Apps = OC.Settings.Apps || {
$('#apps-list-empty').removeClass('hidden').find('h2').text(t('settings', 'No apps found for your version'));
}
+ $('.enable.needs-download').tipsy({fallback: t('settings', 'The app will be downloaded from the app store')});
+
$('.app-level .official').tipsy({fallback: t('settings', 'Official apps are developed by and within the ownCloud community. They offer functionality central to ownCloud and are ready for production use.')});
$('.app-level .approved').tipsy({fallback: t('settings', 'Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use.')});
$('.app-level .experimental').tipsy({fallback: t('settings', 'This app is not checked for security issues and is new or known to be unstable. Install at your own risk.')});
diff --git a/settings/js/users/groups.js b/settings/js/users/groups.js
index 27c41884504..36ebbd2fa6e 100644
--- a/settings/js/users/groups.js
+++ b/settings/js/users/groups.js
@@ -31,7 +31,7 @@ GroupList = {
setUserCount: function (groupLiElement, usercount) {
if ($sortGroupBy !== 1) {
- // If we don't sort by group count we dont display them either
+ // If we don't sort by group count we don't display them either
return;
}
diff --git a/settings/templates/apps.php b/settings/templates/apps.php
index 47d1eff463e..ce6dcef842c 100644
--- a/settings/templates/apps.php
+++ b/settings/templates/apps.php
@@ -134,7 +134,7 @@ script(
<br />
<input type="hidden" id="group_select" title="<?php p($l->t('All')); ?>" style="width: 200px">
{{else}}
- <input class="enable" type="submit" data-appid="{{id}}" data-active="false" {{#unless canInstall}}disabled="disabled"{{/unless}} value="<?php p($l->t("Enable"));?>"/>
+ <input class="enable{{#if needsDownload}} needs-download{{/if}}" type="submit" data-appid="{{id}}" data-active="false" {{#unless canInstall}}disabled="disabled"{{/unless}} value="<?php p($l->t("Enable"));?>"/>
{{/if}}
{{#if canUnInstall}}
<input class="uninstall" type="submit" value="<?php p($l->t('Uninstall App')); ?>" data-appid="{{id}}" />
diff --git a/tests/core/command/encryption/changekeystorageroottest.php b/tests/core/command/encryption/changekeystorageroottest.php
index 6cb52cdea99..2a1f48983f1 100644
--- a/tests/core/command/encryption/changekeystorageroottest.php
+++ b/tests/core/command/encryption/changekeystorageroottest.php
@@ -74,9 +74,9 @@ class ChangeKeyStorageRootTest extends TestCase {
$this->outputInterface = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
$this->userInterface = $this->getMock('\OCP\UserInterface');
- $outputFormaterInterface = $this->getMock('Symfony\Component\Console\Formatter\OutputFormatterInterface');
+ $outputFormatterInterface = $this->getMock('Symfony\Component\Console\Formatter\OutputFormatterInterface');
$this->outputInterface->expects($this->any())->method('getFormatter')
- ->willReturn($outputFormaterInterface);
+ ->willReturn($outputFormatterInterface);
$this->changeKeyStorageRoot = new ChangeKeyStorageRoot(
$this->view,