summaryrefslogtreecommitdiffstats
path: root/apps/files_sharing
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2015-08-30 19:13:01 +0200
committerThomas Müller <thomas.mueller@tmit.eu>2015-10-16 13:17:12 +0200
commitf2889dc6e4aa701f36081b314f38f620cbb1fc88 (patch)
tree8969d61c3dc2a71cd8eb1b745d88fc10782e1d75 /apps/files_sharing
parent4b9ec49285081137195c5852682b127a37ea8bfe (diff)
downloadnextcloud-server-f2889dc6e4aa701f36081b314f38f620cbb1fc88.tar.gz
nextcloud-server-f2889dc6e4aa701f36081b314f38f620cbb1fc88.zip
Consolidate webdav code - move all to one app
Diffstat (limited to 'apps/files_sharing')
-rw-r--r--apps/files_sharing/appinfo/info.xml1
-rw-r--r--apps/files_sharing/lib/connector/publicauth.php108
-rw-r--r--apps/files_sharing/publicwebdav.php74
3 files changed, 0 insertions, 183 deletions
diff --git a/apps/files_sharing/appinfo/info.xml b/apps/files_sharing/appinfo/info.xml
index 28c64cbb1b4..cf69050a9f2 100644
--- a/apps/files_sharing/appinfo/info.xml
+++ b/apps/files_sharing/appinfo/info.xml
@@ -17,6 +17,5 @@ Turning the feature off removes shared files and folders on the server for all s
</types>
<public>
<files>public.php</files>
- <webdav>publicwebdav.php</webdav>
</public>
</info>
diff --git a/apps/files_sharing/lib/connector/publicauth.php b/apps/files_sharing/lib/connector/publicauth.php
deleted file mode 100644
index 4ac355180fc..00000000000
--- a/apps/files_sharing/lib/connector/publicauth.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-/**
- * @author Björn Schießle <schiessle@owncloud.com>
- * @author Lukas Reschke <lukas@owncloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <icewind@owncloud.com>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- * @author Vincent Petry <pvince81@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-namespace OCA\Files_Sharing\Connector;
-
-class PublicAuth extends \Sabre\DAV\Auth\Backend\AbstractBasic {
-
- /**
- * @var \OCP\IConfig
- */
- private $config;
-
- private $share;
-
- /**
- * @param \OCP\IConfig $config
- */
- public function __construct($config) {
- $this->config = $config;
- }
-
- /**
- * Validates a username and password
- *
- * This method should return true or false depending on if login
- * succeeded.
- *
- * @param string $username
- * @param string $password
- *
- * @return bool
- */
- protected function validateUserPass($username, $password) {
- $linkItem = \OCP\Share::getShareByToken($username, false);
- \OC_User::setIncognitoMode(true);
- $this->share = $linkItem;
- if (!$linkItem) {
- return false;
- }
-
- // check if the share is password protected
- if (isset($linkItem['share_with'])) {
- if ($linkItem['share_type'] == \OCP\Share::SHARE_TYPE_LINK) {
- // Check Password
- $newHash = '';
- if(\OC::$server->getHasher()->verify($password, $linkItem['share_with'], $newHash)) {
- /**
- * FIXME: Migrate old hashes to new hash format
- * Due to the fact that there is no reasonable functionality to update the password
- * of an existing share no migration is yet performed there.
- * The only possibility is to update the existing share which will result in a new
- * share ID and is a major hack.
- *
- * In the future the migration should be performed once there is a proper method
- * to update the share's password. (for example `$share->updatePassword($password)`
- *
- * @link https://github.com/owncloud/core/issues/10671
- */
- if(!empty($newHash)) {
-
- }
- return true;
- } else if (\OC::$server->getSession()->exists('public_link_authenticated')
- && \OC::$server->getSession()->get('public_link_authenticated') === $linkItem['id']) {
- return true;
- } else {
- return false;
- }
- } else if ($linkItem['share_type'] == \OCP\Share::SHARE_TYPE_REMOTE) {
- return true;
- } else {
- return false;
- }
- } else {
- return true;
- }
- }
-
- /**
- * @return array
- */
- public function getShare() {
- return $this->share;
- }
-}
diff --git a/apps/files_sharing/publicwebdav.php b/apps/files_sharing/publicwebdav.php
deleted file mode 100644
index 7d96c8e8c97..00000000000
--- a/apps/files_sharing/publicwebdav.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * @author Joas Schilling <nickvergessen@owncloud.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Robin Appelman <icewind@owncloud.com>
- * @author Vincent Petry <pvince81@owncloud.com>
- *
- * @copyright Copyright (c) 2015, ownCloud, Inc.
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-// load needed apps
-$RUNTIME_APPTYPES = array('filesystem', 'authentication', 'logging');
-
-OC_App::loadApps($RUNTIME_APPTYPES);
-
-OC_Util::obEnd();
-
-// Backends
-$authBackend = new OCA\Files_Sharing\Connector\PublicAuth(\OC::$server->getConfig());
-
-$serverFactory = new \OC\Connector\Sabre\ServerFactory(
- \OC::$server->getConfig(),
- \OC::$server->getLogger(),
- \OC::$server->getDatabaseConnection(),
- \OC::$server->getUserSession(),
- \OC::$server->getMountManager(),
- \OC::$server->getTagManager(),
- \OC::$server->getEventDispatcher()
-);
-
-$requestUri = \OC::$server->getRequest()->getRequestUri();
-
-$server = $serverFactory->createServer($baseuri, $requestUri, $authBackend, function () use ($authBackend) {
- $isAjax = (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest');
- if (OCA\Files_Sharing\Helper::isOutgoingServer2serverShareEnabled() === false && !$isAjax) {
- // this is what is thrown when trying to access a non-existing share
- throw new \Sabre\DAV\Exception\NotAuthenticated();
- }
-
- $share = $authBackend->getShare();
- $rootShare = \OCP\Share::resolveReShare($share);
- $owner = $rootShare['uid_owner'];
- $isWritable = $share['permissions'] & (\OCP\Constants::PERMISSION_UPDATE | \OCP\Constants::PERMISSION_CREATE);
- $fileId = $share['file_source'];
-
- if (!$isWritable) {
- \OC\Files\Filesystem::addStorageWrapper('readonly', function ($mountPoint, $storage) {
- return new \OC\Files\Storage\Wrapper\PermissionsMask(array('storage' => $storage, 'mask' => \OCP\Constants::PERMISSION_READ + \OCP\Constants::PERMISSION_SHARE));
- });
- }
-
- OC_Util::setupFS($owner);
- $ownerView = \OC\Files\Filesystem::getView();
- $path = $ownerView->getPath($fileId);
-
- return new \OC\Files\View($ownerView->getAbsolutePath($path));
-});
-
-// And off we go!
-$server->exec();