diff options
author | Robin Appelman <icewind@owncloud.com> | 2014-08-14 14:24:10 +0200 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2014-08-31 10:45:10 +0200 |
commit | ecdbf006284fa4907b54f58ac6ba59f54b9738a5 (patch) | |
tree | 387c47f718d19d871a2430ac5bf272cd5f6ab755 /apps/files_external/ajax | |
parent | 23137f4798cb89b188329050a85f2f3a706947c5 (diff) | |
download | nextcloud-server-ecdbf006284fa4907b54f58ac6ba59f54b9738a5.tar.gz nextcloud-server-ecdbf006284fa4907b54f58ac6ba59f54b9738a5.zip |
Move certificate management code to core
Diffstat (limited to 'apps/files_external/ajax')
-rw-r--r-- | apps/files_external/ajax/addRootCertificate.php | 34 | ||||
-rw-r--r-- | apps/files_external/ajax/removeRootCertificate.php | 10 |
2 files changed, 11 insertions, 33 deletions
diff --git a/apps/files_external/ajax/addRootCertificate.php b/apps/files_external/ajax/addRootCertificate.php index fcd3a617ada..38b18605945 100644 --- a/apps/files_external/ajax/addRootCertificate.php +++ b/apps/files_external/ajax/addRootCertificate.php @@ -3,8 +3,8 @@ OCP\JSON::checkAppEnabled('files_external'); OCP\JSON::callCheck(); -if ( ! ($filename = $_FILES['rootcert_import']['name']) ) { - header('Location:' . OCP\Util::linkToRoute( "settings_personal" )); +if (!($filename = $_FILES['rootcert_import']['name'])) { + header('Location:' . OCP\Util::linkToRoute("settings_personal")); exit; } @@ -13,33 +13,13 @@ $data = fread($fh, filesize($_FILES['rootcert_import']['tmp_name'])); fclose($fh); $filename = $_FILES['rootcert_import']['name']; -$view = new \OC\Files\View('/'.\OCP\User::getUser().'/files_external/uploads'); -if (!$view->file_exists('')) { - $view->mkdir(''); -} - -$isValid = openssl_pkey_get_public($data); - -//maybe it was just the wrong file format, try to convert it... -if ($isValid == false) { - $data = chunk_split(base64_encode($data), 64, "\n"); - $data = "-----BEGIN CERTIFICATE-----\n".$data."-----END CERTIFICATE-----\n"; - $isValid = openssl_pkey_get_public($data); -} +$certificateManager = \OC::$server->getCertificateManager(); -// add the certificate if it could be verified -if ( $isValid ) { - // disable proxy to prevent multiple fopen calls - $proxyStatus = \OC_FileProxy::$enabled; - \OC_FileProxy::$enabled = false; - $view->file_put_contents($filename, $data); - OC_Mount_Config::createCertificateBundle(); - \OC_FileProxy::$enabled = $proxyStatus; -} else { +if (!$certificateManager->addCertificate($data, $filename)) { OCP\Util::writeLog('files_external', - 'Couldn\'t import SSL root certificate ('.$filename.'), allowed formats: PEM and DER', - OCP\Util::WARN); + 'Couldn\'t import SSL root certificate (' . $filename . '), allowed formats: PEM and DER', + OCP\Util::WARN); } -header('Location:' . OCP\Util::linkToRoute( "settings_personal" )); +header('Location:' . OCP\Util::linkToRoute("settings_personal")); exit; diff --git a/apps/files_external/ajax/removeRootCertificate.php b/apps/files_external/ajax/removeRootCertificate.php index 664b3937e97..e6795800e03 100644 --- a/apps/files_external/ajax/removeRootCertificate.php +++ b/apps/files_external/ajax/removeRootCertificate.php @@ -4,10 +4,8 @@ OCP\JSON::checkAppEnabled('files_external'); OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); -$view = \OCP\Files::getStorage("files_external"); -$file = 'uploads/'.ltrim($_POST['cert'], "/\\."); - -if ( $view->file_exists($file) ) { - $view->unlink($file); - OC_Mount_Config::createCertificateBundle(); +$name = $_POST['cert']; +$certificateManager = \OC::$server->getCertificateManager(); +if (\OC\Files\Filesystem::isValidPath($name)) { + $certificateManager->removeCertificate($name); } |