Completed
Pull Request — master (#3233)
by Christoph
95:52 queued 83:56
created
apps/dav/lib/CalDAV/Activity/Provider/Event.php 1 patch
Indentation   +103 added lines, -103 removed lines patch added patch discarded remove patch
@@ -31,107 +31,107 @@
 block discarded – undo
31 31
 
32 32
 class Event extends Base {
33 33
 
34
-	const SUBJECT_OBJECT_ADD = 'object_add';
35
-	const SUBJECT_OBJECT_UPDATE = 'object_update';
36
-	const SUBJECT_OBJECT_DELETE = 'object_delete';
37
-
38
-	/** @var IFactory */
39
-	protected $languageFactory;
40
-
41
-	/** @var IL10N */
42
-	protected $l;
43
-
44
-	/** @var IURLGenerator */
45
-	protected $url;
46
-
47
-	/** @var IManager */
48
-	protected $activityManager;
49
-
50
-	/** @var IEventMerger */
51
-	protected $eventMerger;
52
-
53
-	/**
54
-	 * @param IFactory $languageFactory
55
-	 * @param IURLGenerator $url
56
-	 * @param IManager $activityManager
57
-	 * @param IUserManager $userManager
58
-	 * @param IEventMerger $eventMerger
59
-	 */
60
-	public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IEventMerger $eventMerger) {
61
-		parent::__construct($userManager);
62
-		$this->languageFactory = $languageFactory;
63
-		$this->url = $url;
64
-		$this->activityManager = $activityManager;
65
-		$this->eventMerger = $eventMerger;
66
-	}
67
-
68
-	/**
69
-	 * @param string $language
70
-	 * @param IEvent $event
71
-	 * @param IEvent|null $previousEvent
72
-	 * @return IEvent
73
-	 * @throws \InvalidArgumentException
74
-	 * @since 11.0.0
75
-	 */
76
-	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
77
-		if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar_event') {
78
-			throw new \InvalidArgumentException();
79
-		}
80
-
81
-		$this->l = $this->languageFactory->get('dav', $language);
82
-
83
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.svg')));
84
-
85
-		if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event') {
86
-			$subject = $this->l->t('{actor} created event {event} in calendar {calendar}');
87
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event_self') {
88
-			$subject = $this->l->t('You created event {event} in calendar {calendar}');
89
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_event') {
90
-			$subject = $this->l->t('{actor} deleted event {event} from calendar {calendar}');
91
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_event_self') {
92
-			$subject = $this->l->t('You deleted event {event} from calendar {calendar}');
93
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_event') {
94
-			$subject = $this->l->t('{actor} updated event {event} in calendar {calendar}');
95
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_event_self') {
96
-			$subject = $this->l->t('You updated event {event} in calendar {calendar}');
97
-		} else {
98
-			throw new \InvalidArgumentException();
99
-		}
100
-
101
-		$parsedParameters = $this->getParameters($event);
102
-		$this->setSubjects($event, $subject, $parsedParameters);
103
-
104
-		$event = $this->eventMerger->mergeEvents('event', $event, $previousEvent);
105
-
106
-		return $event;
107
-	}
108
-
109
-	/**
110
-	 * @param IEvent $event
111
-	 * @return array
112
-	 */
113
-	protected function getParameters(IEvent $event) {
114
-		$subject = $event->getSubject();
115
-		$parameters = $event->getSubjectParameters();
116
-
117
-		switch ($subject) {
118
-			case self::SUBJECT_OBJECT_ADD . '_event':
119
-			case self::SUBJECT_OBJECT_DELETE . '_event':
120
-			case self::SUBJECT_OBJECT_UPDATE . '_event':
121
-				return [
122
-					'actor' => $this->generateUserParameter($parameters[0]),
123
-					'calendar' => $this->generateCalendarParameter($event->getObjectId(), $parameters[1]),
124
-					'event' => $this->generateObjectParameter($parameters[2]),
125
-				];
126
-			case self::SUBJECT_OBJECT_ADD . '_event_self':
127
-			case self::SUBJECT_OBJECT_DELETE . '_event_self':
128
-			case self::SUBJECT_OBJECT_UPDATE . '_event_self':
129
-				return [
130
-					'calendar' => $this->generateCalendarParameter($event->getObjectId(), $parameters[1]),
131
-					'event' => $this->generateObjectParameter($parameters[2]),
132
-				];
133
-		}
134
-
135
-		throw new \InvalidArgumentException();
136
-	}
34
+    const SUBJECT_OBJECT_ADD = 'object_add';
35
+    const SUBJECT_OBJECT_UPDATE = 'object_update';
36
+    const SUBJECT_OBJECT_DELETE = 'object_delete';
37
+
38
+    /** @var IFactory */
39
+    protected $languageFactory;
40
+
41
+    /** @var IL10N */
42
+    protected $l;
43
+
44
+    /** @var IURLGenerator */
45
+    protected $url;
46
+
47
+    /** @var IManager */
48
+    protected $activityManager;
49
+
50
+    /** @var IEventMerger */
51
+    protected $eventMerger;
52
+
53
+    /**
54
+     * @param IFactory $languageFactory
55
+     * @param IURLGenerator $url
56
+     * @param IManager $activityManager
57
+     * @param IUserManager $userManager
58
+     * @param IEventMerger $eventMerger
59
+     */
60
+    public function __construct(IFactory $languageFactory, IURLGenerator $url, IManager $activityManager, IUserManager $userManager, IEventMerger $eventMerger) {
61
+        parent::__construct($userManager);
62
+        $this->languageFactory = $languageFactory;
63
+        $this->url = $url;
64
+        $this->activityManager = $activityManager;
65
+        $this->eventMerger = $eventMerger;
66
+    }
67
+
68
+    /**
69
+     * @param string $language
70
+     * @param IEvent $event
71
+     * @param IEvent|null $previousEvent
72
+     * @return IEvent
73
+     * @throws \InvalidArgumentException
74
+     * @since 11.0.0
75
+     */
76
+    public function parse($language, IEvent $event, IEvent $previousEvent = null) {
77
+        if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar_event') {
78
+            throw new \InvalidArgumentException();
79
+        }
80
+
81
+        $this->l = $this->languageFactory->get('dav', $language);
82
+
83
+        $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.svg')));
84
+
85
+        if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event') {
86
+            $subject = $this->l->t('{actor} created event {event} in calendar {calendar}');
87
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event_self') {
88
+            $subject = $this->l->t('You created event {event} in calendar {calendar}');
89
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_event') {
90
+            $subject = $this->l->t('{actor} deleted event {event} from calendar {calendar}');
91
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_event_self') {
92
+            $subject = $this->l->t('You deleted event {event} from calendar {calendar}');
93
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_event') {
94
+            $subject = $this->l->t('{actor} updated event {event} in calendar {calendar}');
95
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_event_self') {
96
+            $subject = $this->l->t('You updated event {event} in calendar {calendar}');
97
+        } else {
98
+            throw new \InvalidArgumentException();
99
+        }
100
+
101
+        $parsedParameters = $this->getParameters($event);
102
+        $this->setSubjects($event, $subject, $parsedParameters);
103
+
104
+        $event = $this->eventMerger->mergeEvents('event', $event, $previousEvent);
105
+
106
+        return $event;
107
+    }
108
+
109
+    /**
110
+     * @param IEvent $event
111
+     * @return array
112
+     */
113
+    protected function getParameters(IEvent $event) {
114
+        $subject = $event->getSubject();
115
+        $parameters = $event->getSubjectParameters();
116
+
117
+        switch ($subject) {
118
+            case self::SUBJECT_OBJECT_ADD . '_event':
119
+            case self::SUBJECT_OBJECT_DELETE . '_event':
120
+            case self::SUBJECT_OBJECT_UPDATE . '_event':
121
+                return [
122
+                    'actor' => $this->generateUserParameter($parameters[0]),
123
+                    'calendar' => $this->generateCalendarParameter($event->getObjectId(), $parameters[1]),
124
+                    'event' => $this->generateObjectParameter($parameters[2]),
125
+                ];
126
+            case self::SUBJECT_OBJECT_ADD . '_event_self':
127
+            case self::SUBJECT_OBJECT_DELETE . '_event_self':
128
+            case self::SUBJECT_OBJECT_UPDATE . '_event_self':
129
+                return [
130
+                    'calendar' => $this->generateCalendarParameter($event->getObjectId(), $parameters[1]),
131
+                    'event' => $this->generateObjectParameter($parameters[2]),
132
+                ];
133
+        }
134
+
135
+        throw new \InvalidArgumentException();
136
+    }
137 137
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Activity/Provider/Todo.php 1 patch
Indentation   +72 added lines, -72 removed lines patch added patch discarded remove patch
@@ -25,86 +25,86 @@
 block discarded – undo
