summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/security/certificatemanager.php15
-rw-r--r--lib/private/server.php4
-rw-r--r--lib/private/util.php1
-rw-r--r--tests/lib/security/certificatemanager.php6
4 files changed, 22 insertions, 4 deletions
diff --git a/lib/private/security/certificatemanager.php b/lib/private/security/certificatemanager.php
index d61c7f29327..4d470f69a66 100644
--- a/lib/private/security/certificatemanager.php
+++ b/lib/private/security/certificatemanager.php
@@ -27,6 +27,7 @@ namespace OC\Security;
use OC\Files\Filesystem;
use OCP\ICertificateManager;
+use OCP\IConfig;
/**
* Manage trusted certificates for users
@@ -43,12 +44,19 @@ class CertificateManager implements ICertificateManager {
protected $view;
/**
+ * @var IConfig
+ */
+ protected $config;
+
+ /**
* @param string $uid
* @param \OC\Files\View $view relative zu data/
+ * @param IConfig $config
*/
- public function __construct($uid, \OC\Files\View $view) {
+ public function __construct($uid, \OC\Files\View $view, IConfig $config) {
$this->uid = $uid;
$this->view = $view;
+ $this->config = $config;
}
/**
@@ -57,6 +65,11 @@ class CertificateManager implements ICertificateManager {
* @return \OCP\ICertificate[]
*/
public function listCertificates() {
+
+ if (!$this->config->getSystemValue('installed', false)) {
+ return array();
+ }
+
$path = $this->getPathToCertificates() . 'uploads/';
if (!$this->view->is_dir($path)) {
return array();
diff --git a/lib/private/server.php b/lib/private/server.php
index 6aab3d26df4..a741f33eb3d 100644
--- a/lib/private/server.php
+++ b/lib/private/server.php
@@ -339,7 +339,7 @@ class Server extends SimpleContainer implements IServerContainer {
$uid = $user ? $user : null;
return new ClientService(
$c->getConfig(),
- new \OC\Security\CertificateManager($uid, new View())
+ new \OC\Security\CertificateManager($uid, new View(), $c->getConfig())
);
});
$this->registerService('EventLogger', function (Server $c) {
@@ -852,7 +852,7 @@ class Server extends SimpleContainer implements IServerContainer {
}
$userId = $user->getUID();
}
- return new CertificateManager($userId, new View());
+ return new CertificateManager($userId, new View(), $this->getConfig());
}
/**
diff --git a/lib/private/util.php b/lib/private/util.php
index edd375b5c36..0fda55496dc 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -1145,6 +1145,7 @@ class OC_Util {
* @throws \OC\HintException If the test file can't get written.
*/
public function isHtaccessWorking(\OCP\IConfig $config) {
+
if (\OC::$CLI || !$config->getSystemValue('check_for_working_htaccess', true)) {
return true;
}
diff --git a/tests/lib/security/certificatemanager.php b/tests/lib/security/certificatemanager.php
index fab1c208443..092f9efdd18 100644
--- a/tests/lib/security/certificatemanager.php
+++ b/tests/lib/security/certificatemanager.php
@@ -26,7 +26,11 @@ class CertificateManagerTest extends \Test\TestCase {
\OC\Files\Filesystem::tearDown();
\OC_Util::setupFS($this->username);
- $this->certificateManager = new CertificateManager($this->username, new \OC\Files\View());
+ $config = $this->getMock('OCP\IConfig');
+ $config->expects($this->any())->method('getSystemValue')
+ ->with('installed', false)->willReturn(true);
+
+ $this->certificateManager = new CertificateManager($this->username, new \OC\Files\View(), $config);
}
protected function tearDown() {