[Pkg-owncloud-commits] [owncloud] 01/23: Adding exception handling for ServerNotAvailableException - refs #17192

David Prévot taffit at moszumanska.debian.org
Tue Jul 7 12:42:51 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch stable8
in repository owncloud.

commit 283f8e7e6951ca6b6454d2bdc81c44b251a7981f
Author: Thomas Müller <thomas.mueller at tmit.eu>
Date:   Mon Jun 29 12:04:41 2015 +0200

    Adding exception handling for ServerNotAvailableException - refs #17192
---
 lib/private/connector/sabre/auth.php | 51 +++++++++++++++++++++++-------------
 1 file changed, 33 insertions(+), 18 deletions(-)

diff --git a/lib/private/connector/sabre/auth.php b/lib/private/connector/sabre/auth.php
index 5a32a91..2255b2c 100644
--- a/lib/private/connector/sabre/auth.php
+++ b/lib/private/connector/sabre/auth.php
@@ -30,7 +30,13 @@
  */
 namespace OC\Connector\Sabre;
 
-class Auth extends \Sabre\DAV\Auth\Backend\AbstractBasic {
+use Exception;
+use Sabre\DAV\Auth\Backend\AbstractBasic;
+use Sabre\DAV\Exception\NotAuthenticated;
+use Sabre\DAV\Exception\ServiceUnavailable;
+use Sabre\DAV\Server;
+
+class Auth extends AbstractBasic {
 	const DAV_AUTHENTICATED = 'AUTHENTICATED_TO_DAV_BACKEND';
 
 	/**
@@ -69,7 +75,7 @@ class Auth extends \Sabre\DAV\Auth\Backend\AbstractBasic {
 		} else {
 			\OC_Util::setUpFS(); //login hooks may need early access to the filesystem
 			if(\OC_User::login($username, $password)) {
-			        // make sure we use owncloud's internal username here
+			        // make sure we use ownCloud's internal username here
 			        // and not the HTTP auth supplied one, see issue #14048
 			        $ocUser = \OC_User::getUser();
 				\OC_Util::setUpFS($ocUser);
@@ -99,29 +105,38 @@ class Auth extends \Sabre\DAV\Auth\Backend\AbstractBasic {
 	}
 
 	/**
-	  * Override function here. We want to cache authentication cookies
-	  * in the syncing client to avoid HTTP-401 roundtrips.
-	  * If the sync client supplies the cookies, then OC_User::isLoggedIn()
-	  * will return true and we can see this WebDAV request as already authenticated,
-	  * even if there are no HTTP Basic Auth headers.
-	  * In other case, just fallback to the parent implementation.
-	  *
-	  * @param \Sabre\DAV\Server $server
-	  * @param $realm
-	  * @return bool
-	  */
-	public function authenticate(\Sabre\DAV\Server $server, $realm) {
+	 * Override function here. We want to cache authentication cookies
+	 * in the syncing client to avoid HTTP-401 roundtrips.
+	 * If the sync client supplies the cookies, then OC_User::isLoggedIn()
+	 * will return true and we can see this WebDAV request as already authenticated,
+	 * even if there are no HTTP Basic Auth headers.
+	 * In other case, just fallback to the parent implementation.
+	 *
+	 * @param Server $server
+	 * @param string $realm
+	 * @return bool
+	 * @throws ServiceUnavailable
+	 */
+	public function authenticate(Server $server, $realm) {
 
-		$result = $this->auth($server, $realm);
-		return $result;
+		try {
+			$result = $this->auth($server, $realm);
+			return $result;
+		} catch (NotAuthenticated $e) {
+			throw $e;
+		} catch (Exception $e) {
+			$class = get_class($e);
+			$msg = $e->getMessage();
+			throw new ServiceUnavailable("$class: $msg");
+		}
     }
 
 	/**
-	 * @param \Sabre\DAV\Server $server
+	 * @param Server $server
 	 * @param $realm
 	 * @return bool
 	 */
-	private function auth(\Sabre\DAV\Server $server, $realm) {
+	private function auth(Server $server, $realm) {
 		if (\OC_User::handleApacheAuth() ||
 			(\OC_User::isLoggedIn() && is_null(\OC::$server->getSession()->get(self::DAV_AUTHENTICATED)))
 		) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list