Passed
Push — master ( 078203...c81798 )
by Joas
14:40 queued 14s
created
apps/files/lib/Activity/Helper.php 1 patch
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -26,60 +26,60 @@
 block discarded – undo
26 26
 use OCP\ITagManager;
27 27
 
28 28
 class Helper {
29
-	/** If a user has a lot of favorites the query might get too slow and long */
30
-	public const FAVORITE_LIMIT = 50;
29
+    /** If a user has a lot of favorites the query might get too slow and long */
30
+    public const FAVORITE_LIMIT = 50;
31 31
 
32
-	/** @var ITagManager */
33
-	protected $tagManager;
32
+    /** @var ITagManager */
33
+    protected $tagManager;
34 34
 
35
-	/**
36
-	 * @param ITagManager $tagManager
37
-	 */
38
-	public function __construct(ITagManager $tagManager) {
39
-		$this->tagManager = $tagManager;
40
-	}
35
+    /**
36
+     * @param ITagManager $tagManager
37
+     */
38
+    public function __construct(ITagManager $tagManager) {
39
+        $this->tagManager = $tagManager;
40
+    }
41 41
 
42
-	/**
43
-	 * Returns an array with the favorites
44
-	 *
45
-	 * @param string $user
46
-	 * @return array
47
-	 * @throws \RuntimeException when too many or no favorites where found
48
-	 */
49
-	public function getFavoriteFilePaths($user) {
50
-		$tags = $this->tagManager->load('files', [], false, $user);
51
-		$favorites = $tags->getFavorites();
42
+    /**
43
+     * Returns an array with the favorites
44
+     *
45
+     * @param string $user
46
+     * @return array
47
+     * @throws \RuntimeException when too many or no favorites where found
48
+     */
49
+    public function getFavoriteFilePaths($user) {
50
+        $tags = $this->tagManager->load('files', [], false, $user);
51
+        $favorites = $tags->getFavorites();
52 52
 
53
-		if (empty($favorites)) {
54
-			throw new \RuntimeException('No favorites', 1);
55
-		} elseif (isset($favorites[self::FAVORITE_LIMIT])) {
56
-			throw new \RuntimeException('Too many favorites', 2);
57
-		}
53
+        if (empty($favorites)) {
54
+            throw new \RuntimeException('No favorites', 1);
55
+        } elseif (isset($favorites[self::FAVORITE_LIMIT])) {
56
+            throw new \RuntimeException('Too many favorites', 2);
57
+        }
58 58
 
59
-		// Can not DI because the user is not known on instantiation
60
-		$rootFolder = \OC::$server->getUserFolder($user);
61
-		$folders = $items = [];
62
-		foreach ($favorites as $favorite) {
63
-			$nodes = $rootFolder->getById($favorite);
64
-			if (!empty($nodes)) {
65
-				/** @var \OCP\Files\Node $node */
66
-				$node = array_shift($nodes);
67
-				$path = substr($node->getPath(), strlen($user . '/files/'));
59
+        // Can not DI because the user is not known on instantiation
60
+        $rootFolder = \OC::$server->getUserFolder($user);
61
+        $folders = $items = [];
62
+        foreach ($favorites as $favorite) {
63
+            $nodes = $rootFolder->getById($favorite);
64
+            if (!empty($nodes)) {
65
+                /** @var \OCP\Files\Node $node */
66
+                $node = array_shift($nodes);
67
+                $path = substr($node->getPath(), strlen($user . '/files/'));
68 68
 
69
-				$items[] = $path;
70
-				if ($node instanceof Folder) {
71
-					$folders[] = $path;
72
-				}
73
-			}
74
-		}
69
+                $items[] = $path;
70
+                if ($node instanceof Folder) {
71
+                    $folders[] = $path;
72
+                }
73
+            }
74
+        }
75 75
 
76
-		if (empty($items)) {
77
-			throw new \RuntimeException('No favorites', 1);
78
-		}
76
+        if (empty($items)) {
77
+            throw new \RuntimeException('No favorites', 1);
78
+        }
79 79
 
80
-		return [
81
-			'items' => $items,
82
-			'folders' => $folders,
83
-		];
84
-	}
80
+        return [
81
+            'items' => $items,
82
+            'folders' => $folders,
83
+        ];
84
+    }
85 85
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/Exception/InvalidPath.php 1 patch
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -26,51 +26,51 @@
 block discarded – undo
26 26
 use Sabre\DAV\Exception;
27 27
 
28 28
 class InvalidPath extends Exception {
29
-	public const NS_OWNCLOUD = 'http://owncloud.org/ns';
29
+    public const NS_OWNCLOUD = 'http://owncloud.org/ns';
30 30
 
31
-	/**
32
-	 * @var bool
33
-	 */
34
-	private $retry;
31
+    /**
32
+     * @var bool
33
+     */
34
+    private $retry;
35 35
 
36
-	/**
37
-	 * @param string $message
38
-	 * @param bool $retry
39
-	 * @param \Exception|null $previous
40
-	 */
41
-	public function __construct($message, $retry = false, \Exception $previous = null) {
42
-		parent::__construct($message, 0, $previous);
43
-		$this->retry = $retry;
44
-	}
36
+    /**
37
+     * @param string $message
38
+     * @param bool $retry
39
+     * @param \Exception|null $previous
40
+     */
41
+    public function __construct($message, $retry = false, \Exception $previous = null) {
42
+        parent::__construct($message, 0, $previous);
43
+        $this->retry = $retry;
44
+    }
45 45
 
46
-	/**
47
-	 * Returns the HTTP status code for this exception
48
-	 *
49
-	 * @return int
50
-	 */
51
-	public function getHTTPCode() {
52
-		return 400;
53
-	}
46
+    /**
47
+     * Returns the HTTP status code for this exception
48
+     *
49
+     * @return int
50
+     */
51
+    public function getHTTPCode() {
52
+        return 400;
53
+    }
54 54
 
55
-	/**
56
-	 * This method allows the exception to include additional information
57
-	 * into the WebDAV error response
58
-	 *
59
-	 * @param \Sabre\DAV\Server $server
60
-	 * @param \DOMElement $errorNode
61
-	 * @return void
62
-	 */
63
-	public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
55
+    /**
56
+     * This method allows the exception to include additional information
57
+     * into the WebDAV error response
58
+     *
59
+     * @param \Sabre\DAV\Server $server
60
+     * @param \DOMElement $errorNode
61
+     * @return void
62
+     */
63
+    public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
64 64
 
65
-		// set ownCloud namespace
66
-		$errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
65
+        // set ownCloud namespace
66
+        $errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
67 67
 
68
-		// adding the retry node
69
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
70
-		$errorNode->appendChild($error);
68
+        // adding the retry node
69
+        $error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
70
+        $errorNode->appendChild($error);
71 71
 
72
-		// adding the message node
73
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
74
-		$errorNode->appendChild($error);
75
-	}
72
+        // adding the message node
73
+        $error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
74
+        $errorNode->appendChild($error);
75
+    }
76 76
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/Exception/PasswordLoginForbidden.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -29,26 +29,26 @@
 block discarded – undo
