Passed
Push — master ( d23e96...1bc100 )
by Roeland
11:25 queued 10s
created
apps/dav/lib/Files/Sharing/FilesDropPlugin.php 2 patches
Indentation   +38 added lines, -38 removed lines patch added patch discarded remove patch
@@ -33,52 +33,52 @@
 block discarded – undo
33 33
  */
34 34
 class FilesDropPlugin extends ServerPlugin {
35 35
 
36
-	/** @var View */
37
-	private $view;
36
+    /** @var View */
37
+    private $view;
38 38
 
39
-	/** @var bool */
40
-	private $enabled = false;
39
+    /** @var bool */
40
+    private $enabled = false;
41 41
 
42
-	/**
43
-	 * @param View $view
44
-	 */
45
-	public function setView($view) {
46
-		$this->view = $view;
47
-	}
42
+    /**
43
+     * @param View $view
44
+     */
45
+    public function setView($view) {
46
+        $this->view = $view;
47
+    }
48 48
 
49
-	public function enable() {
50
-		$this->enabled = true;
51
-	}
49
+    public function enable() {
50
+        $this->enabled = true;
51
+    }
52 52
 
53 53
 
54
-	/**
55
-	 * This initializes the plugin.
56
-	 *
57
-	 * @param \Sabre\DAV\Server $server Sabre server
58
-	 *
59
-	 * @return void
60
-	 * @throws MethodNotAllowed
61
-	 */
62
-	public function initialize(\Sabre\DAV\Server $server) {
63
-		$server->on('beforeMethod', [$this, 'beforeMethod'], 999);
64
-		$this->enabled = false;
65
-	}
54
+    /**
55
+     * This initializes the plugin.
56
+     *
57
+     * @param \Sabre\DAV\Server $server Sabre server
58
+     *
59
+     * @return void
60
+     * @throws MethodNotAllowed
61
+     */
62
+    public function initialize(\Sabre\DAV\Server $server) {
63
+        $server->on('beforeMethod', [$this, 'beforeMethod'], 999);
64
+        $this->enabled = false;
65
+    }
66 66
 
67
-	public function beforeMethod(RequestInterface $request, ResponseInterface $response){
67
+    public function beforeMethod(RequestInterface $request, ResponseInterface $response){
68 68
 
69
-		if (!$this->enabled) {
70
-			return;
71
-		}
69
+        if (!$this->enabled) {
70
+            return;
71
+        }
72 72
 
73
-		if ($request->getMethod() !== 'PUT') {
74
-			throw new MethodNotAllowed('Only PUT is allowed on files drop');
75
-		}
73
+        if ($request->getMethod() !== 'PUT') {
74
+            throw new MethodNotAllowed('Only PUT is allowed on files drop');
75
+        }
76 76
 
77
-		$path = explode('/', $request->getPath());
78
-		$path = array_pop($path);
77
+        $path = explode('/', $request->getPath());
78
+        $path = array_pop($path);
79 79
 
80
-		$newName = \OC_Helper::buildNotExistingFileNameForView('/', $path, $this->view);
81
-		$url = $request->getBaseUrl() . $newName;
82
-		$request->setUrl($url);
83
-	}
80
+        $newName = \OC_Helper::buildNotExistingFileNameForView('/', $path, $this->view);
81
+        $url = $request->getBaseUrl() . $newName;
82
+        $request->setUrl($url);
83
+    }
84 84
 }
Please login to merge, or discard this patch.
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -64,7 +64,7 @@  discard block
 block discarded – undo
64 64
 		$this->enabled = false;
65 65
 	}
66 66
 
67
-	public function beforeMethod(RequestInterface $request, ResponseInterface $response){
67
+	public function beforeMethod(RequestInterface $request, ResponseInterface $response) {
68 68
 
69 69
 		if (!$this->enabled) {
70 70
 			return;
@@ -78,7 +78,7 @@  discard block
 block discarded – undo
78 78
 		$path = array_pop($path);
79 79
 
80 80
 		$newName = \OC_Helper::buildNotExistingFileNameForView('/', $path, $this->view);
81
-		$url = $request->getBaseUrl() . $newName;
81
+		$url = $request->getBaseUrl().$newName;
82 82
 		$request->setUrl($url);
83 83
 	}
84 84
 }
Please login to merge, or discard this patch.
apps/dav/lib/Upload/UploadFolder.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -40,7 +40,7 @@
 block discarded – undo
40 40
 	}
41 41
 
42 42
 	function createDirectory($name) {
43
-		throw new Forbidden('Permission denied to create file (filename ' . $name . ')');
43
+		throw new Forbidden('Permission denied to create file (filename '.$name.')');
44 44
 	}
45 45
 
