Passed
Push — master ( 1dce30...f6efd5 )
by Joas
15:03 queued 13s
created
apps/files/lib/Controller/DirectEditingViewController.php 1 patch
Indentation   +28 added lines, -28 removed lines patch added patch discarded remove patch
@@ -36,37 +36,37 @@
 block discarded – undo
36 36
 
37 37
 class DirectEditingViewController extends Controller {
38 38
 
39
-	/** @var IEventDispatcher */
40
-	private $eventDispatcher;
39
+    /** @var IEventDispatcher */
40
+    private $eventDispatcher;
41 41
 
42
-	/** @var IManager */
43
-	private $directEditingManager;
42
+    /** @var IManager */
43
+    private $directEditingManager;
44 44
 
45
-	/** @var ILogger */
46
-	private $logger;
45
+    /** @var ILogger */
46
+    private $logger;
47 47
 
48
-	public function __construct($appName, IRequest $request, IEventDispatcher $eventDispatcher, IManager $manager, ILogger $logger) {
49
-		parent::__construct($appName, $request);
48
+    public function __construct($appName, IRequest $request, IEventDispatcher $eventDispatcher, IManager $manager, ILogger $logger) {
49
+        parent::__construct($appName, $request);
50 50
 
51
-		$this->eventDispatcher = $eventDispatcher;
52
-		$this->directEditingManager = $manager;
53
-		$this->logger = $logger;
54
-	}
51
+        $this->eventDispatcher = $eventDispatcher;
52
+        $this->directEditingManager = $manager;
53
+        $this->logger = $logger;
54
+    }
55 55
 
56
-	/**
57
-	 * @PublicPage
58
-	 * @NoCSRFRequired
59
-	 *
60
-	 * @param string $token
61
-	 * @return Response
62
-	 */
63
-	public function edit(string $token): Response {
64
-		$this->eventDispatcher->dispatchTyped(new RegisterDirectEditorEvent($this->directEditingManager));
65
-		try {
66
-			return $this->directEditingManager->edit($token);
67
-		} catch (Exception $e) {
68
-			$this->logger->logException($e);
69
-			return new NotFoundResponse();
70
-		}
71
-	}
56
+    /**
57
+     * @PublicPage
58
+     * @NoCSRFRequired
59
+     *
60
+     * @param string $token
61
+     * @return Response
62
+     */
63
+    public function edit(string $token): Response {
64
+        $this->eventDispatcher->dispatchTyped(new RegisterDirectEditorEvent($this->directEditingManager));
65
+        try {
66
+            return $this->directEditingManager->edit($token);
67
+        } catch (Exception $e) {
68
+            $this->logger->logException($e);
69
+            return new NotFoundResponse();
70
+        }
71
+    }
72 72
 }
Please login to merge, or discard this patch.
lib/public/Files/File.php 1 patch
Indentation   +62 added lines, -62 removed lines patch added patch discarded remove patch
@@ -42,72 +42,72 @@
 block discarded – undo
42 42
  * @since 6.0.0
43 43
  */