29 29
 use Sabre\DAV\Server;
30 30
 
31 31
 class PasswordLoginForbidden extends NotAuthenticated {
32
-	public const NS_OWNCLOUD = 'http://owncloud.org/ns';
32
+    public const NS_OWNCLOUD = 'http://owncloud.org/ns';
33 33
 
34
-	public function getHTTPCode() {
35
-		return 401;
36
-	}
34
+    public function getHTTPCode() {
35
+        return 401;
36
+    }
37 37
 
38
-	/**
39
-	 * This method allows the exception to include additional information
40
-	 * into the WebDAV error response
41
-	 *
42
-	 * @param Server $server
43
-	 * @param DOMElement $errorNode
44
-	 * @return void
45
-	 */
46
-	public function serialize(Server $server, DOMElement $errorNode) {
38
+    /**
39
+     * This method allows the exception to include additional information
40
+     * into the WebDAV error response
41
+     *
42
+     * @param Server $server
43
+     * @param DOMElement $errorNode
44
+     * @return void
45
+     */
46
+    public function serialize(Server $server, DOMElement $errorNode) {
47 47
 
48
-		// set ownCloud namespace
49
-		$errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
48
+        // set ownCloud namespace
49
+        $errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
50 50
 
51
-		$error = $errorNode->ownerDocument->createElementNS('o:', 'o:hint', 'password login forbidden');
52
-		$errorNode->appendChild($error);
53
-	}
51
+        $error = $errorNode->ownerDocument->createElementNS('o:', 'o:hint', 'password login forbidden');
52
+        $errorNode->appendChild($error);
53
+    }
54 54
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/Exception/Forbidden.php 1 patch
Indentation   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -23,42 +23,42 @@
 block discarded – undo
23 23
 namespace OCA\DAV\Connector\Sabre\Exception;
24 24
 
25 25
 class Forbidden extends \Sabre\DAV\Exception\Forbidden {
26
-	public const NS_OWNCLOUD = 'http://owncloud.org/ns';
26
+    public const NS_OWNCLOUD = 'http://owncloud.org/ns';
27 27
 
28
-	/**
29
-	 * @var bool
30
-	 */
31
-	private $retry;
28
+    /**
29
+     * @var bool
30
+     */
31
+    private $retry;
32 32
 
33
-	/**
34
-	 * @param string $message
35
-	 * @param bool $retry
36
-	 * @param \Exception $previous
37
-	 */
38
-	public function __construct($message, $retry = false, \Exception $previous = null) {
39
-		parent::__construct($message, 0, $previous);
40
-		$this->retry = $retry;
41
-	}
33
+    /**
34
+     * @param string $message
35
+     * @param bool $retry
36
+     * @param \Exception $previous
37
+     */
38
+    public function __construct($message, $retry = false, \Exception $previous = null) {
39
+        parent::__construct($message, 0, $previous);
40
+        $this->retry = $retry;
41
+    }
42 42
 
43
-	/**
44
-	 * This method allows the exception to include additional information
45
-	 * into the WebDAV error response
46
-	 *
47
-	 * @param \Sabre\DAV\Server $server
48
-	 * @param \DOMElement $errorNode
49
-	 * @return void
50
-	 */
51
-	public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
43
+    /**
44
+     * This method allows the exception to include additional information
45
+     * into the WebDAV error response
46
+     *
47
+     * @param \Sabre\DAV\Server $server
48
+     * @param \DOMElement $errorNode
49
+     * @return void
50
+     */
51
+    public function serialize(\Sabre\DAV\Server $server,\DOMElement $errorNode) {
52 52
 
53
-		// set ownCloud namespace
54
-		$errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
53
+        // set ownCloud namespace
54
+        $errorNode->setAttribute('xmlns:o', self::NS_OWNCLOUD);
55 55
 
56
-		// adding the retry node
57
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
58
-		$errorNode->appendChild($error);
56
+        // adding the retry node
57
+        $error = $errorNode->ownerDocument->createElementNS('o:','o:retry', var_export($this->retry, true));
58
+        $errorNode->appendChild($error);
59 59
 
60
-		// adding the message node
61
-		$error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
62
-		$errorNode->appendChild($error);
63
-	}
60
+        // adding the message node
61
+        $error = $errorNode->ownerDocument->createElementNS('o:','o:reason', $this->getMessage());
62
+        $errorNode->appendChild($error);
63
+    }
64 64
 }