46 46
 	function getChild($name) {
Please login to merge, or discard this patch.
Indentation   +46 added lines, -46 removed lines patch added patch discarded remove patch
@@ -30,61 +30,61 @@
 block discarded – undo
30 30
 
31 31
 class UploadFolder implements ICollection {
32 32
 
33
-	/** @var Directory */
34
-	private $node;
35
-	/** @var CleanupService */
36
-	private $cleanupService;
33
+    /** @var Directory */
34
+    private $node;
35
+    /** @var CleanupService */
36
+    private $cleanupService;
37 37
 
38
-	function __construct(Directory $node, CleanupService $cleanupService) {
39
-		$this->node = $node;
40
-		$this->cleanupService = $cleanupService;
41
-	}
38
+    function __construct(Directory $node, CleanupService $cleanupService) {
39
+        $this->node = $node;
40
+        $this->cleanupService = $cleanupService;
41
+    }
42 42
 
43
-	function createFile($name, $data = null) {
44
-		// TODO: verify name - should be a simple number
45
-		$this->node->createFile($name, $data);
46
-	}
43
+    function createFile($name, $data = null) {
44
+        // TODO: verify name - should be a simple number
45
+        $this->node->createFile($name, $data);
46
+    }
47 47
 
48
-	function createDirectory($name) {
49
-		throw new Forbidden('Permission denied to create file (filename ' . $name . ')');
50
-	}
48
+    function createDirectory($name) {
49
+        throw new Forbidden('Permission denied to create file (filename ' . $name . ')');
50
+    }
51 51
 
52
-	function getChild($name) {
53
-		if ($name === '.file') {
54
-			return new FutureFile($this->node, '.file');
55
-		}
56
-		return $this->node->getChild($name);
57
-	}
52
+    function getChild($name) {
53
+        if ($name === '.file') {
54
+            return new FutureFile($this->node, '.file');
55
+        }
56
+        return $this->node->getChild($name);
57
+    }
58 58
 
59
-	function getChildren() {
60
-		$children = $this->node->getChildren();
61
-		$children[] = new FutureFile($this->node, '.file');
62
-		return $children;
63
-	}
59
+    function getChildren() {
60
+        $children = $this->node->getChildren();
61
+        $children[] = new FutureFile($this->node, '.file');
62
+        return $children;
63
+    }
64 64
 
65
-	function childExists($name) {
66
-		if ($name === '.file') {
67
-			return true;
68
-		}
69
-		return $this->node->childExists($name);
70
-	}
65
+    function childExists($name) {
66
+        if ($name === '.file') {
67
+            return true;
68
+        }
69
+        return $this->node->childExists($name);
70
+    }
71 71
 
72
-	function delete() {
73
-		$this->node->delete();
72
+    function delete() {
73
+        $this->node->delete();
74 74
 
75
-		// Background cleanup job is not needed anymore
76
-		$this->cleanupService->removeJob($this->getName());
77
-	}
75
+        // Background cleanup job is not needed anymore
76
+        $this->cleanupService->removeJob($this->getName());
77
+    }
78 78
 
79
-	function getName() {
80
-		return $this->node->getName();
81
-	}
79
+    function getName() {
80
+        return $this->node->getName();
81
+    }
82 82
 
83
-	function setName($name) {
84
-		throw new Forbidden('Permission denied to rename this folder');
85
-	}
83
+    function setName($name) {
84
+        throw new Forbidden('Permission denied to rename this folder');
85
+    }
86 86
 
87
-	function getLastModified() {
88
-		return $this->node->getLastModified();
89
-	}
87
+    function getLastModified() {
88
+        return $this->node->getLastModified();
89
+    }
90 90
 }
Please login to merge, or discard this patch.
apps/dav/lib/Upload/FutureFile.php 1 patch
Indentation   +72 added lines, -72 removed lines patch added patch discarded remove patch
@@ -37,87 +37,87 @@
 block discarded – undo
37 37
  */
38 38
 class FutureFile implements \Sabre\DAV\IFile {
39 39
 
40
-	/** @var Directory */
41
-	private $root;
42
-	/** @var string */
43
-	private $name;
40
+    /** @var Directory */
41
+    private $root;
42
+    /** @var string */
43
+    private $name;
44 44
 
45
-	/**
46
-	 * @param Directory $root
47
-	 * @param string $name
48
-	 */
49
-	function __construct(Directory $root, $name) {
50
-		$this->root = $root;
51
-		$this->name = $name;
52
-	}
45
+    /**
46
+     * @param Directory $root
47
+     * @param string $name
48
+     */
49
+    function __construct(Directory $root, $name) {
50
+        $this->root = $root;
51
+        $this->name = $name;
52
+    }
53 53
 
54
-	/**
55
-	 * @inheritdoc
56
-	 */
57
-	function put($data) {
58
-		throw new Forbidden('Permission denied to put into this file');
59
-	}
54
+    /**
55
+     * @inheritdoc
56
+     */
57
+    function put($data) {
58
+        throw new Forbidden('Permission denied to put into this file');
59
+    }
60 60
 
61
-	/**
62
-	 * @inheritdoc
63
-	 */
64
-	function get() {
65
-		$nodes = $this->root->getChildren();
66
-		return AssemblyStream::wrap($nodes);
67
-	}
61
+    /**
62
+     * @inheritdoc
63
+     */
64
+    function get() {
65
+        $nodes = $this->root->getChildren();
66
+        return AssemblyStream::wrap($nodes);
67
+    }
68 68
 
69
-	/**
70
-	 * @inheritdoc
71
-	 */
72
-	function getContentType() {
73
-		return 'application/octet-stream';
74
-	}
69
+    /**
70
+     * @inheritdoc
71
+     */
72
+    function getContentType() {
73
+        return 'application/octet-stream';
74
+    }
75 75
 
76
-	/**
77
-	 * @inheritdoc
78
-	 */
79
-	function getETag() {
80
-		return $this->root->getETag();
81
-	}
76
+    /**
77
+     * @inheritdoc
78
+     */
79
+    function getETag() {
80
+        return $this->root->getETag();
81
+    }
82 82
 
83
-	/**
84
-	 * @inheritdoc
85
-	 */
86
-	function getSize() {
87
-		$children = $this->root->getChildren();
88
-		$sizes = array_map(function($node) {
89
-			/** @var IFile $node */
90
-			return $node->getSize();
91
-		}, $children);
83
+    /**
84
+     * @inheritdoc
85
+     */
86
+    function getSize() {
87
+        $children = $this->root->getChildren();
88
+        $sizes = array_map(function($node) {
89
+            /** @var IFile $node */
90
+            return $node->getSize();
91
+        }, $children);
92 92
 
93
-		return array_sum($sizes);
94
-	}
93
+        return array_sum($sizes);
94
+    }
95 95
 
96
-	/**
97
-	 * @inheritdoc
98
-	 */
99
-	function delete() {
100
-		$this->root->delete();
101
-	}
96
+    /**
97
+     * @inheritdoc
98
+     */
99
+    function delete() {
100
+        $this->root->delete();
101
+    }
102 102
 
103
-	/**
104
-	 * @inheritdoc
105
-	 */
106
-	function getName() {
107
-		return $this->name;
108
-	}
103
+    /**
104
+     * @inheritdoc
105
+     */
106
+    function getName() {
107
+        return $this->name;
108
+    }
109 109
 
110
-	/**
111
-	 * @inheritdoc
112
-	 */
113
-	function setName($name) {
114
-		throw new Forbidden('Permission denied to rename this file');
115
-	}
110
+    /**
111
+     * @inheritdoc
112
+     */
113
+    function setName($name) {
114
+        throw new Forbidden('Permission denied to rename this file');
115
+    }
116 116
 
117
-	/**
118
-	 * @inheritdoc
119
-	 */
120
-	function getLastModified() {
121
-		return $this->root->getLastModified();
122
-	}
117
+    /**
118
+     * @inheritdoc
119
+     */
120
+    function getLastModified() {
121
+        return $this->root->getLastModified();
122
+    }
123 123
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Activity/Provider/Base.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -49,7 +49,7 @@
 block discarded – undo
49 49
 	protected function setSubjects(IEvent $event, $subject, array $parameters) {
50 50
 		$placeholders = $replacements = [];
51 51
 		foreach ($parameters as $placeholder => $parameter) {
52
-			$placeholders[] = '{' . $placeholder . '}';
52
+			$placeholders[] = '{'.$placeholder.'}';
53 53
 			$replacements[] = $parameter['name'];
54 54
 		}
55 55
 
Please login to merge, or discard this patch.
Indentation   +143 added lines, -143 removed lines patch added patch discarded remove patch
@@ -34,147 +34,147 @@
 block discarded – undo
34 34
 
35 35
 abstract class Base implements IProvider {
36 36
 
37
-	/** @var IUserManager */
38
-	protected $userManager;
39
-
40
-	/** @var string[]  */
41
-	protected $userDisplayNames = [];
42
-
43
-	/** @var IGroupManager */
44
-	protected $groupManager;
45
-
46
-	/** @var string[] */
47
-	protected $groupDisplayNames = [];
48
-
49
-	/**
50
-	 * @param IUserManager $userManager
51
-	 * @param IGroupManager $groupManager
52
-	 */
53
-	public function __construct(IUserManager $userManager, IGroupManager $groupManager) {
54
-		$this->userManager = $userManager;
55
-		$this->groupManager = $groupManager;
56
-	}
57
-
58
-	/**
59
-	 * @param IEvent $event
60
-	 * @param string $subject
61
-	 * @param array $parameters
62
-	 */
63
-	protected function setSubjects(IEvent $event, $subject, array $parameters) {
64
-		$placeholders = $replacements = [];
65
-		foreach ($parameters as $placeholder => $parameter) {
66
-			$placeholders[] = '{' . $placeholder . '}';
67
-			$replacements[] = $parameter['name'];
68
-		}
69
-
70
-		$event->setParsedSubject(str_replace($placeholders, $replacements, $subject))
71
-			->setRichSubject($subject, $parameters);
72
-	}
73
-
74
-	/**
75
-	 * @param array $eventData
76
-	 * @return array
77
-	 */
78
-	protected function generateObjectParameter($eventData) {
79
-		if (!is_array($eventData) || !isset($eventData['id']) || !isset($eventData['name'])) {
80
-			throw new \InvalidArgumentException();
81
-		}
82
-
83
-		return [
84
-			'type' => 'calendar-event',
85
-			'id' => $eventData['id'],
86
-			'name' => $eventData['name'],
87
-		];
88
-	}
89
-
90
-	/**
91
-	 * @param array $data
92
-	 * @param IL10N $l
93
-	 * @return array
94
-	 */
95
-	protected function generateCalendarParameter($data, IL10N $l) {
96
-		if ($data['uri'] === CalDavBackend::PERSONAL_CALENDAR_URI &&
97
-			$data['name'] === CalDavBackend::PERSONAL_CALENDAR_NAME) {
98
-			return [
99
-				'type' => 'calendar',
100
-				'id' => $data['id'],
101
-				'name' => $l->t('Personal'),
102
-			];
103
-		}
104
-
105
-		return [
106
-			'type' => 'calendar',
107
-			'id' => $data['id'],
108
-			'name' => $data['name'],
109
-		];
110
-	}
111
-
112
-	/**
113
-	 * @param int $id
114
-	 * @param string $name
115
-	 * @return array
116
-	 */
117
-	protected function generateLegacyCalendarParameter($id, $name) {
118
-		return [
119
-			'type' => 'calendar',
120
-			'id' => $id,
121
-			'name' => $name,
122
-		];
123
-	}
124
-
125
-	/**
126
-	 * @param string $uid
127
-	 * @return array
128
-	 */
129
-	protected function generateUserParameter($uid) {
130
-		if (!isset($this->userDisplayNames[$uid])) {
131
-			$this->userDisplayNames[$uid] = $this->getUserDisplayName($uid);
132
-		}
133
-
134
-		return [
135
-			'type' => 'user',
136
-			'id' => $uid,
137
-			'name' => $this->userDisplayNames[$uid],
138
-		];
139
-	}
140
-
141
-	/**
142
-	 * @param string $uid
143
-	 * @return string
144
-	 */
145
-	protected function getUserDisplayName($uid) {
146
-		$user = $this->userManager->get($uid);
147
-		if ($user instanceof IUser) {
148
-			return $user->getDisplayName();
149
-		}
150
-		return $uid;
151
-	}
152
-
153
-	/**
154
-	 * @param string $gid
155
-	 * @return array
156
-	 */
157
-	protected function generateGroupParameter($gid) {
158
-		if (!isset($this->groupDisplayNames[$gid])) {
159
-			$this->groupDisplayNames[$gid] = $this->getGroupDisplayName($gid);
160
-		}
161
-
162
-		return [
163
-			'type' => 'user-group',
164
-			'id' => $gid,
165
-			'name' => $this->groupDisplayNames[$gid],
166
-		];
167
-	}
168
-
169
-	/**
170
-	 * @param string $gid
171
-	 * @return string
172
-	 */
173
-	protected function getGroupDisplayName($gid) {
174
-		$group = $this->groupManager->get($gid);
175
-		if ($group instanceof IGroup) {
176
-			return $group->getDisplayName();
177
-		}
178
-		return $gid;
179
-	}
37
+    /** @var IUserManager */
38
+    protected $userManager;
39
+
40
+    /** @var string[]  */
41
+    protected $userDisplayNames = [];
42
+
43
+    /** @var IGroupManager */
44
+    protected $groupManager;
45
+
46
+    /** @var string[] */
47
+    protected $groupDisplayNames = [];
48
+
49
+    /**
50
+     * @param IUserManager $userManager
51
+     * @param IGroupManager $groupManager
52
+     */
53
+    public function __construct(IUserManager $userManager, IGroupManager $groupManager) {
54
+        $this->userManager = $userManager;
55
+        $this->groupManager = $groupManager;
56
+    }
57
+
58
+    /**
59
+     * @param IEvent $event
60
+     * @param string $subject
61
+     * @param array $parameters
62
+     */
63
+    protected function setSubjects(IEvent $event, $subject, array $parameters) {
64
+        $placeholders = $replacements = [];
65
+        foreach ($parameters as $placeholder => $parameter) {
66
+            $placeholders[] = '{' . $placeholder . '}';
67
+            $replacements[] = $parameter['name'];
68
+        }
69
+
70
+        $event->setParsedSubject(str_replace($placeholders, $replacements, $subject))
71
+            ->setRichSubject($subject, $parameters);
72
+    }
73
+
74
+    /**
75
+     * @param array $eventData
76
+     * @return array
77
+     */
78
+    protected function generateObjectParameter($eventData) {
79
+        if (!is_array($eventData) || !isset($eventData['id']) || !isset($eventData['name'])) {
80
+            throw new \InvalidArgumentException();
81
+        }
82
+
83
+        return [
84
+            'type' => 'calendar-event',
85
+            'id' => $eventData['id'],
86
+            'name' => $eventData['name'],
87
+        ];
88
+    }
89
+
90
+    /**
91
+     * @param array $data
92
+     * @param IL10N $l
93
+     * @return array
94
+     */
95
+    protected function generateCalendarParameter($data, IL10N $l) {
96
+        if ($data['uri'] === CalDavBackend::PERSONAL_CALENDAR_URI &&
97
+            $data['name'] === CalDavBackend::PERSONAL_CALENDAR_NAME) {
98
+            return [
99
+                'type' => 'calendar',
100
+                'id' => $data['id'],
101
+                'name' => $l->t('Personal'),
102
+            ];
103
+        }
104
+
105
+        return [
106
+            'type' => 'calendar',
107
+            'id' => $data['id'],
108
+            'name' => $data['name'],
109
+        ];
110
+    }
111
+
112
+    /**
113
+     * @param int $id
114
+     * @param string $name
115
+     * @return array
116
+     */
117
+    protected function generateLegacyCalendarParameter($id, $name) {
118
+        return [
119
+            'type' => 'calendar',
120
+            'id' => $id,
121
+            'name' => $name,
122
+        ];
123
+    }
124
+
125
+    /**
126
+     * @param string $uid
127
+     * @return array
128
+     */
129
+    protected function generateUserParameter($uid) {
130
+        if (!isset($this->userDisplayNames[$uid])) {
131
+            $this->userDisplayNames[$uid] = $this->getUserDisplayName($uid);
132
+        }
133
+
134
+        return [
135
+            'type' => 'user',
136
+            'id' => $uid,
137
+            'name' => $this->userDisplayNames[$uid],
138
+        ];
139
+    }
140
+
141
+    /**
142
+     * @param string $uid
143
+     * @return string
144
+     */
145
+    protected function getUserDisplayName($uid) {
146
+        $user = $this->userManager->get($uid);
147
+        if ($user instanceof IUser) {
148
+            return $user->getDisplayName();
149
+        }
150
+        return $uid;
151
+    }
152
+
153
+    /**
154
+     * @param string $gid
155
+     * @return array
156
+     */
157
+    protected function generateGroupParameter($gid) {
158
+        if (!isset($this->groupDisplayNames[$gid])) {
159
+            $this->groupDisplayNames[$gid] = $this->getGroupDisplayName($gid);
160
+        }
161
+
162
+        return [
163
+            'type' => 'user-group',
164
+            'id' => $gid,
165
+            'name' => $this->groupDisplayNames[$gid],
166
+        ];
167
+    }
168
+
169
+    /**
170
+     * @param string $gid
171
+     * @return string
172
+     */
173
+    protected function getGroupDisplayName($gid) {
174
+        $group = $this->groupManager->get($gid);
175
+        if ($group instanceof IGroup) {
176
+            return $group->getDisplayName();
177
+        }
178
+        return $gid;
179
+    }
180 180
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Activity/Filter/Todo.php 1 patch
Indentation   +53 added lines, -53 removed lines patch added patch discarded remove patch
@@ -28,65 +28,65 @@
 block discarded – undo
28 28
 
29 29
 class Todo implements IFilter {
30 30
 
31
-	/** @var IL10N */
32
-	protected $l;
31
+    /** @var IL10N */
32
+    protected $l;
33 33
 
34
-	/** @var IURLGenerator */
35
-	protected $url;
34
+    /** @var IURLGenerator */
35
+    protected $url;
36 36
 
37
-	public function __construct(IL10N $l, IURLGenerator $url) {
38
-		$this->l = $l;
39
-		$this->url = $url;
40
-	}
37
+    public function __construct(IL10N $l, IURLGenerator $url) {
38
+        $this->l = $l;
39
+        $this->url = $url;
40
+    }
41 41
 
42
-	/**
43
-	 * @return string Lowercase a-z and underscore only identifier
44
-	 * @since 11.0.0
45
-	 */
46
-	public function getIdentifier() {
47
-		return 'calendar_todo';
48
-	}
42
+    /**
43
+     * @return string Lowercase a-z and underscore only identifier
44
+     * @since 11.0.0
45
+     */
46
+    public function getIdentifier() {
47
+        return 'calendar_todo';
48
+    }
49 49
 
50
-	/**
51
-	 * @return string A translated string
52
-	 * @since 11.0.0
53
-	 */
54
-	public function getName() {
55
-		return $this->l->t('Todos');
56
-	}
50
+    /**
51
+     * @return string A translated string
52
+     * @since 11.0.0
53
+     */
54
+    public function getName() {
55
+        return $this->l->t('Todos');
56
+    }
57 57
 
58
-	/**
59
-	 * @return int whether the filter should be rather on the top or bottom of
60
-	 * the admin section. The filters are arranged in ascending order of the
61
-	 * priority values. It is required to return a value between 0 and 100.
62
-	 * @since 11.0.0
63
-	 */
64
-	public function getPriority() {
65
-		return 40;
66
-	}
58
+    /**
59
+     * @return int whether the filter should be rather on the top or bottom of
60
+     * the admin section. The filters are arranged in ascending order of the
61
+     * priority values. It is required to return a value between 0 and 100.
62
+     * @since 11.0.0
63
+     */
64
+    public function getPriority() {
65
+        return 40;
66
+    }
67 67
 
68
-	/**
69
-	 * @return string Full URL to an icon, empty string when none is given
70
-	 * @since 11.0.0
71
-	 */
72
-	public function getIcon() {
73
-		return $this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/checkmark.svg'));
74
-	}
68
+    /**
69
+     * @return string Full URL to an icon, empty string when none is given
70
+     * @since 11.0.0
71
+     */
72
+    public function getIcon() {
73
+        return $this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/checkmark.svg'));
74
+    }
75 75
 
76
-	/**
77
-	 * @param string[] $types
78
-	 * @return string[] An array of allowed apps from which activities should be displayed
79
-	 * @since 11.0.0
80
-	 */
81
-	public function filterTypes(array $types) {
82
-		return array_intersect(['calendar_todo'], $types);
83
-	}
76
+    /**
77
+     * @param string[] $types
78
+     * @return string[] An array of allowed apps from which activities should be displayed
79
+     * @since 11.0.0
80
+     */
81
+    public function filterTypes(array $types) {
82
+        return array_intersect(['calendar_todo'], $types);
83
+    }
84 84
 
85
-	/**
86
-	 * @return string[] An array of allowed apps from which activities should be displayed
87
-	 * @since 11.0.0
88
-	 */
89
-	public function allowedApps() {
90
-		return [];
91
-	}
85
+    /**
86
+     * @return string[] An array of allowed apps from which activities should be displayed
87
+     * @since 11.0.0
88
+     */
89
+    public function allowedApps() {
90
+        return [];
91
+    }
92 92
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Activity/Setting/Calendar.php 1 patch
Indentation   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -27,72 +27,72 @@
 block discarded – undo
27 27
 
28 28
 class Calendar implements ISetting {
29 29
 
30
-	/** @var IL10N */
31
-	protected $l;
30
+    /** @var IL10N */
31
+    protected $l;
32 32
 
33
-	/**
34
-	 * @param IL10N $l
35
-	 */
36
-	public function __construct(IL10N $l) {
37
-		$this->l = $l;
38
-	}
33
+    /**
34
+     * @param IL10N $l
35
+     */
36
+    public function __construct(IL10N $l) {
37
+        $this->l = $l;
38
+    }
39 39
 
40
-	/**
41
-	 * @return string Lowercase a-z and underscore only identifier
42
-	 * @since 11.0.0
43
-	 */
44
-	public function getIdentifier() {
45
-		return 'calendar';
46
-	}
40
+    /**
41
+     * @return string Lowercase a-z and underscore only identifier
42
+     * @since 11.0.0
43
+     */
44
+    public function getIdentifier() {
45
+        return 'calendar';
46
+    }
47 47
 
48
-	/**
49
-	 * @return string A translated string
50
-	 * @since 11.0.0
51
-	 */
52
-	public function getName() {
53
-		return $this->l->t('A <strong>calendar</strong> was modified');
54
-	}
48
+    /**
49
+     * @return string A translated string
50
+     * @since 11.0.0
51
+     */
52
+    public function getName() {
53
+        return $this->l->t('A <strong>calendar</strong> was modified');
54
+    }
55 55
 
56
-	/**
57
-	 * @return int whether the filter should be rather on the top or bottom of
58
-	 * the admin section. The filters are arranged in ascending order of the
59
-	 * priority values. It is required to return a value between 0 and 100.
60
-	 * @since 11.0.0
61
-	 */
62
-	public function getPriority() {
63
-		return 50;
64
-	}
56
+    /**
57
+     * @return int whether the filter should be rather on the top or bottom of
58
+     * the admin section. The filters are arranged in ascending order of the
59
+     * priority values. It is required to return a value between 0 and 100.
60
+     * @since 11.0.0
61
+     */
62
+    public function getPriority() {
63
+        return 50;
64
+    }
65 65
 
66
-	/**
67
-	 * @return bool True when the option can be changed for the stream
68
-	 * @since 11.0.0
69
-	 */
70
-	public function canChangeStream() {
71
-		return true;
72
-	}
66
+    /**
67
+     * @return bool True when the option can be changed for the stream
68
+     * @since 11.0.0
69
+     */
70
+    public function canChangeStream() {
71
+        return true;
72
+    }
73 73
 
74
-	/**
75
-	 * @return bool True when the option can be changed for the stream
76
-	 * @since 11.0.0
77
-	 */
78
-	public function isDefaultEnabledStream() {
79
-		return true;
80
-	}
74
+    /**
75
+     * @return bool True when the option can be changed for the stream
76
+     * @since 11.0.0
77
+     */
78
+    public function isDefaultEnabledStream() {
79
+        return true;
80
+    }
81 81
 
82
-	/**
83
-	 * @return bool True when the option can be changed for the mail
84
-	 * @since 11.0.0
85
-	 */
86
-	public function canChangeMail() {
87
-		return true;
88
-	}
82
+    /**
83
+     * @return bool True when the option can be changed for the mail
84
+     * @since 11.0.0
85
+     */
86
+    public function canChangeMail() {
87
+        return true;
88
+    }
89 89
 
90
-	/**
91
-	 * @return bool True when the option can be changed for the stream
92
-	 * @since 11.0.0
93
-	 */
94
-	public function isDefaultEnabledMail() {
95
-		return false;
96
-	}
90
+    /**
91
+     * @return bool True when the option can be changed for the stream
92
+     * @since 11.0.0
93
+     */
94
+    public function isDefaultEnabledMail() {
95
+        return false;
96
+    }
97 97
 }
98 98
 
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Activity/Setting/Event.php 1 patch
Indentation   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -27,72 +27,72 @@
 block discarded – undo
27 27
 
28 28
 class Event implements ISetting {
29 29
 
30
-	/** @var IL10N */
31
-	protected $l;
30
+    /** @var IL10N */
31
+    protected $l;
32 32
 
33
-	/**
34
-	 * @param IL10N $l
35
-	 */
36
-	public function __construct(IL10N $l) {
37
-		$this->l = $l;
38
-	}
33
+    /**
34
+     * @param IL10N $l
35
+     */
36
+    public function __construct(IL10N $l) {
37
+        $this->l = $l;
38
+    }
39 39
 
40
-	/**
41
-	 * @return string Lowercase a-z and underscore only identifier
42
-	 * @since 11.0.0
43
-	 */
44
-	public function getIdentifier() {
45
-		return 'calendar_event';
46
-	}
40
+    /**
41
+     * @return string Lowercase a-z and underscore only identifier
42
+     * @since 11.0.0
43
+     */
44
+    public function getIdentifier() {
45
+        return 'calendar_event';
46
+    }
47 47
 
48
-	/**
49
-	 * @return string A translated string
50
-	 * @since 11.0.0
51
-	 */
52
-	public function getName() {
53
-		return $this->l->t('A calendar <strong>event</strong> was modified');
54
-	}
48
+    /**
49
+     * @return string A translated string
50
+     * @since 11.0.0
51
+     */
52
+    public function getName() {
53
+        return $this->l->t('A calendar <strong>event</strong> was modified');
54
+    }
55 55
 
56
-	/**
57
-	 * @return int whether the filter should be rather on the top or bottom of
58
-	 * the admin section. The filters are arranged in ascending order of the
59
-	 * priority values. It is required to return a value between 0 and 100.
60
-	 * @since 11.0.0
61
-	 */
62
-	public function getPriority() {
63
-		return 50;
64
-	}
56
+    /**
57
+     * @return int whether the filter should be rather on the top or bottom of
58
+     * the admin section. The filters are arranged in ascending order of the
59
+     * priority values. It is required to return a value between 0 and 100.
60
+     * @since 11.0.0
61
+     */
62
+    public function getPriority() {
63
+        return 50;
64
+    }
65 65
 
66
-	/**
67
-	 * @return bool True when the option can be changed for the stream
68
-	 * @since 11.0.0
69
-	 */
70
-	public function canChangeStream() {
71
-		return true;
72
-	}
66
+    /**
67
+     * @return bool True when the option can be changed for the stream
68
+     * @since 11.0.0
69
+     */
70
+    public function canChangeStream() {
71
+        return true;
72
+    }
73 73
 
74
-	/**
75
-	 * @return bool True when the option can be changed for the stream
76
-	 * @since 11.0.0
77
-	 */
78
-	public function isDefaultEnabledStream() {
79
-		return true;
80
-	}
74
+    /**
75
+     * @return bool True when the option can be changed for the stream
76
+     * @since 11.0.0
77
+     */
78
+    public function isDefaultEnabledStream() {
79
+        return true;
80
+    }
81 81
 
82
-	/**
83
-	 * @return bool True when the option can be changed for the mail
84
-	 * @since 11.0.0
85
-	 */
86
-	public function canChangeMail() {
87
-		return true;
88
-	}
82
+    /**
83
+     * @return bool True when the option can be changed for the mail
84
+     * @since 11.0.0
85
+     */
86
+    public function canChangeMail() {
87
+        return true;
88
+    }
89 89
 
90
-	/**
91
-	 * @return bool True when the option can be changed for the stream
92
-	 * @since 11.0.0
93
-	 */
94
-	public function isDefaultEnabledMail() {
95
-		return false;
96
-	}
90
+    /**
91
+     * @return bool True when the option can be changed for the stream
92
+     * @since 11.0.0
93
+     */
94
+    public function isDefaultEnabledMail() {
95
+        return false;
96
+    }
97 97
 }
98 98
 
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Activity/Setting/Todo.php 1 patch
Indentation   +59 added lines, -59 removed lines patch added patch discarded remove patch
@@ -27,72 +27,72 @@
 block discarded – undo
27 27
 
28 28
 class Todo implements ISetting {
29 29
 
30
-	/** @var IL10N */
31
-	protected $l;
30
+    /** @var IL10N */
31
+    protected $l;
32 32
 
33
-	/**
34
-	 * @param IL10N $l
35
-	 */
36
-	public function __construct(IL10N $l) {
37
-		$this->l = $l;
38
-	}
33
+    /**
34
+     * @param IL10N $l
35
+     */
36
+    public function __construct(IL10N $l) {
37
+        $this->l = $l;
38
+    }
39 39
 
40
-	/**
41
-	 * @return string Lowercase a-z and underscore only identifier
42
-	 * @since 11.0.0
43
-	 */
44
-	public function getIdentifier() {
45
-		return 'calendar_todo';
46
-	}
40
+    /**
41
+     * @return string Lowercase a-z and underscore only identifier
42
+     * @since 11.0.0
43
+     */
44
+    public function getIdentifier() {
45
+        return 'calendar_todo';
46
+    }
47 47
 
48
-	/**
49
-	 * @return string A translated string
50
-	 * @since 11.0.0
51
-	 */
52
-	public function getName() {
53
-		return $this->l->t('A calendar <strong>todo</strong> was modified');
54
-	}
48
+    /**
49
+     * @return string A translated string
50
+     * @since 11.0.0
51
+     */
52
+    public function getName() {
53
+        return $this->l->t('A calendar <strong>todo</strong> was modified');
54
+    }
55 55
 
56
-	/**
57
-	 * @return int whether the filter should be rather on the top or bottom of
58
-	 * the admin section. The filters are arranged in ascending order of the
59
-	 * priority values. It is required to return a value between 0 and 100.
60
-	 * @since 11.0.0
61
-	 */
62
-	public function getPriority() {
63
-		return 50;
64
-	}
56
+    /**
57
+     * @return int whether the filter should be rather on the top or bottom of
58
+     * the admin section. The filters are arranged in ascending order of the
59
+     * priority values. It is required to return a value between 0 and 100.
60
+     * @since 11.0.0
61
+     */
62
+    public function getPriority() {
63
+        return 50;
64
+    }
65 65
 
66
-	/**
67
-	 * @return bool True when the option can be changed for the stream
68
-	 * @since 11.0.0
69
-	 */
70
-	public function canChangeStream() {
71
-		return true;
72
-	}
66
+    /**
67
+     * @return bool True when the option can be changed for the stream
68
+     * @since 11.0.0
69
+     */
70
+    public function canChangeStream() {
71
+        return true;
72
+    }
73 73
 
74
-	/**
75
-	 * @return bool True when the option can be changed for the stream
76
-	 * @since 11.0.0
77
-	 */
78
-	public function isDefaultEnabledStream() {
79
-		return true;
80
-	}
74
+    /**
75
+     * @return bool True when the option can be changed for the stream
76
+     * @since 11.0.0
77
+     */
78
+    public function isDefaultEnabledStream() {
79
+        return true;
80
+    }
81 81
 
82
-	/**
83
-	 * @return bool True when the option can be changed for the mail
84
-	 * @since 11.0.0
85
-	 */
86
-	public function canChangeMail() {
87
-		return true;
88
-	}
82
+    /**
83
+     * @return bool True when the option can be changed for the mail
84
+     * @since 11.0.0
85
+     */
86
+    public function canChangeMail() {
87
+        return true;
88
+    }
89 89
 
90
-	/**
91
-	 * @return bool True when the option can be changed for the stream
92
-	 * @since 11.0.0
93
-	 */
94
-	public function isDefaultEnabledMail() {
95
-		return false;
96
-	}
90
+    /**
91
+     * @return bool True when the option can be changed for the stream
92
+     * @since 11.0.0
93
+     */
94
+    public function isDefaultEnabledMail() {
95
+        return false;
96
+    }
97 97
 }
98 98
 
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Publishing/PublishPlugin.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -89,7 +89,7 @@  discard block
 block discarded – undo
89 89
 	 *
90 90
 	 * @return string
91 91
 	 */
92
-	public function getPluginName()	{
92
+	public function getPluginName() {
93 93
 		return 'oc-calendar-publishing';
94 94
 	}
95 95
 
@@ -107,12 +107,12 @@  discard block
 block discarded – undo
107 107
 		$this->server = $server;
108 108
 
109 109
 		$this->server->on('method:POST', [$this, 'httpPost']);
110
-		$this->server->on('propFind',    [$this, 'propFind']);
110
+		$this->server->on('propFind', [$this, 'propFind']);
111 111
 	}
112 112
 
113 113
 	public function propFind(PropFind $propFind, INode $node) {
114 114
 		if ($node instanceof Calendar) {
115
-			$propFind->handle('{'.self::NS_CALENDARSERVER.'}publish-url', function () use ($node) {
115
+			$propFind->handle('{'.self::NS_CALENDARSERVER.'}publish-url', function() use ($node) {
116 116
 				if ($node->getPublishStatus()) {
117 117
 					// We return the publish-url only if the calendar is published.
118 118
 					$token = $node->getPublishStatus();
Please login to merge, or discard this patch.
Indentation   +190 added lines, -190 removed lines patch added patch discarded remove patch
@@ -37,197 +37,197 @@
 block discarded – undo
37 37
 use OCP\IConfig;
38 38
 
39 39
 class PublishPlugin extends ServerPlugin {
40
-	const NS_CALENDARSERVER = 'http://calendarserver.org/ns/';
41
-
42
-	/**
43
-	 * Reference to SabreDAV server object.
44
-	 *
45
-	 * @var \Sabre\DAV\Server
46
-	 */
47
-	protected $server;
48
-
49
-	/**
50
-	 * Config instance to get instance secret.
51
-	 *
52
-	 * @var IConfig
53
-	 */
54
-	protected $config;
55
-
56
-	/**
57
-	 * URL Generator for absolute URLs.
58
-	 *
59
-	 * @var IURLGenerator
60
-	 */
61
-	protected $urlGenerator;
62
-
63
-	/**
64
-	 * PublishPlugin constructor.
65
-	 *
66
-	 * @param IConfig $config
67
-	 * @param IURLGenerator $urlGenerator
68
-	 */
69
-	public function __construct(IConfig $config, IURLGenerator $urlGenerator) {
70
-		$this->config = $config;
71
-		$this->urlGenerator = $urlGenerator;
72
-	}
73
-
74
-	/**
75
-	 * This method should return a list of server-features.
76
-	 *
77
-	 * This is for example 'versioning' and is added to the DAV: header
78
-	 * in an OPTIONS response.
79
-	 *
80
-	 * @return string[]
81
-	 */
82
-	public function getFeatures() {
83
-		// May have to be changed to be detected
84
-		return ['oc-calendar-publishing', 'calendarserver-sharing'];
85
-	}
86
-
87
-	/**
88
-	 * Returns a plugin name.
89
-	 *
90
-	 * Using this name other plugins will be able to access other plugins
91
-	 * using Sabre\DAV\Server::getPlugin
92
-	 *
93
-	 * @return string
94
-	 */
95
-	public function getPluginName()	{
96
-		return 'oc-calendar-publishing';
97
-	}
98
-
99
-	/**
100
-	 * This initializes the plugin.
101
-	 *
102
-	 * This function is called by Sabre\DAV\Server, after
103
-	 * addPlugin is called.
104
-	 *
105
-	 * This method should set up the required event subscriptions.
106
-	 *
107
-	 * @param Server $server
108
-	 */
109
-	public function initialize(Server $server) {
110
-		$this->server = $server;
111
-
112
-		$this->server->on('method:POST', [$this, 'httpPost']);
113
-		$this->server->on('propFind',    [$this, 'propFind']);
114
-	}
115
-
116
-	public function propFind(PropFind $propFind, INode $node) {
117
-		if ($node instanceof Calendar) {
118
-			$propFind->handle('{'.self::NS_CALENDARSERVER.'}publish-url', function () use ($node) {
119
-				if ($node->getPublishStatus()) {
120
-					// We return the publish-url only if the calendar is published.
121
-					$token = $node->getPublishStatus();
122
-					$publishUrl = $this->urlGenerator->getAbsoluteURL($this->server->getBaseUri().'public-calendars/').$token;
123
-
124
-					return new Publisher($publishUrl, true);
125
-				}
126
-			});
127
-
128
-			$propFind->handle('{'.self::NS_CALENDARSERVER.'}allowed-sharing-modes', function() use ($node) {
129
-				$canShare = (!$node->isSubscription() && $node->canWrite());
130
-				$canPublish = (!$node->isSubscription() && $node->canWrite());
131
-
132
-				return new AllowedSharingModes($canShare, $canPublish);
133
-			});
134
-		}
135
-	}
136
-
137
-	/**
138
-	 * We intercept this to handle POST requests on calendars.
139
-	 *
140
-	 * @param RequestInterface $request
141
-	 * @param ResponseInterface $response
142
-	 *
143
-	 * @return void|bool
144
-	 */
145
-	public function httpPost(RequestInterface $request, ResponseInterface $response) {
146
-		$path = $request->getPath();
147
-
148
-		// Only handling xml
149
-		$contentType = $request->getHeader('Content-Type');
150
-		if (strpos($contentType, 'application/xml') === false && strpos($contentType, 'text/xml') === false) {
151
-			return;
152
-		}
153
-
154
-		// Making sure the node exists
155
-		try {
156
-			$node = $this->server->tree->getNodeForPath($path);
157
-		} catch (NotFound $e) {
158
-			return;
159
-		}
160
-
161
-		$requestBody = $request->getBodyAsString();
162
-
163
-		// If this request handler could not deal with this POST request, it
164
-		// will return 'null' and other plugins get a chance to handle the
165
-		// request.
166
-		//
167
-		// However, we already requested the full body. This is a problem,
168
-		// because a body can only be read once. This is why we preemptively
169
-		// re-populated the request body with the existing data.
170
-		$request->setBody($requestBody);
171
-
172
-		$this->server->xml->parse($requestBody, $request->getUrl(), $documentType);
173
-
174
-		switch ($documentType) {
175
-
176
-			case '{'.self::NS_CALENDARSERVER.'}publish-calendar' :
177
-
178
-			// We can only deal with IShareableCalendar objects
179
-			if (!$node instanceof Calendar) {
180
-				return;
181
-			}
182
-			$this->server->transactionType = 'post-publish-calendar';
183
-
184
-			// Getting ACL info
185
-			$acl = $this->server->getPlugin('acl');
186
-
187
-			// If there's no ACL support, we allow everything
188
-			if ($acl) {
189
-				$acl->checkPrivileges($path, '{DAV:}write');
190
-			}
191
-
192
-			$node->setPublishStatus(true);
193
-
194
-			// iCloud sends back the 202, so we will too.
195
-			$response->setStatus(202);
196
-
197
-			// Adding this because sending a response body may cause issues,
198
-			// and I wanted some type of indicator the response was handled.
199
-			$response->setHeader('X-Sabre-Status', 'everything-went-well');
200
-
201
-			// Breaking the event chain
202
-			return false;
203
-
204
-			case '{'.self::NS_CALENDARSERVER.'}unpublish-calendar' :
205
-
206
-			// We can only deal with IShareableCalendar objects
207
-			if (!$node instanceof Calendar) {
208
-				return;
209
-			}
210
-			$this->server->transactionType = 'post-unpublish-calendar';
211
-
212
-			// Getting ACL info
213
-			$acl = $this->server->getPlugin('acl');
214
-
215
-			// If there's no ACL support, we allow everything
216
-			if ($acl) {
217
-				$acl->checkPrivileges($path, '{DAV:}write');
218
-			}
219
-
220
-			$node->setPublishStatus(false);
221
-
222
-			$response->setStatus(200);
40
+    const NS_CALENDARSERVER = 'http://calendarserver.org/ns/';
41
+
42
+    /**
43
+     * Reference to SabreDAV server object.
44
+     *
45
+     * @var \Sabre\DAV\Server
46
+     */
47
+    protected $server;
48
+
49
+    /**
50
+     * Config instance to get instance secret.
51
+     *
52
+     * @var IConfig
53
+     */
54
+    protected $config;
55
+
56
+    /**
57
+     * URL Generator for absolute URLs.
58
+     *
59
+     * @var IURLGenerator
60
+     */
61
+    protected $urlGenerator;
62
+
63
+    /**
64
+     * PublishPlugin constructor.
65
+     *
66
+     * @param IConfig $config
67
+     * @param IURLGenerator $urlGenerator
68
+     */
69
+    public function __construct(IConfig $config, IURLGenerator $urlGenerator) {
70
+        $this->config = $config;
71
+        $this->urlGenerator = $urlGenerator;
72
+    }
73
+
74
+    /**
75
+     * This method should return a list of server-features.
76
+     *
77
+     * This is for example 'versioning' and is added to the DAV: header
78
+     * in an OPTIONS response.
79
+     *
80
+     * @return string[]
81
+     */
82
+    public function getFeatures() {
83
+        // May have to be changed to be detected
84
+        return ['oc-calendar-publishing', 'calendarserver-sharing'];
85
+    }
86
+
87
+    /**
88
+     * Returns a plugin name.
89
+     *
90
+     * Using this name other plugins will be able to access other plugins
91
+     * using Sabre\DAV\Server::getPlugin
92
+     *
93
+     * @return string
94
+     */
95
+    public function getPluginName()	{
96
+        return 'oc-calendar-publishing';
97
+    }
98
+
99
+    /**
100
+     * This initializes the plugin.
101
+     *
102
+     * This function is called by Sabre\DAV\Server, after
103
+     * addPlugin is called.
104
+     *
105
+     * This method should set up the required event subscriptions.
106
+     *
107
+     * @param Server $server
108
+     */
109
+    public function initialize(Server $server) {
110
+        $this->server = $server;
111
+
112
+        $this->server->on('method:POST', [$this, 'httpPost']);
113
+        $this->server->on('propFind',    [$this, 'propFind']);
114
+    }
115
+
116
+    public function propFind(PropFind $propFind, INode $node) {
117
+        if ($node instanceof Calendar) {
118
+            $propFind->handle('{'.self::NS_CALENDARSERVER.'}publish-url', function () use ($node) {
119
+                if ($node->getPublishStatus()) {
120
+                    // We return the publish-url only if the calendar is published.
121
+                    $token = $node->getPublishStatus();
122
+                    $publishUrl = $this->urlGenerator->getAbsoluteURL($this->server->getBaseUri().'public-calendars/').$token;
123
+
124
+                    return new Publisher($publishUrl, true);
125
+                }
126
+            });
127
+
128
+            $propFind->handle('{'.self::NS_CALENDARSERVER.'}allowed-sharing-modes', function() use ($node) {
129
+                $canShare = (!$node->isSubscription() && $node->canWrite());
130
+                $canPublish = (!$node->isSubscription() && $node->canWrite());
131
+
132
+                return new AllowedSharingModes($canShare, $canPublish);
133
+            });
134
+        }
135
+    }
136
+
137
+    /**
138
+     * We intercept this to handle POST requests on calendars.
139
+     *
140
+     * @param RequestInterface $request
141
+     * @param ResponseInterface $response
142
+     *
143
+     * @return void|bool
144
+     */
145
+    public function httpPost(RequestInterface $request, ResponseInterface $response) {
146
+        $path = $request->getPath();
147
+
148
+        // Only handling xml
149
+        $contentType = $request->getHeader('Content-Type');
150
+        if (strpos($contentType, 'application/xml') === false && strpos($contentType, 'text/xml') === false) {
151
+            return;
152
+        }
153
+
154
+        // Making sure the node exists
155
+        try {
156
+            $node = $this->server->tree->getNodeForPath($path);
157
+        } catch (NotFound $e) {
158
+            return;
159
+        }
160
+
161
+        $requestBody = $request->getBodyAsString();
162
+
163
+        // If this request handler could not deal with this POST request, it
164
+        // will return 'null' and other plugins get a chance to handle the
165
+        // request.
166
+        //
167
+        // However, we already requested the full body. This is a problem,
168
+        // because a body can only be read once. This is why we preemptively
169
+        // re-populated the request body with the existing data.
170
+        $request->setBody($requestBody);
171
+
172
+        $this->server->xml->parse($requestBody, $request->getUrl(), $documentType);
173
+
174
+        switch ($documentType) {
175
+
176
+            case '{'.self::NS_CALENDARSERVER.'}publish-calendar' :
177
+
178
+            // We can only deal with IShareableCalendar objects
179
+            if (!$node instanceof Calendar) {
180
+                return;
181
+            }
182
+            $this->server->transactionType = 'post-publish-calendar';
183
+
184
+            // Getting ACL info
185
+            $acl = $this->server->getPlugin('acl');
186
+
187
+            // If there's no ACL support, we allow everything
188
+            if ($acl) {
189
+                $acl->checkPrivileges($path, '{DAV:}write');
190
+            }
191
+
192
+            $node->setPublishStatus(true);
193
+
194
+            // iCloud sends back the 202, so we will too.
195
+            $response->setStatus(202);
196
+
197
+            // Adding this because sending a response body may cause issues,
198
+            // and I wanted some type of indicator the response was handled.
199
+            $response->setHeader('X-Sabre-Status', 'everything-went-well');
200
+
201
+            // Breaking the event chain
202
+            return false;
203
+
204
+            case '{'.self::NS_CALENDARSERVER.'}unpublish-calendar' :
205
+
206
+            // We can only deal with IShareableCalendar objects
207
+            if (!$node instanceof Calendar) {
208
+                return;
209
+            }
210
+            $this->server->transactionType = 'post-unpublish-calendar';
211
+
212
+            // Getting ACL info
213
+            $acl = $this->server->getPlugin('acl');
214
+
215
+            // If there's no ACL support, we allow everything
216
+            if ($acl) {
217
+                $acl->checkPrivileges($path, '{DAV:}write');
218
+            }
219
+
220
+            $node->setPublishStatus(false);
221
+
222
+            $response->setStatus(200);
223 223
 
224
-			// Adding this because sending a response body may cause issues,
225
-			// and I wanted some type of indicator the response was handled.
226
-			$response->setHeader('X-Sabre-Status', 'everything-went-well');
224
+            // Adding this because sending a response body may cause issues,
225
+            // and I wanted some type of indicator the response was handled.
226
+            $response->setHeader('X-Sabre-Status', 'everything-went-well');
227 227
 
228
-			// Breaking the event chain
229
-			return false;
228
+            // Breaking the event chain
229
+            return false;
230 230
 
231
-		}
232
-	}
231
+        }
232
+    }
233 233
 }
Please login to merge, or discard this patch.