44 44
 interface File extends Node {
45
-	/**
46
-	 * Get the content of the file as string
47
-	 *
48
-	 * @return string
49
-	 * @throws NotPermittedException
50
-	 * @throws LockedException
51
-	 * @since 6.0.0
52
-	 */
53
-	public function getContent();
45
+    /**
46
+     * Get the content of the file as string
47
+     *
48
+     * @return string
49
+     * @throws NotPermittedException
50
+     * @throws LockedException
51
+     * @since 6.0.0
52
+     */
53
+    public function getContent();
54 54
 
55
-	/**
56
-	 * Write to the file from string data
57
-	 *
58
-	 * @param string|resource $data
59
-	 * @throws NotPermittedException
60
-	 * @throws GenericFileException
61
-	 * @throws LockedException
62
-	 * @since 6.0.0
63
-	 */
64
-	public function putContent($data);
55
+    /**
56
+     * Write to the file from string data
57
+     *
58
+     * @param string|resource $data
59
+     * @throws NotPermittedException
60
+     * @throws GenericFileException
61
+     * @throws LockedException
62
+     * @since 6.0.0
63
+     */
64
+    public function putContent($data);
65 65
 
66
-	/**
67
-	 * Get the mimetype of the file
68
-	 *
69
-	 * @return string
70
-	 * @since 6.0.0
71
-	 */
72
-	public function getMimeType();
66
+    /**
67
+     * Get the mimetype of the file
68
+     *
69
+     * @return string
70
+     * @since 6.0.0
71
+     */
72
+    public function getMimeType();
73 73
 
74
-	/**
75
-	 * Open the file as stream, resulting resource can be operated as stream like the result from php's own fopen
76
-	 *
77
-	 * @param string $mode
78
-	 * @return resource
79
-	 * @throws NotPermittedException
80
-	 * @throws LockedException
81
-	 * @since 6.0.0
82
-	 */
83
-	public function fopen($mode);
74
+    /**
75
+     * Open the file as stream, resulting resource can be operated as stream like the result from php's own fopen
76
+     *
77
+     * @param string $mode
78
+     * @return resource
79
+     * @throws NotPermittedException
80
+     * @throws LockedException
81
+     * @since 6.0.0
82
+     */
83
+    public function fopen($mode);
84 84
 
85
-	/**
86
-	 * Compute the hash of the file
87
-	 * Type of hash is set with $type and can be anything supported by php's hash_file
88
-	 *
89
-	 * @param string $type
90
-	 * @param bool $raw
91
-	 * @return string
92
-	 * @since 6.0.0
93
-	 */
94
-	public function hash($type, $raw = false);
85
+    /**
86
+     * Compute the hash of the file
87
+     * Type of hash is set with $type and can be anything supported by php's hash_file
88
+     *
89
+     * @param string $type
90
+     * @param bool $raw
91
+     * @return string
92
+     * @since 6.0.0
93
+     */
94
+    public function hash($type, $raw = false);
95 95
 
96
-	/**
97
-	 * Get the stored checksum for this file
98
-	 *
99
-	 * @return string
100
-	 * @since 9.0.0
101
-	 * @throws InvalidPathException
102
-	 * @throws NotFoundException
103
-	 */
104
-	public function getChecksum();
96
+    /**
97
+     * Get the stored checksum for this file
98
+     *
99
+     * @return string
100
+     * @since 9.0.0
101
+     * @throws InvalidPathException
102
+     * @throws NotFoundException
103
+     */
104
+    public function getChecksum();
105 105
 
106
-	/**
107
-	 * Get the extension of this file
108
-	 *
109
-	 * @return string
110
-	 * @since 15.0.0
111
-	 */
112
-	public function getExtension(): string;
106
+    /**
107
+     * Get the extension of this file
108
+     *
109
+     * @return string
110
+     * @since 15.0.0
111
+     */
112
+    public function getExtension(): string;
113 113
 }
Please login to merge, or discard this patch.
lib/public/WorkflowEngine/IEntity.php 1 patch
Indentation   +37 added lines, -37 removed lines patch added patch discarded remove patch
@@ -40,46 +40,46 @@
 block discarded – undo
40 40
  */