Please login to merge, or discard this patch.
apps/dav/lib/Connector/Sabre/DavAclPlugin.php 1 patch
Indentation   +48 added lines, -48 removed lines patch added patch discarded remove patch
@@ -43,59 +43,59 @@
 block discarded – undo
43 43
  * @package OCA\DAV\Connector\Sabre
44 44
  */
45 45
 class DavAclPlugin extends \Sabre\DAVACL\Plugin {
46
-	public function __construct() {
47
-		$this->hideNodesFromListings = true;
48
-		$this->allowUnauthenticatedAccess = false;
49
-	}
46
+    public function __construct() {
47
+        $this->hideNodesFromListings = true;
48
+        $this->allowUnauthenticatedAccess = false;
49
+    }
50 50
 
51
-	public function checkPrivileges($uri, $privileges, $recursion = self::R_PARENT, $throwExceptions = true) {
52
-		$access = parent::checkPrivileges($uri, $privileges, $recursion, false);
53
-		if ($access === false && $throwExceptions) {
54
-			/** @var INode $node */
55
-			$node = $this->server->tree->getNodeForPath($uri);
51
+    public function checkPrivileges($uri, $privileges, $recursion = self::R_PARENT, $throwExceptions = true) {
52
+        $access = parent::checkPrivileges($uri, $privileges, $recursion, false);
53
+        if ($access === false && $throwExceptions) {
54
+            /** @var INode $node */
55
+            $node = $this->server->tree->getNodeForPath($uri);
56 56
 
57
-			switch (get_class($node)) {
58
-				case AddressBook::class:
59
-					$type = 'Addressbook';
60
-					break;
61
-				default:
62
-					$type = 'Node';
63
-					break;
64
-			}
65
-			throw new NotFound(
66
-				sprintf(
67
-					"%s with name '%s' could not be found",
68
-					$type,
69
-					$node->getName()
70
-				)
71
-			);
72
-		}
57
+            switch (get_class($node)) {
58
+                case AddressBook::class:
59
+                    $type = 'Addressbook';
60
+                    break;
61
+                default:
62
+                    $type = 'Node';
63
+                    break;
64
+            }
65
+            throw new NotFound(
66
+                sprintf(
67
+                    "%s with name '%s' could not be found",
68
+                    $type,
69
+                    $node->getName()
70
+                )
71
+            );
72
+        }
73 73
 
74
-		return $access;
75
-	}
74
+        return $access;
75
+    }
76 76
 
77
-	public function propFind(PropFind $propFind, INode $node) {
78
-		// If the node is neither readable nor writable then fail unless its of
79
-		// the standard user-principal
80
-		if (!($node instanceof User)) {
81
-			$path = $propFind->getPath();
82
-			$readPermissions = $this->checkPrivileges($path, '{DAV:}read', self::R_PARENT, false);
83
-			$writePermissions = $this->checkPrivileges($path, '{DAV:}write', self::R_PARENT, false);
84
-			if ($readPermissions === false && $writePermissions === false) {
85
-				$this->checkPrivileges($path, '{DAV:}read', self::R_PARENT, true);
86
-				$this->checkPrivileges($path, '{DAV:}write', self::R_PARENT, true);
87
-			}
88
-		}
77
+    public function propFind(PropFind $propFind, INode $node) {
78
+        // If the node is neither readable nor writable then fail unless its of
79
+        // the standard user-principal
80
+        if (!($node instanceof User)) {
81
+            $path = $propFind->getPath();
82
+            $readPermissions = $this->checkPrivileges($path, '{DAV:}read', self::R_PARENT, false);
83
+            $writePermissions = $this->checkPrivileges($path, '{DAV:}write', self::R_PARENT, false);
84
+            if ($readPermissions === false && $writePermissions === false) {
85
+                $this->checkPrivileges($path, '{DAV:}read', self::R_PARENT, true);
86
+                $this->checkPrivileges($path, '{DAV:}write', self::R_PARENT, true);
87
+            }
88
+        }
89 89
 
90
-		return parent::propFind($propFind, $node);
91
-	}
90
+        return parent::propFind($propFind, $node);
91
+    }
92 92
 
93
-	public function beforeMethod(RequestInterface $request, ResponseInterface $response) {
94
-		$path = $request->getPath();
93
+    public function beforeMethod(RequestInterface $request, ResponseInterface $response) {
94
+        $path = $request->getPath();
95 95
 
96
-		// prevent the plugin from causing an unneeded overhead for file requests
97
-		if (strpos($path, 'files/') !== 0) {
98
-			parent::beforeMethod($request, $response);
99
-		}
100
-	}
96
+        // prevent the plugin from causing an unneeded overhead for file requests
97
+        if (strpos($path, 'files/') !== 0) {
98
+            parent::beforeMethod($request, $response);
99
+        }
100
+    }
101 101
 }
