diff options
-rw-r--r-- | lib/private/security/certificatemanager.php | 15 | ||||
-rw-r--r-- | lib/private/server.php | 4 | ||||
-rw-r--r-- | lib/private/util.php | 1 | ||||
-rw-r--r-- | tests/lib/security/certificatemanager.php | 6 |
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() { |