41 41
 interface IEntity {
42 42
 
43
-	/**
44
-	 * returns a translated name to be presented in the web interface.
45
-	 *
46
-	 * Example: "File" (en), "Dosiero" (eo)
47
-	 *
48
-	 * @since 18.0.0
49
-	 */
50
-	public function getName(): string;
43
+    /**
44
+     * returns a translated name to be presented in the web interface.
45
+     *
46
+     * Example: "File" (en), "Dosiero" (eo)
47
+     *
48
+     * @since 18.0.0
49
+     */
50
+    public function getName(): string;
51 51
 
52
-	/**
53
-	 * returns the URL to the icon of the entity for display in the web interface.
54
-	 *
55
-	 * Usually, the implementation would utilize the `imagePath()` method of the
56
-	 * `\OCP\IURLGenerator` instance and simply return its result.
57
-	 *
58
-	 * Example implementation: return $this->urlGenerator->imagePath('myApp', 'cat.svg');
59
-	 *
60
-	 * @since 18.0.0
61
-	 */
62
-	public function getIcon(): string;
52
+    /**
53
+     * returns the URL to the icon of the entity for display in the web interface.
54
+     *
55
+     * Usually, the implementation would utilize the `imagePath()` method of the
56
+     * `\OCP\IURLGenerator` instance and simply return its result.
57
+     *
58
+     * Example implementation: return $this->urlGenerator->imagePath('myApp', 'cat.svg');
59
+     *
60
+     * @since 18.0.0
61
+     */
62
+    public function getIcon(): string;
63 63
 
64
-	/**
65
-	 * returns a list of supported events
66
-	 *
67
-	 * @return IEntityEvent[]
68
-	 * @since 18.0.0
69
-	 */
70
-	public function getEvents(): array;
64
+    /**
65
+     * returns a list of supported events
66
+     *
67
+     * @return IEntityEvent[]
68
+     * @since 18.0.0
69
+     */
70
+    public function getEvents(): array;
71 71
 
72
-	/**
73
-	 * @since 18.0.0
74
-	 */
75
-	public function prepareRuleMatcher(IRuleMatcher $ruleMatcher, string $eventName, Event $event): void;
72
+    /**
73
+     * @since 18.0.0
74
+     */
75
+    public function prepareRuleMatcher(IRuleMatcher $ruleMatcher, string $eventName, Event $event): void;
76 76
 
77
-	/**
78
-	 * returns whether the provided user id is allowed to run a flow against
79
-	 * the known context
80
-	 *
81
-	 * @since 18.0.0
82
-	 */
83
-	public function isLegitimatedForUserId(string $userId): bool;
77
+    /**
78
+     * returns whether the provided user id is allowed to run a flow against
79
+     * the known context
80
+     *
81
+     * @since 18.0.0
82
+     */
83
+    public function isLegitimatedForUserId(string $userId): bool;
84 84
 
85 85
 }
Please login to merge, or discard this patch.
lib/public/WorkflowEngine/EntityContext/IUrl.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -32,10 +32,10 @@
 block discarded – undo
32 32
  * @since 18.0.0
33 33
  */
34 34
 interface IUrl {
35
-	/**
36
-	 * returns a URL that is related to the entity, e.g. the link to a share
37
-	 *
38
-	 * @since 18.0.0
39
-	 */
40
-	public function getUrl(): string;
35
+    /**
36
+     * returns a URL that is related to the entity, e.g. the link to a share
37
+     *
38
+     * @since 18.0.0
39
+     */
40
+    public function getUrl(): string;
41 41
 }
Please login to merge, or discard this patch.
lib/public/WorkflowEngine/EntityContext/IDisplayName.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -32,10 +32,10 @@
 block discarded – undo
32 32
  * @since 18.0.0
33 33
  */
34 34
 interface IDisplayName {
35
-	/**
36
-	 * returns the end user facing name of the object related to the entity
37
-	 *
38
-	 * @since 18.0.0
39
-	 */
40
-	public function getDisplayName(): string;
35
+    /**
36
+     * returns the end user facing name of the object related to the entity
37
+     *
38
+     * @since 18.0.0
39
+     */
40
+    public function getDisplayName(): string;
41 41
 }
Please login to merge, or discard this patch.
lib/public/WorkflowEngine/EntityContext/IIcon.php 1 patch
Indentation   +7 added lines, -7 removed lines patch added patch discarded remove patch
@@ -32,11 +32,11 @@
 block discarded – undo
32 32
  * @since 18.0.0
33 33
  */
34 34
 interface IIcon {
35
-	/**
36
-	 * returns a URL to an icon that is related to the entity, for instance
37
-	 * a group icon for groups.
38
-	 *
39
-	 * @since 18.0.0
40
-	 */
41
-	public function getIconUrl(): string;
35
+    /**
36
+     * returns a URL to an icon that is related to the entity, for instance
37
+     * a group icon for groups.
38
+     *
39
+     * @since 18.0.0
40
+     */
41
+    public function getIconUrl(): string;
42 42
 }
Please login to merge, or discard this patch.
lib/public/WorkflowEngine/EntityContext/IDisplayText.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -33,15 +33,15 @@
 block discarded – undo
33 33
  */