25 25
 
26 26
 class Todo extends Event {
27 27
 
28
-	/**
29
-	 * @param string $language
30
-	 * @param IEvent $event
31
-	 * @param IEvent|null $previousEvent
32
-	 * @return IEvent
33
-	 * @throws \InvalidArgumentException
34
-	 * @since 11.0.0
35
-	 */
36
-	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
37
-		if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar_todo') {
38
-			throw new \InvalidArgumentException();
39
-		}
28
+    /**
29
+     * @param string $language
30
+     * @param IEvent $event
31
+     * @param IEvent|null $previousEvent
32
+     * @return IEvent
33
+     * @throws \InvalidArgumentException
34
+     * @since 11.0.0
35
+     */
36
+    public function parse($language, IEvent $event, IEvent $previousEvent = null) {
37
+        if ($event->getApp() !== 'dav' || $event->getType() !== 'calendar_todo') {
38
+            throw new \InvalidArgumentException();
39
+        }
40 40
 
41
-		$this->l = $this->languageFactory->get('dav', $language);
41
+        $this->l = $this->languageFactory->get('dav', $language);
42 42
 
43
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/checkmark.svg')));
43
+        $event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/checkmark.svg')));
44 44
 
45
-		if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_todo') {
46
-			$subject = $this->l->t('{actor} created todo {todo} in list {calendar}');
47
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_todo_self') {
48
-			$subject = $this->l->t('You created todo {todo} in list {calendar}');
49
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_todo') {
50
-			$subject = $this->l->t('{actor} deleted todo {todo} from list {calendar}');
51
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_todo_self') {
52
-			$subject = $this->l->t('You deleted todo {todo} from list {calendar}');
53
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo') {
54
-			$subject = $this->l->t('{actor} updated todo {todo} in list {calendar}');
55
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_self') {
56
-			$subject = $this->l->t('You updated todo {todo} in list {calendar}');
45
+        if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_todo') {
46
+            $subject = $this->l->t('{actor} created todo {todo} in list {calendar}');
47
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_todo_self') {
48
+            $subject = $this->l->t('You created todo {todo} in list {calendar}');
49
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_todo') {
50
+            $subject = $this->l->t('{actor} deleted todo {todo} from list {calendar}');
51
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_DELETE . '_todo_self') {
52
+            $subject = $this->l->t('You deleted todo {todo} from list {calendar}');
53
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo') {
54
+            $subject = $this->l->t('{actor} updated todo {todo} in list {calendar}');
55
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_self') {
56
+            $subject = $this->l->t('You updated todo {todo} in list {calendar}');
57 57
 
58
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_completed') {
59
-			$subject = $this->l->t('{actor} solved todo {todo} in list {calendar}');
60
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_completed_self') {
61
-			$subject = $this->l->t('You solved todo {todo} in list {calendar}');
62
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action') {
63
-			$subject = $this->l->t('{actor} reopened todo {todo} in list {calendar}');
64
-		} else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action_self') {
65
-			$subject = $this->l->t('You reopened todo {todo} in list {calendar}');
66
-		} else {
67
-			throw new \InvalidArgumentException();
68
-		}
58
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_completed') {
59
+            $subject = $this->l->t('{actor} solved todo {todo} in list {calendar}');
60
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_completed_self') {
61
+            $subject = $this->l->t('You solved todo {todo} in list {calendar}');
62
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action') {
63
+            $subject = $this->l->t('{actor} reopened todo {todo} in list {calendar}');
64
+        } else if ($event->getSubject() === self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action_self') {
65
+            $subject = $this->l->t('You reopened todo {todo} in list {calendar}');
66
+        } else {
67
+            throw new \InvalidArgumentException();
68
+        }
69 69
 
70
-		$parsedParameters = $this->getParameters($event);
71
-		$this->setSubjects($event, $subject, $parsedParameters);
70
+        $parsedParameters = $this->getParameters($event);
71
+        $this->setSubjects($event, $subject, $parsedParameters);
72 72
 
73
-		$event = $this->eventMerger->mergeEvents('todo', $event, $previousEvent);
73
+        $event = $this->eventMerger->mergeEvents('todo', $event, $previousEvent);
74 74
 
75
-		return $event;
76
-	}
75
+        return $event;
76
+    }
77 77
 