Please login to merge, or discard this patch.
apps/dav/lib/SystemTag/SystemTagsRelationsCollection.php 1 patch
Indentation   +49 added lines, -49 removed lines patch added patch discarded remove patch
@@ -37,58 +37,58 @@
 block discarded – undo
37 37
 
38 38
 class SystemTagsRelationsCollection extends SimpleCollection {
39 39
 
40
-	/**
41
-	 * SystemTagsRelationsCollection constructor.
42
-	 *
43
-	 * @param ISystemTagManager $tagManager
44
-	 * @param ISystemTagObjectMapper $tagMapper
45
-	 * @param IUserSession $userSession
46
-	 * @param IGroupManager $groupManager
47
-	 * @param EventDispatcherInterface $dispatcher
48
-	 */
49
-	public function __construct(
50
-		ISystemTagManager $tagManager,
51
-		ISystemTagObjectMapper $tagMapper,
52
-		IUserSession $userSession,
53
-		IGroupManager $groupManager,
54
-		EventDispatcherInterface $dispatcher
55
-	) {
56
-		$children = [
57
-			new SystemTagsObjectTypeCollection(
58
-				'files',
59
-				$tagManager,
60
-				$tagMapper,
61
-				$userSession,
62
-				$groupManager,
63
-				function ($name) {
64
-					$nodes = \OC::$server->getUserFolder()->getById((int)$name);
65
-					return !empty($nodes);
66
-				}
67
-			),
68
-		];
40
+    /**
41
+     * SystemTagsRelationsCollection constructor.
42
+     *
43
+     * @param ISystemTagManager $tagManager
44
+     * @param ISystemTagObjectMapper $tagMapper
45
+     * @param IUserSession $userSession
46
+     * @param IGroupManager $groupManager
47
+     * @param EventDispatcherInterface $dispatcher
48
+     */
49
+    public function __construct(
50
+        ISystemTagManager $tagManager,
51
+        ISystemTagObjectMapper $tagMapper,
52
+        IUserSession $userSession,
53
+        IGroupManager $groupManager,
54
+        EventDispatcherInterface $dispatcher
55
+    ) {
56
+        $children = [
57
+            new SystemTagsObjectTypeCollection(
58
+                'files',
59
+                $tagManager,
60
+                $tagMapper,
61
+                $userSession,
62
+                $groupManager,
63
+                function ($name) {
64
+                    $nodes = \OC::$server->getUserFolder()->getById((int)$name);
65
+                    return !empty($nodes);
66
+                }
67
+            ),
68
+        ];
69 69
 
70
-		$event = new SystemTagsEntityEvent(SystemTagsEntityEvent::EVENT_ENTITY);
71
-		$dispatcher->dispatch(SystemTagsEntityEvent::EVENT_ENTITY, $event);
70
+        $event = new SystemTagsEntityEvent(SystemTagsEntityEvent::EVENT_ENTITY);
71
+        $dispatcher->dispatch(SystemTagsEntityEvent::EVENT_ENTITY, $event);
72 72
 
73
-		foreach ($event->getEntityCollections() as $entity => $entityExistsFunction) {
74
-			$children[] = new SystemTagsObjectTypeCollection(
75
-				$entity,
76
-				$tagManager,
77
-				$tagMapper,
78
-				$userSession,
79
-				$groupManager,
80
-				$entityExistsFunction
81
-			);
82
-		}
73
+        foreach ($event->getEntityCollections() as $entity => $entityExistsFunction) {
74
+            $children[] = new SystemTagsObjectTypeCollection(
75
+                $entity,
76
+                $tagManager,
77
+                $tagMapper,
78
+                $userSession,
79
+                $groupManager,
80
+                $entityExistsFunction
81
+            );
82
+        }
83 83
 
84
-		parent::__construct('root', $children);
85
-	}
84
+        parent::__construct('root', $children);
85
+    }
86 86
 
87
-	public function getName() {
88
-		return 'systemtags-relations';
89
-	}
87
+    public function getName() {
88
+        return 'systemtags-relations';
89
+    }
90 90
 
91
-	public function setName($name) {
92
-		throw new Forbidden('Permission denied to rename this collection');
93
-	}
91
+    public function setName($name) {
92
+        throw new Forbidden('Permission denied to rename this collection');
93
+    }
94 94
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/BirthdayCalendar/EnablePlugin.php 1 patch
Indentation   +98 added lines, -98 removed lines patch added patch discarded remove patch
@@ -39,102 +39,102 @@
 block discarded – undo
39 39
  * @package OCA\DAV\CalDAV\BirthdayCalendar
40 40
  */
41 41
 class EnablePlugin extends ServerPlugin {
42
-	public const NS_Nextcloud = 'http://nextcloud.com/ns';
43
-
44
-	/**
45
-	 * @var IConfig
46
-	 */
47
-	protected $config;
48
-
49
-	/**
50
-	 * @var BirthdayService
51
-	 */
52
-	protected $birthdayService;
53
-
54
-	/**
55
-	 * @var Server
56
-	 */
57
-	protected $server;
58
-
59
-	/**
60
-	 * PublishPlugin constructor.
61
-	 *
62
-	 * @param IConfig $config
63
-	 * @param BirthdayService $birthdayService
64
-	 */
65
-	public function __construct(IConfig $config, BirthdayService $birthdayService) {
66
-		$this->config = $config;
67
-		$this->birthdayService = $birthdayService;
68
-	}
69
-
70
-	/**
71
-	 * This method should return a list of server-features.
72
-	 *
73
-	 * This is for example 'versioning' and is added to the DAV: header
74
-	 * in an OPTIONS response.
75
-	 *
76
-	 * @return string[]
77
-	 */
78
-	public function getFeatures() {
79
-		return ['nc-enable-birthday-calendar'];
80
-	}
81
-
82
-	/**
83
-	 * Returns a plugin name.
84
-	 *
85
-	 * Using this name other plugins will be able to access other plugins
86
-	 * using Sabre\DAV\Server::getPlugin
87
-	 *
88
-	 * @return string
89
-	 */
90
-	public function getPluginName() {
91
-		return 'nc-enable-birthday-calendar';
92
-	}
93
-
94
-	/**
95
-	 * This initializes the plugin.
96
-	 *
97
-	 * This function is called by Sabre\DAV\Server, after
98
-	 * addPlugin is called.
99
-	 *
100
-	 * This method should set up the required event subscriptions.
101
-	 *
102
-	 * @param Server $server
103
-	 */
104
-	public function initialize(Server $server) {
105
-		$this->server = $server;
106
-
107
-		$this->server->on('method:POST', [$this, 'httpPost']);
108
-	}
109
-
110
-	/**
111
-	 * We intercept this to handle POST requests on calendar homes.
112
-	 *
113
-	 * @param RequestInterface $request
114
-	 * @param ResponseInterface $response
115
-	 *
116
-	 * @return bool|void
117
-	 */
118
-	public function httpPost(RequestInterface $request, ResponseInterface $response) {
119
-		$node = $this->server->tree->getNodeForPath($this->server->getRequestUri());
120
-		if (!($node instanceof CalendarHome)) {
121
-			return;
122
-		}
123
-
124
-		$requestBody = $request->getBodyAsString();
125
-		$this->server->xml->parse($requestBody, $request->getUrl(), $documentType);
126
-		if ($documentType !== '{'.self::NS_Nextcloud.'}enable-birthday-calendar') {
127
-			return;
128
-		}
129
-
130
-		$principalUri = $node->getOwner();
131
-		$userId = substr($principalUri, 17);
132
-
133
-		$this->config->setUserValue($userId, 'dav', 'generateBirthdayCalendar', 'yes');
134
-		$this->birthdayService->syncUser($userId);
135
-
136
-		$this->server->httpResponse->setStatus(204);
137
-
138
-		return false;
139
-	}
42
+    public const NS_Nextcloud = 'http://nextcloud.com/ns';
43
+
44
+    /**
45
+     * @var IConfig
46
+     */
47
+    protected $config;
48
+
49
+    /**
50
+     * @var BirthdayService
51
+     */
52
+    protected $birthdayService;
53
+
54
+    /**
55
+     * @var Server
56
+     */
57
+    protected $server;
58
+
59
+    /**
60
+     * PublishPlugin constructor.
61
+     *
62
+     * @param IConfig $config
63
+     * @param BirthdayService $birthdayService
64
+     */
65
+    public function __construct(IConfig $config, BirthdayService $birthdayService) {
66
+        $this->config = $config;
67
+        $this->birthdayService = $birthdayService;
68
+    }
69
+
70
+    /**
71
+     * This method should return a list of server-features.
72
+     *
73
+     * This is for example 'versioning' and is added to the DAV: header
74
+     * in an OPTIONS response.
75
+     *
76
+     * @return string[]
77
+     */
78
+    public function getFeatures() {
79
+        return ['nc-enable-birthday-calendar'];
80
+    }
81
+
82
+    /**
83
+     * Returns a plugin name.
84
+     *
85
+     * Using this name other plugins will be able to access other plugins
86
+     * using Sabre\DAV\Server::getPlugin
87
+     *
88
+     * @return string
89
+     */
90
+    public function getPluginName() {
91
+        return 'nc-enable-birthday-calendar';
92
+    }
93
+
94
+    /**
95
+     * This initializes the plugin.
96
+     *
97
+     * This function is called by Sabre\DAV\Server, after
98
+     * addPlugin is called.
99
+     *
100
+     * This method should set up the required event subscriptions.
101
+     *
102
+     * @param Server $server
103
+     */
104
+    public function initialize(Server $server) {
105
+        $this->server = $server;
106
+
107
+        $this->server->on('method:POST', [$this, 'httpPost']);
108
+    }
109
+
110
+    /**
111
+     * We intercept this to handle POST requests on calendar homes.
112
+     *
113
+     * @param RequestInterface $request
114
+     * @param ResponseInterface $response
115
+     *
116
+     * @return bool|void
117
+     */
118
+    public function httpPost(RequestInterface $request, ResponseInterface $response) {
119
+        $node = $this->server->tree->getNodeForPath($this->server->getRequestUri());
120
+        if (!($node instanceof CalendarHome)) {
121
+            return;
122
+        }
123
+
124
+        $requestBody = $request->getBodyAsString();
125
+        $this->server->xml->parse($requestBody, $request->getUrl(), $documentType);
126
+        if ($documentType !== '{'.self::NS_Nextcloud.'}enable-birthday-calendar') {
127
+            return;
128
+        }
129
+
130
+        $principalUri = $node->getOwner();
131
+        $userId = substr($principalUri, 17);
132
+
133
+        $this->config->setUserValue($userId, 'dav', 'generateBirthdayCalendar', 'yes');
134
+        $this->birthdayService->syncUser($userId);
135
+
136
+        $this->server->httpResponse->setStatus(204);
137
+
138
+        return false;
139
+    }
140 140
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Principal/Collection.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -30,13 +30,13 @@
 block discarded – undo
30 30
  */
31 31
 class Collection extends \Sabre\CalDAV\Principal\Collection {
32 32
 
33
-	/**
34
-	 * Returns a child object based on principal information
35
-	 *
36
-	 * @param array $principalInfo
37
-	 * @return User
38
-	 */
39
-	public function getChildForPrincipal(array $principalInfo) {
40
-		return new User($this->principalBackend, $principalInfo);
41
-	}
33
+    /**
34
+     * Returns a child object based on principal information
35
+     *
36
+     * @param array $principalInfo
37
+     * @return User
38
+     */
39
+    public function getChildForPrincipal(array $principalInfo) {
40
+        return new User($this->principalBackend, $principalInfo);
41
+    }
42 42
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Principal/User.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -30,25 +30,25 @@
 block discarded – undo
30 30
  */
31 31
 class User extends \Sabre\CalDAV\Principal\User {
32 32
 
33
-	/**
34
-	 * Returns a list of ACE's for this node.
35
-	 *
36
-	 * Each ACE has the following properties:
37
-	 *   * 'privilege', a string such as {DAV:}read or {DAV:}write. These are
38
-	 *     currently the only supported privileges
39
-	 *   * 'principal', a url to the principal who owns the node
40
-	 *   * 'protected' (optional), indicating that this ACE is not allowed to
41
-	 *      be updated.
42
-	 *
43
-	 * @return array
44
-	 */
45
-	public function getACL() {
46
-		$acl = parent::getACL();
47
-		$acl[] = [
48
-			'privilege' => '{DAV:}read',
49
-			'principal' => '{DAV:}authenticated',
50
-			'protected' => true,
51
-		];
52
-		return $acl;
53
-	}
33
+    /**
34
+     * Returns a list of ACE's for this node.
35
+     *
36
+     * Each ACE has the following properties:
37
+     *   * 'privilege', a string such as {DAV:}read or {DAV:}write. These are
38
+     *     currently the only supported privileges
39
+     *   * 'principal', a url to the principal who owns the node
40
+     *   * 'protected' (optional), indicating that this ACE is not allowed to
41
+     *      be updated.
42
+     *
43
+     * @return array
44
+     */
45
+    public function getACL() {
46
+        $acl = parent::getACL();
47
+        $acl[] = [
48
+            'privilege' => '{DAV:}read',
49
+            'principal' => '{DAV:}authenticated',
50
+            'protected' => true,
51
+        ];
52
+        return $acl;
53
+    }
54 54
 }
Please login to merge, or discard this patch.