34 34
 interface IDisplayText {
35 35
 
36
-	/**
37
-	 * returns translated text used for display to the end user. For instance,
38
-	 * it can describe the event in a human readable way.
39
-	 *
40
-	 * The entity may react to a verbosity level that is provided. With the
41
-	 * basic level, 0, it would return brief information, and more with higher
42
-	 * numbers. All information shall be shown at a level of 3.
43
-	 *
44
-	 * @since 18.0.0
45
-	 */
46
-	public function getDisplayText(int $verbosity = 0): string;
36
+    /**
37
+     * returns translated text used for display to the end user. For instance,
38
+     * it can describe the event in a human readable way.
39
+     *
40
+     * The entity may react to a verbosity level that is provided. With the
41
+     * basic level, 0, it would return brief information, and more with higher
42
+     * numbers. All information shall be shown at a level of 3.
43
+     *
44
+     * @since 18.0.0
45
+     */
46
+    public function getDisplayText(int $verbosity = 0): string;
47 47
 }
Please login to merge, or discard this patch.
apps/files/lib/Db/TransferOwnership.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -37,24 +37,24 @@
 block discarded – undo
37 37
  * @method string getNodeName()
38 38
  */
39 39
 class TransferOwnership extends Entity {
40
-	/** @var string */
41
-	protected $sourceUser;
40
+    /** @var string */
41
+    protected $sourceUser;
42 42
 
43
-	/** @var string */
44
-	protected $targetUser;
43
+    /** @var string */
44
+    protected $targetUser;
45 45
 
46
-	/** @var integer */
47
-	protected $fileId;
46
+    /** @var integer */
47
+    protected $fileId;
48 48
 
49
-	/** @var string */
50
-	protected $nodeName;
49
+    /** @var string */
50
+    protected $nodeName;
51 51
 
52
-	public function __construct() {
53
-		$this->addType('sourceUser', 'string');
54
-		$this->addType('targetUser', 'string');
55
-		$this->addType('fileId', 'integer');
56
-		$this->addType('nodeName', 'string');
57
-	}
52
+    public function __construct() {
53
+        $this->addType('sourceUser', 'string');
54
+        $this->addType('targetUser', 'string');
55
+        $this->addType('fileId', 'integer');
56
+        $this->addType('nodeName', 'string');
57
+    }
58 58
 
59 59
 
60 60
 }
Please login to merge, or discard this patch.
apps/files/lib/BackgroundJob/TransferOwnership.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -98,7 +98,7 @@  discard block
 block discarded – undo
98 98
 		$destinationUserObject = $this->userManager->get($destinationUser);
99 99
 
100 100
 		if (!$sourceUserObject instanceof IUser) {
101
-			$this->logger->alert('Could not transfer ownership: Unknown source user ' . $sourceUser);
101
+			$this->logger->alert('Could not transfer ownership: Unknown source user '.$sourceUser);
102 102
 			$this->failedNotication($transfer);
103 103
 			return;
104 104
 		}
@@ -136,7 +136,7 @@  discard block
 block discarded – undo
136 136
 				'targetUser' => $transfer->getTargetUser(),
137 137
 				'nodeName' => $transfer->getNodeName(),
138 138
 			])
139
-			->setObject('transfer', (string)$transfer->getId());
139
+			->setObject('transfer', (string) $transfer->getId());
140 140
 		$this->notificationManager->notify($notification);
141 141
 
142 142
 		// Send notification to source user
@@ -149,7 +149,7 @@  discard block
 block discarded – undo
149 149
 				'targetUser' => $transfer->getTargetUser(),
150 150
 				'nodeName' => $transfer->getNodeName(),
151 151
 			])
152
-			->setObject('transfer', (string)$transfer->getId());
152
+			->setObject('transfer', (string) $transfer->getId());
153 153
 		$this->notificationManager->notify($notification);
154 154
 	}
155 155
 
@@ -164,7 +164,7 @@  discard block
 block discarded – undo
164 164
 				'targetUser' => $transfer->getTargetUser(),
165 165
 				'nodeName' => $transfer->getNodeName(),
166 166
 			])
167
-			->setObject('transfer', (string)$transfer->getId());
167
+			->setObject('transfer', (string) $transfer->getId());
168 168
 		$this->notificationManager->notify($notification);