78
-	/**
79
-	 * @param IEvent $event
80
-	 * @return array
81
-	 */
82
-	protected function getParameters(IEvent $event) {
83
-		$subject = $event->getSubject();
84
-		$parameters = $event->getSubjectParameters();
78
+    /**
79
+     * @param IEvent $event
80
+     * @return array
81
+     */
82
+    protected function getParameters(IEvent $event) {
83
+        $subject = $event->getSubject();
84
+        $parameters = $event->getSubjectParameters();
85 85
 
86
-		switch ($subject) {
87
-			case self::SUBJECT_OBJECT_ADD . '_todo':
88
-			case self::SUBJECT_OBJECT_DELETE . '_todo':
89
-			case self::SUBJECT_OBJECT_UPDATE . '_todo':
90
-			case self::SUBJECT_OBJECT_UPDATE . '_todo_completed':
91
-			case self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action':
92
-				return [
93
-					'actor' => $this->generateUserParameter($parameters[0]),
94
-					'calendar' => $this->generateCalendarParameter($event->getObjectId(), $parameters[1]),
95
-					'todo' => $this->generateObjectParameter($parameters[2]),
96
-				];
97
-			case self::SUBJECT_OBJECT_ADD . '_todo_self':
98
-			case self::SUBJECT_OBJECT_DELETE . '_todo_self':
99
-			case self::SUBJECT_OBJECT_UPDATE . '_todo_self':
100
-			case self::SUBJECT_OBJECT_UPDATE . '_todo_completed_self':
101
-			case self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action_self':
102
-				return [
103
-					'calendar' => $this->generateCalendarParameter($event->getObjectId(), $parameters[1]),
104
-					'todo' => $this->generateObjectParameter($parameters[2]),
105
-				];
106
-		}
86
+        switch ($subject) {
87
+            case self::SUBJECT_OBJECT_ADD . '_todo':
88
+            case self::SUBJECT_OBJECT_DELETE . '_todo':
89
+            case self::SUBJECT_OBJECT_UPDATE . '_todo':
90
+            case self::SUBJECT_OBJECT_UPDATE . '_todo_completed':
91
+            case self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action':
92
+                return [
93
+                    'actor' => $this->generateUserParameter($parameters[0]),
94
+                    'calendar' => $this->generateCalendarParameter($event->getObjectId(), $parameters[1]),
95
+                    'todo' => $this->generateObjectParameter($parameters[2]),
96
+                ];
97
+            case self::SUBJECT_OBJECT_ADD . '_todo_self':
98
+            case self::SUBJECT_OBJECT_DELETE . '_todo_self':
99
+            case self::SUBJECT_OBJECT_UPDATE . '_todo_self':
100
+            case self::SUBJECT_OBJECT_UPDATE . '_todo_completed_self':
101
+            case self::SUBJECT_OBJECT_UPDATE . '_todo_needs_action_self':
102
+                return [
103
+                    'calendar' => $this->generateCalendarParameter($event->getObjectId(), $parameters[1]),
104
+                    'todo' => $this->generateObjectParameter($parameters[2]),
105
+                ];
106
+        }
107 107
 
108
-		throw new \InvalidArgumentException();
109
-	}
108
+        throw new \InvalidArgumentException();
109
+    }
110 110
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/Activity/Filter/Calendar.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 Calendar 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';
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';
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('Calendar');
56
-	}
50
+    /**
51
+     * @return string A translated string
52
+     * @since 11.0.0
53
+     */
54
+    public function getName() {
55
+        return $this->l->t('Calendar');
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', 'places/calendar-dark.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', 'places/calendar-dark.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', 'calendar_event'], $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', 'calendar_event'], $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/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/Activity/Backend.php 1 patch
Indentation   +429 added lines, -429 removed lines patch added patch discarded remove patch
@@ -39,433 +39,433 @@
 block discarded – undo
39 39
  */
40 40
 class Backend {
41 41
 
42
-	/** @var IActivityManager */
43
-	protected $activityManager;
44
-
45
-	/** @var IGroupManager */
46
-	protected $groupManager;
47
-
48
-	/** @var IUserSession */
49
-	protected $userSession;
50
-
51
-	/**
52
-	 * @param IActivityManager $activityManager
53
-	 * @param IGroupManager $groupManager
54
-	 * @param IUserSession $userSession
55
-	 */
56
-	public function __construct(IActivityManager $activityManager, IGroupManager $groupManager, IUserSession $userSession) {
57
-		$this->activityManager = $activityManager;
58
-		$this->groupManager = $groupManager;
59
-		$this->userSession = $userSession;
60
-	}
61
-
62
-	/**
63
-	 * Creates activities when a calendar was creates
64
-	 *
65
-	 * @param array $calendarData
66
-	 */
67
-	public function onCalendarAdd(array $calendarData) {
68
-		$this->triggerCalendarActivity(Calendar::SUBJECT_ADD, $calendarData);
69
-	}
70
-
71
-	/**
72
-	 * Creates activities when a calendar was updated
73
-	 *
74
-	 * @param array $calendarData
75
-	 * @param array $shares
76
-	 * @param array $properties
77
-	 */
78
-	public function onCalendarUpdate(array $calendarData, array $shares, array $properties) {
79
-		$this->triggerCalendarActivity(Calendar::SUBJECT_UPDATE, $calendarData, $shares, $properties);
80
-	}
81
-
82
-	/**
83
-	 * Creates activities when a calendar was deleted
84
-	 *
85
-	 * @param array $calendarData
86
-	 * @param array $shares
87
-	 */
88
-	public function onCalendarDelete(array $calendarData, array $shares) {
89
-		$this->triggerCalendarActivity(Calendar::SUBJECT_DELETE, $calendarData, $shares);
90
-	}
91
-
92
-	/**
93
-	 * Creates activities for all related users when a calendar was touched
94
-	 *
95
-	 * @param string $action
96
-	 * @param array $calendarData
97
-	 * @param array $shares
98
-	 * @param array $changedProperties
99
-	 */
100
-	protected function triggerCalendarActivity($action, array $calendarData, array $shares = [], array $changedProperties = []) {
101
-		if (!isset($calendarData['principaluri'])) {
102
-			return;
103
-		}
104
-
105
-		$principal = explode('/', $calendarData['principaluri']);
106
-		$owner = array_pop($principal);
107
-
108
-		$currentUser = $this->userSession->getUser();
109
-		if ($currentUser instanceof IUser) {
110
-			$currentUser = $currentUser->getUID();
111
-		} else {
112
-			$currentUser = $owner;
113
-		}
114
-
115
-		$event = $this->activityManager->generateEvent();
116
-		$event->setApp('dav')
117
-			->setObject('calendar', (int) $calendarData['id'])
118
-			->setType('calendar')
119
-			->setAuthor($currentUser);
120
-
121
-		$changedVisibleInformation = array_intersect([
122
-			'{DAV:}displayname',
123
-			'{http://apple.com/ns/ical/}calendar-color'
124
-		], array_keys($changedProperties));
125
-
126
-		if (empty($shares) || ($action === Calendar::SUBJECT_UPDATE && empty($changedVisibleInformation))) {
127
-			$users = [$owner];
128
-		} else {
129
-			$users = $this->getUsersForShares($shares);
130
-			$users[] = $owner;
131
-		}
132
-
133
-		foreach ($users as $user) {
134
-			$event->setAffectedUser($user)
135
-				->setSubject(
136
-					$user === $currentUser ? $action . '_self' : $action,
137
-					[
138
-						$currentUser,
139
-						$calendarData['{DAV:}displayname'],
140
-					]
141
-				);
142
-			$this->activityManager->publish($event);
143
-		}
144
-	}
145
-
146
-	/**
147
-	 * Creates activities for all related users when a calendar was (un-)shared
148
-	 *
149
-	 * @param array $calendarData
150
-	 * @param array $shares
151
-	 * @param array $add
152
-	 * @param array $remove
153
-	 */
154
-	public function onCalendarUpdateShares(array $calendarData, array $shares, array $add, array $remove) {
155
-		$principal = explode('/', $calendarData['principaluri']);
156
-		$owner = $principal[2];
157
-
158
-		$currentUser = $this->userSession->getUser();
159
-		if ($currentUser instanceof IUser) {
160
-			$currentUser = $currentUser->getUID();
161
-		} else {
162
-			$currentUser = $owner;
163
-		}
164
-
165
-		$event = $this->activityManager->generateEvent();
166
-		$event->setApp('dav')
167
-			->setObject('calendar', (int) $calendarData['id'])
168
-			->setType('calendar')
169
-			->setAuthor($currentUser);
170
-
171
-		foreach ($remove as $principal) {
172
-			// principal:principals/users/test
173
-			$parts = explode(':', $principal, 2);
174
-			if ($parts[0] !== 'principal') {
175
-				continue;
176
-			}
177
-			$principal = explode('/', $parts[1]);
178
-
179
-			if ($principal[1] === 'users') {
180
-				$this->triggerActivityUser(
181
-					$principal[2],
182
-					$event,
183
-					$calendarData,
184
-					Calendar::SUBJECT_UNSHARE_USER,
185
-					Calendar::SUBJECT_DELETE . '_self'
186
-				);
187
-
188
-				if ($owner !== $principal[2]) {
189
-					$parameters = [
190
-						$principal[2],
191
-						$calendarData['{DAV:}displayname'],
192
-					];
193
-
194
-					if ($owner === $event->getAuthor()) {
195
-						$subject = Calendar::SUBJECT_UNSHARE_USER . '_you';
196
-					} else if ($principal[2] === $event->getAuthor()) {
197
-						$subject = Calendar::SUBJECT_UNSHARE_USER . '_self';
198
-					} else {
199
-						$event->setAffectedUser($event->getAuthor())
200
-							->setSubject(Calendar::SUBJECT_UNSHARE_USER . '_you', $parameters);
201
-						$this->activityManager->publish($event);
202
-
203
-						$subject = Calendar::SUBJECT_UNSHARE_USER . '_by';
204
-						$parameters[] = $event->getAuthor();
205
-					}
206
-
207
-					$event->setAffectedUser($owner)
208
-						->setSubject($subject, $parameters);
209
-					$this->activityManager->publish($event);
210
-				}
211
-			} else if ($principal[1] === 'groups') {
212
-				$this->triggerActivityGroup($principal[2], $event, $calendarData, Calendar::SUBJECT_UNSHARE_USER);
213
-
214
-				$parameters = [
215
-					$principal[2],
216
-					$calendarData['{DAV:}displayname'],
217
-				];
218
-
219
-				if ($owner === $event->getAuthor()) {
220
-					$subject = Calendar::SUBJECT_UNSHARE_GROUP . '_you';
221
-				} else {
222
-					$event->setAffectedUser($event->getAuthor())
223
-						->setSubject(Calendar::SUBJECT_UNSHARE_GROUP . '_you', $parameters);
224
-					$this->activityManager->publish($event);
225
-
226
-					$subject = Calendar::SUBJECT_UNSHARE_GROUP . '_by';
227
-					$parameters[] = $event->getAuthor();
228
-				}
229
-
230
-				$event->setAffectedUser($owner)
231
-					->setSubject($subject, $parameters);
232
-				$this->activityManager->publish($event);
233
-			}
234
-		}
235
-
236
-		foreach ($add as $share) {
237
-			if ($this->isAlreadyShared($share['href'], $shares)) {
238
-				continue;
239
-			}
240
-
241
-			// principal:principals/users/test
242
-			$parts = explode(':', $share['href'], 2);
243
-			if ($parts[0] !== 'principal') {
244
-				continue;
245
-			}
246
-			$principal = explode('/', $parts[1]);
247
-
248
-			if ($principal[1] === 'users') {
249
-				$this->triggerActivityUser($principal[2], $event, $calendarData, Calendar::SUBJECT_SHARE_USER);
250
-
251
-				if ($owner !== $principal[2]) {
252
-					$parameters = [
253
-						$principal[2],
254
-						$calendarData['{DAV:}displayname'],
255
-					];
256
-
257
-					if ($owner === $event->getAuthor()) {
258
-						$subject = Calendar::SUBJECT_SHARE_USER . '_you';
259
-					} else {
260
-						$event->setAffectedUser($event->getAuthor())
261
-							->setSubject(Calendar::SUBJECT_SHARE_USER . '_you', $parameters);
262
-						$this->activityManager->publish($event);
263
-
264
-						$subject = Calendar::SUBJECT_SHARE_USER . '_by';
265
-						$parameters[] = $event->getAuthor();
266
-					}
267
-
268
-					$event->setAffectedUser($owner)
269
-						->setSubject($subject, $parameters);
270
-					$this->activityManager->publish($event);
271
-				}
272
-			} else if ($principal[1] === 'groups') {
273
-				$this->triggerActivityGroup($principal[2], $event, $calendarData, Calendar::SUBJECT_SHARE_USER);
274
-
275
-				$parameters = [
276
-					$principal[2],
277
-					$calendarData['{DAV:}displayname'],
278
-				];
279
-
280
-				if ($owner === $event->getAuthor()) {
281
-					$subject = Calendar::SUBJECT_SHARE_GROUP . '_you';
282
-				} else {
283
-					$event->setAffectedUser($event->getAuthor())
284
-						->setSubject(Calendar::SUBJECT_SHARE_GROUP . '_you', $parameters);
285
-					$this->activityManager->publish($event);
286
-
287
-					$subject = Calendar::SUBJECT_SHARE_GROUP . '_by';
288
-					$parameters[] = $event->getAuthor();
289
-				}
290
-
291
-				$event->setAffectedUser($owner)
292
-					->setSubject($subject, $parameters);
293
-				$this->activityManager->publish($event);
294
-			}
295
-		}
296
-	}
297
-
298
-	/**
299
-	 * Checks if a calendar is already shared with a principal
300
-	 *
301
-	 * @param string $principal
302
-	 * @param array[] $shares
303
-	 * @return bool
304
-	 */
305
-	protected function isAlreadyShared($principal, $shares) {
306
-		foreach ($shares as $share) {
307
-			if ($principal === $share['href']) {
308
-				return true;
309
-			}
310
-		}
311
-
312
-		return false;
313
-	}
314
-
315
-	/**
316
-	 * Creates the given activity for all members of the given group
317
-	 *
318
-	 * @param string $gid
319
-	 * @param IEvent $event
320
-	 * @param array $properties
321
-	 * @param string $subject
322
-	 */
323
-	protected function triggerActivityGroup($gid, IEvent $event, array $properties, $subject) {
324
-		$group = $this->groupManager->get($gid);
325
-
326
-		if ($group instanceof IGroup) {
327
-			foreach ($group->getUsers() as $user) {
328
-				// Exclude current user
329
-				if ($user->getUID() !== $event->getAuthor()) {
330
-					$this->triggerActivityUser($user->getUID(), $event, $properties, $subject);
331
-				}
332
-			}
333
-		}
334
-	}
335
-
336
-	/**
337
-	 * Creates the given activity for the given user
338
-	 *
339
-	 * @param string $user
340
-	 * @param IEvent $event
341
-	 * @param array $properties
342
-	 * @param string $subject
343
-	 * @param string $subjectSelf
344
-	 */
345
-	protected function triggerActivityUser($user, IEvent $event, array $properties, $subject, $subjectSelf = '') {
346
-		$event->setAffectedUser($user)
347
-			->setSubject(
348
-				$user === $event->getAuthor() && $subjectSelf ? $subjectSelf : $subject,
349
-				[
350
-					$event->getAuthor(),
351
-					$properties['{DAV:}displayname'],
352
-				]
353
-			);
354
-
355
-		$this->activityManager->publish($event);
356
-	}
357
-
358
-	/**
359
-	 * Creates activities when a calendar object was created/updated/deleted
360
-	 *
361
-	 * @param string $action
362
-	 * @param array $calendarData
363
-	 * @param array $shares
364
-	 * @param array $objectData
365
-	 */
366
-	public function onTouchCalendarObject($action, array $calendarData, array $shares, array $objectData) {
367
-		if (!isset($calendarData['principaluri'])) {
368
-			return;
369
-		}
370
-
371
-		$principal = explode('/', $calendarData['principaluri']);
372
-		$owner = array_pop($principal);
373
-
374
-		$currentUser = $this->userSession->getUser();
375
-		if ($currentUser instanceof IUser) {
376
-			$currentUser = $currentUser->getUID();
377
-		} else {
378
-			$currentUser = $owner;
379
-		}
380
-
381
-		$object = $this->getObjectNameAndType($objectData);
382
-		$action = $action . '_' . $object['type'];
383
-
384
-		if ($object['type'] === 'todo' && strpos($action, Event::SUBJECT_OBJECT_UPDATE) === 0 && $object['status'] === 'COMPLETED') {
385
-			$action .= '_completed';
386
-		} else if ($object['type'] === 'todo' && strpos($action, Event::SUBJECT_OBJECT_UPDATE) === 0 && $object['status'] === 'NEEDS-ACTION') {
387
-			$action .= '_needs_action';
388
-		}
389
-
390
-		$event = $this->activityManager->generateEvent();
391
-		$event->setApp('dav')
392
-			->setObject('calendar', (int) $calendarData['id'])
393
-			->setType($object['type'] === 'event' ? 'calendar_event' : 'calendar_todo')
394
-			->setAuthor($currentUser);
395
-
396
-		$users = $this->getUsersForShares($shares);
397
-		$users[] = $owner;
398
-
399
-		foreach ($users as $user) {
400
-			$event->setAffectedUser($user)
401
-				->setSubject(
402
-					$user === $currentUser ? $action . '_self' : $action,
403
-					[
404
-						$currentUser,
405
-						$calendarData['{DAV:}displayname'],
406
-						[
407
-							'id' => $object['id'],
408
-							'name' => $object['name'],
409
-						],
410
-					]
411
-				);
412
-			$this->activityManager->publish($event);
413
-		}
414
-	}
415
-
416
-	/**
417
-	 * @param array $objectData
418
-	 * @return string[]|bool
419
-	 */
420
-	protected function getObjectNameAndType(array $objectData) {
421
-		$vObject = Reader::read($objectData['calendardata']);
422
-		$component = $componentType = null;
423
-		foreach($vObject->getComponents() as $component) {
424
-			if (in_array($component->name, ['VEVENT', 'VTODO'])) {
425
-				$componentType = $component->name;
426
-				break;
427
-			}
428
-		}
429
-
430
-		if (!$componentType) {
431
-			// Calendar objects must have a VEVENT or VTODO component
432
-			return false;
433
-		}
434
-
435
-		if ($componentType === 'VEVENT') {
436
-			return ['id' => (string) $component->UID, 'name' => (string) $component->SUMMARY, 'type' => 'event'];
437
-		}
438
-		return ['id' => (string) $component->UID, 'name' => (string) $component->SUMMARY, 'type' => 'todo', 'status' => (string) $component->STATUS];
439
-	}
440
-
441
-	/**
442
-	 * Get all users that have access to a given calendar
443
-	 *
444
-	 * @param array $shares
445
-	 * @return string[]
446
-	 */
447
-	protected function getUsersForShares(array $shares) {
448
-		$users = $groups = [];
449
-		foreach ($shares as $share) {
450
-			$prinical = explode('/', $share['{http://owncloud.org/ns}principal']);
451
-			if ($prinical[1] === 'users') {
452
-				$users[] = $prinical[2];
453
-			} else if ($prinical[1] === 'groups') {
454
-				$groups[] = $prinical[2];
455
-			}
456
-		}
457
-
458
-		if (!empty($groups)) {
459
-			foreach ($groups as $gid) {
460
-				$group = $this->groupManager->get($gid);
461
-				if ($group instanceof IGroup) {
462
-					foreach ($group->getUsers() as $user) {
463
-						$users[] = $user->getUID();
464
-					}
465
-				}
466
-			}
467
-		}
468
-
469
-		return array_unique($users);
470
-	}
42
+    /** @var IActivityManager */
43
+    protected $activityManager;
44
+
45
+    /** @var IGroupManager */
46
+    protected $groupManager;
47
+
48
+    /** @var IUserSession */
49
+    protected $userSession;
50
+
51
+    /**
52
+     * @param IActivityManager $activityManager
53
+     * @param IGroupManager $groupManager
54
+     * @param IUserSession $userSession
55
+     */
56
+    public function __construct(IActivityManager $activityManager, IGroupManager $groupManager, IUserSession $userSession) {
57
+        $this->activityManager = $activityManager;
58
+        $this->groupManager = $groupManager;
59
+        $this->userSession = $userSession;
60
+    }
61
+
62
+    /**
63
+     * Creates activities when a calendar was creates
64
+     *
65
+     * @param array $calendarData
66
+     */
67
+    public function onCalendarAdd(array $calendarData) {
68
+        $this->triggerCalendarActivity(Calendar::SUBJECT_ADD, $calendarData);
69
+    }
70
+
71
+    /**
72
+     * Creates activities when a calendar was updated
73
+     *
74
+     * @param array $calendarData
75
+     * @param array $shares
76
+     * @param array $properties
77
+     */
78
+    public function onCalendarUpdate(array $calendarData, array $shares, array $properties) {
79
+        $this->triggerCalendarActivity(Calendar::SUBJECT_UPDATE, $calendarData, $shares, $properties);
80
+    }
81
+
82
+    /**
83
+     * Creates activities when a calendar was deleted
84
+     *
85
+     * @param array $calendarData
86
+     * @param array $shares
87
+     */
88
+    public function onCalendarDelete(array $calendarData, array $shares) {
89
+        $this->triggerCalendarActivity(Calendar::SUBJECT_DELETE, $calendarData, $shares);
90
+    }
91
+
92
+    /**
93
+     * Creates activities for all related users when a calendar was touched
94
+     *
95
+     * @param string $action
96
+     * @param array $calendarData
97
+     * @param array $shares
98
+     * @param array $changedProperties
99
+     */
100
+    protected function triggerCalendarActivity($action, array $calendarData, array $shares = [], array $changedProperties = []) {
101
+        if (!isset($calendarData['principaluri'])) {
102
+            return;
103
+        }
104
+
105
+        $principal = explode('/', $calendarData['principaluri']);
106
+        $owner = array_pop($principal);
107
+
108
+        $currentUser = $this->userSession->getUser();
109
+        if ($currentUser instanceof IUser) {
110
+            $currentUser = $currentUser->getUID();
111
+        } else {
112
+            $currentUser = $owner;
113
+        }
114
+
115
+        $event = $this->activityManager->generateEvent();
116
+        $event->setApp('dav')
117
+            ->setObject('calendar', (int) $calendarData['id'])
118
+            ->setType('calendar')
119
+            ->setAuthor($currentUser);
120
+
121
+        $changedVisibleInformation = array_intersect([
122
+            '{DAV:}displayname',
123
+            '{http://apple.com/ns/ical/}calendar-color'
124
+        ], array_keys($changedProperties));
125
+
126
+        if (empty($shares) || ($action === Calendar::SUBJECT_UPDATE && empty($changedVisibleInformation))) {
127
+            $users = [$owner];
128
+        } else {
129
+            $users = $this->getUsersForShares($shares);
130
+            $users[] = $owner;
131
+        }
132
+
133
+        foreach ($users as $user) {
134
+            $event->setAffectedUser($user)
135
+                ->setSubject(
136
+                    $user === $currentUser ? $action . '_self' : $action,
137
+                    [
138
+                        $currentUser,
139
+                        $calendarData['{DAV:}displayname'],
140
+                    ]
141
+                );
142
+            $this->activityManager->publish($event);
143
+        }
144
+    }
145
+
146
+    /**
147
+     * Creates activities for all related users when a calendar was (un-)shared
148
+     *
149
+     * @param array $calendarData
150
+     * @param array $shares
151
+     * @param array $add
152
+     * @param array $remove
153
+     */
154
+    public function onCalendarUpdateShares(array $calendarData, array $shares, array $add, array $remove) {
155
+        $principal = explode('/', $calendarData['principaluri']);
156
+        $owner = $principal[2];
157
+
158
+        $currentUser = $this->userSession->getUser();
159
+        if ($currentUser instanceof IUser) {
160
+            $currentUser = $currentUser->getUID();
161
+        } else {
162
+            $currentUser = $owner;
163
+        }
164
+
165
+        $event = $this->activityManager->generateEvent();
166
+        $event->setApp('dav')
167
+            ->setObject('calendar', (int) $calendarData['id'])
168
+            ->setType('calendar')
169
+            ->setAuthor($currentUser);
170
+
171
+        foreach ($remove as $principal) {
172
+            // principal:principals/users/test
173
+            $parts = explode(':', $principal, 2);
174
+            if ($parts[0] !== 'principal') {
175
+                continue;
176
+            }
177
+            $principal = explode('/', $parts[1]);
178
+
179
+            if ($principal[1] === 'users') {
180
+                $this->triggerActivityUser(
181
+                    $principal[2],
182
+                    $event,
183
+                    $calendarData,
184
+                    Calendar::SUBJECT_UNSHARE_USER,
185
+                    Calendar::SUBJECT_DELETE . '_self'
186
+                );
187
+
188
+                if ($owner !== $principal[2]) {
189
+                    $parameters = [
190
+                        $principal[2],
191
+                        $calendarData['{DAV:}displayname'],
192
+                    ];
193
+
194
+                    if ($owner === $event->getAuthor()) {
195
+                        $subject = Calendar::SUBJECT_UNSHARE_USER . '_you';
196
+                    } else if ($principal[2] === $event->getAuthor()) {
197
+                        $subject = Calendar::SUBJECT_UNSHARE_USER . '_self';
198
+                    } else {
199
+                        $event->setAffectedUser($event->getAuthor())
200
+                            ->setSubject(Calendar::SUBJECT_UNSHARE_USER . '_you', $parameters);
201
+                        $this->activityManager->publish($event);
202
+
203
+                        $subject = Calendar::SUBJECT_UNSHARE_USER . '_by';
204
+                        $parameters[] = $event->getAuthor();
205
+                    }
206
+
207
+                    $event->setAffectedUser($owner)
208
+                        ->setSubject($subject, $parameters);
209
+                    $this->activityManager->publish($event);
210
+                }
211
+            } else if ($principal[1] === 'groups') {
212
+                $this->triggerActivityGroup($principal[2], $event, $calendarData, Calendar::SUBJECT_UNSHARE_USER);
213
+
214
+                $parameters = [
215
+                    $principal[2],
216
+                    $calendarData['{DAV:}displayname'],
217
+                ];
218
+
219
+                if ($owner === $event->getAuthor()) {
220
+                    $subject = Calendar::SUBJECT_UNSHARE_GROUP . '_you';
221
+                } else {
222
+                    $event->setAffectedUser($event->getAuthor())
223
+                        ->setSubject(Calendar::SUBJECT_UNSHARE_GROUP . '_you', $parameters);
224
+                    $this->activityManager->publish($event);
225
+
226
+                    $subject = Calendar::SUBJECT_UNSHARE_GROUP . '_by';
227
+                    $parameters[] = $event->getAuthor();
228
+                }
229
+
230
+                $event->setAffectedUser($owner)
231
+                    ->setSubject($subject, $parameters);
232
+                $this->activityManager->publish($event);
233
+            }
234
+        }
235
+
236
+        foreach ($add as $share) {
237
+            if ($this->isAlreadyShared($share['href'], $shares)) {
238
+                continue;
239
+            }
240
+
241
+            // principal:principals/users/test
242
+            $parts = explode(':', $share['href'], 2);
243
+            if ($parts[0] !== 'principal') {
244
+                continue;
245
+            }
246
+            $principal = explode('/', $parts[1]);
247
+
248
+            if ($principal[1] === 'users') {
249
+                $this->triggerActivityUser($principal[2], $event, $calendarData, Calendar::SUBJECT_SHARE_USER);
250
+
251
+                if ($owner !== $principal[2]) {
252
+                    $parameters = [
253
+                        $principal[2],
254
+                        $calendarData['{DAV:}displayname'],
255
+                    ];
256
+
257
+                    if ($owner === $event->getAuthor()) {
258
+                        $subject = Calendar::SUBJECT_SHARE_USER . '_you';
259
+                    } else {
260
+                        $event->setAffectedUser($event->getAuthor())
261
+                            ->setSubject(Calendar::SUBJECT_SHARE_USER . '_you', $parameters);
262
+                        $this->activityManager->publish($event);
263
+
264
+                        $subject = Calendar::SUBJECT_SHARE_USER . '_by';
265
+                        $parameters[] = $event->getAuthor();
266
+                    }
267
+
268
+                    $event->setAffectedUser($owner)
269
+                        ->setSubject($subject, $parameters);
270
+                    $this->activityManager->publish($event);
271
+                }
272
+            } else if ($principal[1] === 'groups') {
273
+                $this->triggerActivityGroup($principal[2], $event, $calendarData, Calendar::SUBJECT_SHARE_USER);
274
+
275
+                $parameters = [
276
+                    $principal[2],
277
+                    $calendarData['{DAV:}displayname'],
278
+                ];
279
+
280
+                if ($owner === $event->getAuthor()) {
281
+                    $subject = Calendar::SUBJECT_SHARE_GROUP . '_you';
282
+                } else {
283
+                    $event->setAffectedUser($event->getAuthor())
284
+                        ->setSubject(Calendar::SUBJECT_SHARE_GROUP . '_you', $parameters);
285
+                    $this->activityManager->publish($event);
286
+
287
+                    $subject = Calendar::SUBJECT_SHARE_GROUP . '_by';
288
+                    $parameters[] = $event->getAuthor();
289
+                }
290
+
291
+                $event->setAffectedUser($owner)
292
+                    ->setSubject($subject, $parameters);
293
+                $this->activityManager->publish($event);
294
+            }
295
+        }
296
+    }
297
+
298
+    /**
299
+     * Checks if a calendar is already shared with a principal
300
+     *
301
+     * @param string $principal
302
+     * @param array[] $shares
303
+     * @return bool
304
+     */
305
+    protected function isAlreadyShared($principal, $shares) {
306
+        foreach ($shares as $share) {
307
+            if ($principal === $share['href']) {
308
+                return true;
309
+            }
310
+        }
311
+
312
+        return false;
313
+    }
314
+
315
+    /**
316
+     * Creates the given activity for all members of the given group
317
+     *
318
+     * @param string $gid
319
+     * @param IEvent $event
320
+     * @param array $properties
321
+     * @param string $subject
322
+     */
323
+    protected function triggerActivityGroup($gid, IEvent $event, array $properties, $subject) {
324
+        $group = $this->groupManager->get($gid);
325
+
326
+        if ($group instanceof IGroup) {
327
+            foreach ($group->getUsers() as $user) {
328
+                // Exclude current user
329
+                if ($user->getUID() !== $event->getAuthor()) {
330
+                    $this->triggerActivityUser($user->getUID(), $event, $properties, $subject);
331
+                }
332
+            }
333
+        }
334
+    }
335
+
336
+    /**
337
+     * Creates the given activity for the given user
338
+     *
339
+     * @param string $user
340
+     * @param IEvent $event
341
+     * @param array $properties
342
+     * @param string $subject
343
+     * @param string $subjectSelf
344
+     */
345
+    protected function triggerActivityUser($user, IEvent $event, array $properties, $subject, $subjectSelf = '') {
346
+        $event->setAffectedUser($user)
347
+            ->setSubject(
348
+                $user === $event->getAuthor() && $subjectSelf ? $subjectSelf : $subject,
349
+                [
350
+                    $event->getAuthor(),
351
+                    $properties['{DAV:}displayname'],
352
+                ]
353
+            );
354
+
355
+        $this->activityManager->publish($event);
356
+    }
357
+
358
+    /**
359
+     * Creates activities when a calendar object was created/updated/deleted
360
+     *
361
+     * @param string $action
362
+     * @param array $calendarData
363
+     * @param array $shares
364
+     * @param array $objectData
365
+     */
366
+    public function onTouchCalendarObject($action, array $calendarData, array $shares, array $objectData) {
367
+        if (!isset($calendarData['principaluri'])) {
368
+            return;
369
+        }
370
+
371
+        $principal = explode('/', $calendarData['principaluri']);
372
+        $owner = array_pop($principal);
373
+
374
+        $currentUser = $this->userSession->getUser();
375
+        if ($currentUser instanceof IUser) {
376
+            $currentUser = $currentUser->getUID();
377
+        } else {
378
+            $currentUser = $owner;
379
+        }
380
+
381
+        $object = $this->getObjectNameAndType($objectData);
382
+        $action = $action . '_' . $object['type'];
383
+
384
+        if ($object['type'] === 'todo' && strpos($action, Event::SUBJECT_OBJECT_UPDATE) === 0 && $object['status'] === 'COMPLETED') {
385
+            $action .= '_completed';
386
+        } else if ($object['type'] === 'todo' && strpos($action, Event::SUBJECT_OBJECT_UPDATE) === 0 && $object['status'] === 'NEEDS-ACTION') {
387
+            $action .= '_needs_action';
388
+        }
389
+
390
+        $event = $this->activityManager->generateEvent();
391
+        $event->setApp('dav')
392
+            ->setObject('calendar', (int) $calendarData['id'])
393
+            ->setType($object['type'] === 'event' ? 'calendar_event' : 'calendar_todo')
394
+            ->setAuthor($currentUser);
395
+
396
+        $users = $this->getUsersForShares($shares);
397
+        $users[] = $owner;
398
+
399
+        foreach ($users as $user) {
400
+            $event->setAffectedUser($user)
401
+                ->setSubject(
402
+                    $user === $currentUser ? $action . '_self' : $action,
403
+                    [
404
+                        $currentUser,
405
+                        $calendarData['{DAV:}displayname'],
406
+                        [
407
+                            'id' => $object['id'],
408
+                            'name' => $object['name'],
409
+                        ],
410
+                    ]
411
+                );
412
+            $this->activityManager->publish($event);
413
+        }
414
+    }
415
+
416
+    /**
417
+     * @param array $objectData
418
+     * @return string[]|bool
419
+     */
420
+    protected function getObjectNameAndType(array $objectData) {
421
+        $vObject = Reader::read($objectData['calendardata']);
422
+        $component = $componentType = null;
423
+        foreach($vObject->getComponents() as $component) {
424
+            if (in_array($component->name, ['VEVENT', 'VTODO'])) {
425
+                $componentType = $component->name;
426
+                break;
427
+            }
428
+        }
429
+
430
+        if (!$componentType) {
431
+            // Calendar objects must have a VEVENT or VTODO component
432
+            return false;
433
+        }
434
+
435
+        if ($componentType === 'VEVENT') {
436
+            return ['id' => (string) $component->UID, 'name' => (string) $component->SUMMARY, 'type' => 'event'];
437
+        }
438
+        return ['id' => (string) $component->UID, 'name' => (string) $component->SUMMARY, 'type' => 'todo', 'status' => (string) $component->STATUS];
439
+    }
440
+
441
+    /**
442
+     * Get all users that have access to a given calendar
443
+     *
444
+     * @param array $shares
445
+     * @return string[]
446
+     */
447
+    protected function getUsersForShares(array $shares) {
448
+        $users = $groups = [];
449
+        foreach ($shares as $share) {
450
+            $prinical = explode('/', $share['{http://owncloud.org/ns}principal']);
451
+            if ($prinical[1] === 'users') {
452
+                $users[] = $prinical[2];
453
+            } else if ($prinical[1] === 'groups') {
454
+                $groups[] = $prinical[2];
455
+            }
456
+        }
457
+
458
+        if (!empty($groups)) {
459
+            foreach ($groups as $gid) {
460
+                $group = $this->groupManager->get($gid);
461
+                if ($group instanceof IGroup) {
462
+                    foreach ($group->getUsers() as $user) {
463
+                        $users[] = $user->getUID();
464
+                    }
465
+                }
466
+            }
467
+        }
468
+
469
+        return array_unique($users);
470
+    }
471 471
 }