169 169
 
170 170
 		// Send notification to source user
@@ -177,7 +177,7 @@  discard block
 block discarded – undo
177 177
 				'targetUser' => $transfer->getTargetUser(),
178 178
 				'nodeName' => $transfer->getNodeName(),
179 179
 			])
180
-			->setObject('transfer', (string)$transfer->getId());
180
+			->setObject('transfer', (string) $transfer->getId());
181 181
 		$this->notificationManager->notify($notification);
182 182
 	}
183 183
 }
Please login to merge, or discard this patch.
Indentation   +137 added lines, -137 removed lines patch added patch discarded remove patch
@@ -42,141 +42,141 @@
 block discarded – undo
42 42
 
43 43
 class TransferOwnership extends QueuedJob {
44 44
 
45
-	/** @var IUserManager $userManager */
46
-	private $userManager;
47
-
48
-	/** @var OwnershipTransferService */
49
-	private $transferService;
50
-
51
-	/** @var ILogger */
52
-	private $logger;
53
-
54
-	/** @var NotificationManager */
55
-	private $notificationManager;
56
-
57
-	/** @var TransferOwnershipMapper */
58
-	private $mapper;
59
-	/** @var IRootFolder */
60
-	private $rootFolder;
61
-
62
-	public function __construct(ITimeFactory $timeFactory,
63
-								IUserManager $userManager,
64
-								OwnershipTransferService $transferService,
65
-								ILogger $logger,
66
-								NotificationManager $notificationManager,
67
-								TransferOwnershipMapper $mapper,
68
-								IRootFolder $rootFolder) {
69
-		parent::__construct($timeFactory);
70
-
71
-		$this->userManager = $userManager;
72
-		$this->transferService = $transferService;
73
-		$this->logger = $logger;
74
-		$this->notificationManager = $notificationManager;
75
-		$this->mapper = $mapper;
76
-		$this->rootFolder = $rootFolder;
77
-	}
78
-
79
-	protected function run($argument) {
80
-		$id = $argument['id'];
81
-
82
-		$transfer = $this->mapper->getById($id);
83
-		$sourceUser = $transfer->getSourceUser();
84
-		$destinationUser = $transfer->getTargetUser();
85
-		$fileId = $transfer->getFileId();
86
-
87
-		$userFolder = $this->rootFolder->getUserFolder($sourceUser);
88
-		$nodes = $userFolder->getById($fileId);
89
-
90
-		if (empty($nodes)) {
91
-			$this->logger->alert('Could not transfer ownership: Node not found');
92
-			$this->failedNotication($transfer);
93
-			return;
94
-		}
95
-		$path = $userFolder->getRelativePath($nodes[0]->getPath());
96
-
97
-		$sourceUserObject = $this->userManager->get($sourceUser);
98
-		$destinationUserObject = $this->userManager->get($destinationUser);
99
-
100
-		if (!$sourceUserObject instanceof IUser) {
101
-			$this->logger->alert('Could not transfer ownership: Unknown source user ' . $sourceUser);
102
-			$this->failedNotication($transfer);
103
-			return;
104
-		}
105
-
106
-		if (!$destinationUserObject instanceof IUser) {
107
-			$this->logger->alert("Unknown destination user $destinationUser");
108
-			$this->failedNotication($transfer);
109
-			return;
110
-		}
111
-
112
-		try {
113
-			$this->transferService->transfer(
114
-				$sourceUserObject,
115
-				$destinationUserObject,
116
-				ltrim($path, '/')
117
-			);
118
-			$this->successNotification($transfer);
119
-		} catch (TransferOwnershipException $e) {
120
-			$this->logger->logException($e);
121
-			$this->failedNotication($transfer);
122
-		}
123
-
124
-		$this->mapper->delete($transfer);
125
-	}
126
-
127
-	private function failedNotication(Transfer $transfer): void {
128
-		// Send notification to source user
129
-		$notification = $this->notificationManager->createNotification();
130
-		$notification->setUser($transfer->getSourceUser())
131
-			->setApp(Application::APP_ID)
132
-			->setDateTime($this->time->getDateTime())
133
-			->setSubject('transferOwnershipFailedSource', [
134
-				'sourceUser' => $transfer->getSourceUser(),
135
-				'targetUser' => $transfer->getTargetUser(),
136
-				'nodeName' => $transfer->getNodeName(),
137
-			])
138
-			->setObject('transfer', (string)$transfer->getId());
139
-		$this->notificationManager->notify($notification);
140
-
141
-		// Send notification to source user
142
-		$notification = $this->notificationManager->createNotification();
143
-		$notification->setUser($transfer->getTargetUser())
144
-			->setApp(Application::APP_ID)
145
-			->setDateTime($this->time->getDateTime())
146
-			->setSubject('transferOwnershipFailedTarget', [
147
-				'sourceUser' => $transfer->getSourceUser(),
148
-				'targetUser' => $transfer->getTargetUser(),
149
-				'nodeName' => $transfer->getNodeName(),
150
-			])
151
-			->setObject('transfer', (string)$transfer->getId());
152
-		$this->notificationManager->notify($notification);
153
-	}
154
-
155
-	private function successNotification(Transfer $transfer): void {
156
-		// Send notification to source user
157
-		$notification = $this->notificationManager->createNotification();
158
-		$notification->setUser($transfer->getSourceUser())
159
-			->setApp(Application::APP_ID)
160
-			->setDateTime($this->time->getDateTime())
161
-			->setSubject('transferOwnershipDoneSource', [
162
-				'sourceUser' => $transfer->getSourceUser(),
163
-				'targetUser' => $transfer->getTargetUser(),
164
-				'nodeName' => $transfer->getNodeName(),
165
-			])
166
-			->setObject('transfer', (string)$transfer->getId());
167
-		$this->notificationManager->notify($notification);
168
-
169
-		// Send notification to source user
170
-		$notification = $this->notificationManager->createNotification();
171
-		$notification->setUser($transfer->getTargetUser())
172
-			->setApp(Application::APP_ID)
173
-			->setDateTime($this->time->getDateTime())
174
-			->setSubject('transferOwnershipDoneTarget', [
175
-				'sourceUser' => $transfer->getSourceUser(),
176
-				'targetUser' => $transfer->getTargetUser(),
177
-				'nodeName' => $transfer->getNodeName(),
178
-			])
179
-			->setObject('transfer', (string)$transfer->getId());
180
-		$this->notificationManager->notify($notification);
181
-	}
45
+    /** @var IUserManager $userManager */
46
+    private $userManager;
47
+
48
+    /** @var OwnershipTransferService */
49
+    private $transferService;
50
+
51
+    /** @var ILogger */
52
+    private $logger;
53
+
54
+    /** @var NotificationManager */
55
+    private $notificationManager;
56
+
57
+    /** @var TransferOwnershipMapper */
58
+    private $mapper;
59
+    /** @var IRootFolder */
60
+    private $rootFolder;
61
+
62
+    public function __construct(ITimeFactory $timeFactory,
63
+                                IUserManager $userManager,
64
+                                OwnershipTransferService $transferService,
65
+                                ILogger $logger,
66
+                                NotificationManager $notificationManager,
67
+                                TransferOwnershipMapper $mapper,
68
+                                IRootFolder $rootFolder) {
69
+        parent::__construct($timeFactory);
70
+
71
+        $this->userManager = $userManager;
72
+        $this->transferService = $transferService;
73
+        $this->logger = $logger;
74
+        $this->notificationManager = $notificationManager;
75
+        $this->mapper = $mapper;
76
+        $this->rootFolder = $rootFolder;
77
+    }
78
+
79
+    protected function run($argument) {
80
+        $id = $argument['id'];
81
+
82
+        $transfer = $this->mapper->getById($id);
83
+        $sourceUser = $transfer->getSourceUser();
84
+        $destinationUser = $transfer->getTargetUser();
85
+        $fileId = $transfer->getFileId();
86
+
87
+        $userFolder = $this->rootFolder->getUserFolder($sourceUser);
88
+        $nodes = $userFolder->getById($fileId);
89
+
90
+        if (empty($nodes)) {
91
+            $this->logger->alert('Could not transfer ownership: Node not found');
92
+            $this->failedNotication($transfer);
93
+            return;
94
+        }
95
+        $path = $userFolder->getRelativePath($nodes[0]->getPath());
96
+
97
+        $sourceUserObject = $this->userManager->get($sourceUser);
98
+        $destinationUserObject = $this->userManager->get($destinationUser);
99
+
100
+        if (!$sourceUserObject instanceof IUser) {
101
+            $this->logger->alert('Could not transfer ownership: Unknown source user ' . $sourceUser);
102
+            $this->failedNotication($transfer);
103
+            return;
104
+        }
105
+
106
+        if (!$destinationUserObject instanceof IUser) {
107
+            $this->logger->alert("Unknown destination user $destinationUser");
108
+            $this->failedNotication($transfer);
109
+            return;
110
+        }
111
+
112
+        try {
113
+            $this->transferService->transfer(
114
+                $sourceUserObject,
115
+                $destinationUserObject,
116
+                ltrim($path, '/')
117
+            );
118
+            $this->successNotification($transfer);
119
+        } catch (TransferOwnershipException $e) {
120
+            $this->logger->logException($e);
121
+            $this->failedNotication($transfer);
122
+        }
123
+
124
+        $this->mapper->delete($transfer);
125
+    }
126
+
127
+    private function failedNotication(Transfer $transfer): void {
128
+        // Send notification to source user
129
+        $notification = $this->notificationManager->createNotification();
130
+        $notification->setUser($transfer->getSourceUser())
131
+            ->setApp(Application::APP_ID)
132
+            ->setDateTime($this->time->getDateTime())
133
+            ->setSubject('transferOwnershipFailedSource', [
134
+                'sourceUser' => $transfer->getSourceUser(),
135
+                'targetUser' => $transfer->getTargetUser(),
136
+                'nodeName' => $transfer->getNodeName(),
137
+            ])
138
+            ->setObject('transfer', (string)$transfer->getId());
139
+        $this->notificationManager->notify($notification);
140
+
141
+        // Send notification to source user
142
+        $notification = $this->notificationManager->createNotification();
143
+        $notification->setUser($transfer->getTargetUser())
144
+            ->setApp(Application::APP_ID)
145
+            ->setDateTime($this->time->getDateTime())
146
+            ->setSubject('transferOwnershipFailedTarget', [
147
+                'sourceUser' => $transfer->getSourceUser(),
148
+                'targetUser' => $transfer->getTargetUser(),
149
+                'nodeName' => $transfer->getNodeName(),
150
+            ])
151
+            ->setObject('transfer', (string)$transfer->getId());
152
+        $this->notificationManager->notify($notification);
153
+    }
154
+
155
+    private function successNotification(Transfer $transfer): void {
156
+        // Send notification to source user
157
+        $notification = $this->notificationManager->createNotification();
158
+        $notification->setUser($transfer->getSourceUser())
159
+            ->setApp(Application::APP_ID)
160
+            ->setDateTime($this->time->getDateTime())
161
+            ->setSubject('transferOwnershipDoneSource', [
162
+                'sourceUser' => $transfer->getSourceUser(),
163
+                'targetUser' => $transfer->getTargetUser(),
164
+                'nodeName' => $transfer->getNodeName(),
165
+            ])
166
+            ->setObject('transfer', (string)$transfer->getId());
167
+        $this->notificationManager->notify($notification);
168
+
169
+        // Send notification to source user
170
+        $notification = $this->notificationManager->createNotification();
171
+        $notification->setUser($transfer->getTargetUser())
172
+            ->setApp(Application::APP_ID)
173
+            ->setDateTime($this->time->getDateTime())
174
+            ->setSubject('transferOwnershipDoneTarget', [
175
+                'sourceUser' => $transfer->getSourceUser(),
176
+                'targetUser' => $transfer->getTargetUser(),
177
+                'nodeName' => $transfer->getNodeName(),
178
+            ])
179
+            ->setObject('transfer', (string)$transfer->getId());
180
+        $this->notificationManager->notify($notification);
181
+    }
182 182
 }
Please login to merge, or discard this patch.