Please login to merge, or discard this patch.
apps/dav/lib/CalDAV/CalendarHome.php 1 patch
Indentation   +66 added lines, -66 removed lines patch added patch discarded remove patch
@@ -33,82 +33,82 @@
 block discarded – undo
33 33
 
34 34
 class CalendarHome extends \Sabre\CalDAV\CalendarHome {
35 35
 
36
-	/** @var \OCP\IL10N */
37
-	private $l10n;
36
+    /** @var \OCP\IL10N */
37
+    private $l10n;
38 38
 
39
-	public function __construct(BackendInterface $caldavBackend, $principalInfo) {
40
-		parent::__construct($caldavBackend, $principalInfo);
41
-		$this->l10n = \OC::$server->getL10N('dav');
42
-	}
39
+    public function __construct(BackendInterface $caldavBackend, $principalInfo) {
40
+        parent::__construct($caldavBackend, $principalInfo);
41
+        $this->l10n = \OC::$server->getL10N('dav');
42
+    }
43 43
 
44
-	/**
45
-	 * @return BackendInterface
46
-	 */
47
-	public function getCalDAVBackend() {
48
-		return $this->caldavBackend;
49
-	}
44
+    /**
45
+     * @return BackendInterface
46
+     */
47
+    public function getCalDAVBackend() {
48
+        return $this->caldavBackend;
49
+    }
50 50
 
51
-	/**
52
-	 * @inheritdoc
53
-	 */
54
-	function getChildren() {
55
-		$calendars = $this->caldavBackend->getCalendarsForUser($this->principalInfo['uri']);
56
-		$objects = [];
57
-		foreach ($calendars as $calendar) {
58
-			$objects[] = new Calendar($this->caldavBackend, $calendar, $this->l10n);
59
-		}
51
+    /**
52
+     * @inheritdoc
53
+     */
54
+    function getChildren() {
55
+        $calendars = $this->caldavBackend->getCalendarsForUser($this->principalInfo['uri']);
56
+        $objects = [];
57
+        foreach ($calendars as $calendar) {
58
+            $objects[] = new Calendar($this->caldavBackend, $calendar, $this->l10n);
59
+        }
60 60
 
61
-		if ($this->caldavBackend instanceof SchedulingSupport) {
62
-			$objects[] = new Inbox($this->caldavBackend, $this->principalInfo['uri']);
63
-			$objects[] = new Outbox($this->principalInfo['uri']);
64
-		}
61
+        if ($this->caldavBackend instanceof SchedulingSupport) {
62
+            $objects[] = new Inbox($this->caldavBackend, $this->principalInfo['uri']);
63
+            $objects[] = new Outbox($this->principalInfo['uri']);
64
+        }
65 65
 
66
-		// We're adding a notifications node, if it's supported by the backend.
67
-		if ($this->caldavBackend instanceof NotificationSupport) {
68
-			$objects[] = new \Sabre\CalDAV\Notifications\Collection($this->caldavBackend, $this->principalInfo['uri']);
69
-		}
66
+        // We're adding a notifications node, if it's supported by the backend.
67
+        if ($this->caldavBackend instanceof NotificationSupport) {
68
+            $objects[] = new \Sabre\CalDAV\Notifications\Collection($this->caldavBackend, $this->principalInfo['uri']);
69
+        }
70 70
 
71
-		// If the backend supports subscriptions, we'll add those as well,
72
-		if ($this->caldavBackend instanceof SubscriptionSupport) {
73
-			foreach ($this->caldavBackend->getSubscriptionsForUser($this->principalInfo['uri']) as $subscription) {
74
-				$objects[] = new Subscription($this->caldavBackend, $subscription);
75
-			}
76
-		}
71
+        // If the backend supports subscriptions, we'll add those as well,
72
+        if ($this->caldavBackend instanceof SubscriptionSupport) {
73
+            foreach ($this->caldavBackend->getSubscriptionsForUser($this->principalInfo['uri']) as $subscription) {
74
+                $objects[] = new Subscription($this->caldavBackend, $subscription);
75
+            }
76
+        }
77 77
 
78
-		return $objects;
79
-	}
78
+        return $objects;
79
+    }
80 80
 
81
-	/**
82
-	 * @inheritdoc
83
-	 */
84
-	function getChild($name) {
85
-		// Special nodes
86
-		if ($name === 'inbox' && $this->caldavBackend instanceof SchedulingSupport) {
87
-			return new Inbox($this->caldavBackend, $this->principalInfo['uri']);
88
-		}
89
-		if ($name === 'outbox' && $this->caldavBackend instanceof SchedulingSupport) {
90
-			return new Outbox($this->principalInfo['uri']);
91
-		}
92
-		if ($name === 'notifications' && $this->caldavBackend instanceof NotificationSupport) {
93
-			return new \Sabre\CalDAv\Notifications\Collection($this->caldavBackend, $this->principalInfo['uri']);
94
-		}
81
+    /**
82
+     * @inheritdoc
83
+     */
84
+    function getChild($name) {
85
+        // Special nodes
86
+        if ($name === 'inbox' && $this->caldavBackend instanceof SchedulingSupport) {
87
+            return new Inbox($this->caldavBackend, $this->principalInfo['uri']);
88
+        }
89
+        if ($name === 'outbox' && $this->caldavBackend instanceof SchedulingSupport) {
90
+            return new Outbox($this->principalInfo['uri']);
91
+        }
92
+        if ($name === 'notifications' && $this->caldavBackend instanceof NotificationSupport) {
93
+            return new \Sabre\CalDAv\Notifications\Collection($this->caldavBackend, $this->principalInfo['uri']);
94
+        }
95 95
 
96
-		// Calendars
97
-		foreach ($this->caldavBackend->getCalendarsForUser($this->principalInfo['uri']) as $calendar) {
98
-			if ($calendar['uri'] === $name) {
99
-				return new Calendar($this->caldavBackend, $calendar, $this->l10n);
100
-			}
101
-		}
96
+        // Calendars
97
+        foreach ($this->caldavBackend->getCalendarsForUser($this->principalInfo['uri']) as $calendar) {
98
+            if ($calendar['uri'] === $name) {
99
+                return new Calendar($this->caldavBackend, $calendar, $this->l10n);
100
+            }
101
+        }
102 102
 
103
-		if ($this->caldavBackend instanceof SubscriptionSupport) {
104
-			foreach ($this->caldavBackend->getSubscriptionsForUser($this->principalInfo['uri']) as $subscription) {
105
-				if ($subscription['uri'] === $name) {
106
-					return new Subscription($this->caldavBackend, $subscription);
107
-				}
108
-			}
103
+        if ($this->caldavBackend instanceof SubscriptionSupport) {
104
+            foreach ($this->caldavBackend->getSubscriptionsForUser($this->principalInfo['uri']) as $subscription) {
105
+                if ($subscription['uri'] === $name) {
106
+                    return new Subscription($this->caldavBackend, $subscription);
107
+                }
108
+            }
109 109
 
110
-		}
110
+        }
111 111
 
112
-		throw new NotFound('Node with name \'' . $name . '\' could not be found');
113
-	}
112
+        throw new NotFound('Node with name \'' . $name . '\' could not be found');
113
+    }
114 114
 }
Please login to merge, or discard this patch.