Passed
Push — master ( da64a3...18f234 )
by John
14:32 queued 14s
created
apps/files/lib/Controller/TransferOwnershipController.php 1 patch
Indentation   +149 added lines, -149 removed lines patch added patch discarded remove patch
@@ -44,153 +44,153 @@
 block discarded – undo
44 44
 
45 45
 class TransferOwnershipController extends OCSController {
46 46
 
47
-	/** @var string */
48
-	private $userId;
49
-	/** @var NotificationManager */
50
-	private $notificationManager;
51
-	/** @var ITimeFactory */
52
-	private $timeFactory;
53
-	/** @var IJobList */
54
-	private $jobList;
55
-	/** @var TransferOwnershipMapper */
56
-	private $mapper;
57
-	/** @var IUserManager */
58
-	private $userManager;
59
-	/** @var IRootFolder */
60
-	private $rootFolder;
61
-
62
-	public function __construct(string $appName,
63
-								IRequest $request,
64
-								string $userId,
65
-								NotificationManager $notificationManager,
66
-								ITimeFactory $timeFactory,
67
-								IJobList $jobList,
68
-								TransferOwnershipMapper $mapper,
69
-								IUserManager $userManager,
70
-								IRootFolder $rootFolder) {
71
-		parent::__construct($appName, $request);
72
-
73
-		$this->userId = $userId;
74
-		$this->notificationManager = $notificationManager;
75
-		$this->timeFactory = $timeFactory;
76
-		$this->jobList = $jobList;
77
-		$this->mapper = $mapper;
78
-		$this->userManager = $userManager;
79
-		$this->rootFolder = $rootFolder;
80
-	}
81
-
82
-
83
-	/**
84
-	 * @NoAdminRequired
85
-	 */
86
-	public function transfer(string $recipient, string $path): DataResponse {
87
-		$recipientUser = $this->userManager->get($recipient);
88
-
89
-		if ($recipientUser === null) {
90
-			return new DataResponse([], Http::STATUS_BAD_REQUEST);
91
-		}
92
-
93
-		$userRoot = $this->rootFolder->getUserFolder($this->userId);
94
-
95
-		try {
96
-			$node = $userRoot->get($path);
97
-		} catch (\Exception $e) {
98
-			return new DataResponse([], Http::STATUS_BAD_REQUEST);
99
-		}
100
-
101
-		if ($node->getOwner()->getUID() !== $this->userId || !$node->getStorage()->instanceOfStorage(IHomeStorage::class)) {
102
-			return new DataResponse([], Http::STATUS_FORBIDDEN);
103
-		}
104
-
105
-		$transferOwnership = new TransferOwnershipEntity();
106
-		$transferOwnership->setSourceUser($this->userId);
107
-		$transferOwnership->setTargetUser($recipient);
108
-		$transferOwnership->setFileId($node->getId());
109
-		$transferOwnership->setNodeName($node->getName());
110
-		$transferOwnership = $this->mapper->insert($transferOwnership);
111
-
112
-		$notification = $this->notificationManager->createNotification();
113
-		$notification->setUser($recipient)
114
-			->setApp($this->appName)
115
-			->setDateTime($this->timeFactory->getDateTime())
116
-			->setSubject('transferownershipRequest', [
117
-				'sourceUser' => $this->userId,
118
-				'targetUser' => $recipient,
119
-				'nodeName' => $node->getName(),
120
-			])
121
-			->setObject('transfer', (string)$transferOwnership->getId());
122
-
123
-		$this->notificationManager->notify($notification);
124
-
125
-		return new DataResponse([]);
126
-	}
127
-
128
-	/**
129
-	 * @NoAdminRequired
130
-	 */
131
-	public function accept(int $id): DataResponse {
132
-		try {
133
-			$transferOwnership = $this->mapper->getById($id);
134
-		} catch (DoesNotExistException $e) {
135
-			return new DataResponse([], Http::STATUS_NOT_FOUND);
136
-		}
137
-
138
-		if ($transferOwnership->getTargetUser() !== $this->userId) {
139
-			return new DataResponse([], Http::STATUS_FORBIDDEN);
140
-		}
141
-
142
-		$notification = $this->notificationManager->createNotification();
143
-		$notification->setApp('files')
144
-			->setObject('transfer', (string)$id);
145
-		$this->notificationManager->markProcessed($notification);
146
-
147
-		$newTransferOwnership = new TransferOwnershipEntity();
148
-		$newTransferOwnership->setNodeName($transferOwnership->getNodeName());
149
-		$newTransferOwnership->setFileId($transferOwnership->getFileId());
150
-		$newTransferOwnership->setSourceUser($transferOwnership->getSourceUser());
151
-		$newTransferOwnership->setTargetUser($transferOwnership->getTargetUser());
152
-		$this->mapper->insert($newTransferOwnership);
153
-
154
-		$this->jobList->add(TransferOwnership::class, [
155
-			'id' => $newTransferOwnership->getId(),
156
-		]);
157
-
158
-		return new DataResponse([], Http::STATUS_OK);
159
-	}
160
-
161
-	/**
162
-	 * @NoAdminRequired
163
-	 */
164
-	public function reject(int $id): DataResponse {
165
-		try {
166
-			$transferOwnership = $this->mapper->getById($id);
167
-		} catch (DoesNotExistException $e) {
168
-			return new DataResponse([], Http::STATUS_NOT_FOUND);
169
-		}
170
-
171
-		if ($transferOwnership->getTargetUser() !== $this->userId) {
172
-			return new DataResponse([], Http::STATUS_FORBIDDEN);
173
-		}
174
-
175
-		$notification = $this->notificationManager->createNotification();
176
-		$notification->setApp('files')
177
-			->setObject('transfer', (string)$id);
178
-		$this->notificationManager->markProcessed($notification);
179
-
180
-		$notification = $this->notificationManager->createNotification();
181
-		$notification->setUser($transferOwnership->getSourceUser())
182
-			->setApp($this->appName)
183
-			->setDateTime($this->timeFactory->getDateTime())
184
-			->setSubject('transferownershipRequestDenied', [
185
-				'sourceUser' => $transferOwnership->getSourceUser(),
186
-				'targetUser' => $transferOwnership->getTargetUser(),
187
-				'nodeName' => $transferOwnership->getNodeName()
188
-			])
189
-			->setObject('transfer', (string)$transferOwnership->getId());
190
-		$this->notificationManager->notify($notification);
191
-
192
-		$this->mapper->delete($transferOwnership);
193
-
194
-		return new DataResponse([], Http::STATUS_OK);
195
-	}
47
+    /** @var string */
48
+    private $userId;
49
+    /** @var NotificationManager */
50
+    private $notificationManager;
51
+    /** @var ITimeFactory */
52
+    private $timeFactory;
53
+    /** @var IJobList */
54
+    private $jobList;
55
+    /** @var TransferOwnershipMapper */
56
+    private $mapper;
57
+    /** @var IUserManager */
58
+    private $userManager;
59
+    /** @var IRootFolder */
60
+    private $rootFolder;
61
+
62
+    public function __construct(string $appName,
63
+                                IRequest $request,
64
+                                string $userId,
65
+                                NotificationManager $notificationManager,
66
+                                ITimeFactory $timeFactory,
67
+                                IJobList $jobList,
68
+                                TransferOwnershipMapper $mapper,
69
+                                IUserManager $userManager,
70
+                                IRootFolder $rootFolder) {
71
+        parent::__construct($appName, $request);
72
+
73
+        $this->userId = $userId;
74
+        $this->notificationManager = $notificationManager;
75
+        $this->timeFactory = $timeFactory;
76
+        $this->jobList = $jobList;
77
+        $this->mapper = $mapper;
78
+        $this->userManager = $userManager;
79
+        $this->rootFolder = $rootFolder;
80
+    }
81
+
82
+
83
+    /**
84
+     * @NoAdminRequired
85
+     */
86
+    public function transfer(string $recipient, string $path): DataResponse {
87
+        $recipientUser = $this->userManager->get($recipient);
88
+
89
+        if ($recipientUser === null) {
90
+            return new DataResponse([], Http::STATUS_BAD_REQUEST);
91
+        }
92
+
93
+        $userRoot = $this->rootFolder->getUserFolder($this->userId);
94
+
95
+        try {
96
+            $node = $userRoot->get($path);
97
+        } catch (\Exception $e) {
98
+            return new DataResponse([], Http::STATUS_BAD_REQUEST);
99
+        }
100
+
101
+        if ($node->getOwner()->getUID() !== $this->userId || !$node->getStorage()->instanceOfStorage(IHomeStorage::class)) {
102
+            return new DataResponse([], Http::STATUS_FORBIDDEN);
103
+        }
104
+
105
+        $transferOwnership = new TransferOwnershipEntity();
106
+        $transferOwnership->setSourceUser($this->userId);
107
+        $transferOwnership->setTargetUser($recipient);
108
+        $transferOwnership->setFileId($node->getId());
109
+        $transferOwnership->setNodeName($node->getName());
110
+        $transferOwnership = $this->mapper->insert($transferOwnership);
111
+
112
+        $notification = $this->notificationManager->createNotification();
113
+        $notification->setUser($recipient)
114
+            ->setApp($this->appName)
115
+            ->setDateTime($this->timeFactory->getDateTime())
116
+            ->setSubject('transferownershipRequest', [
117
+                'sourceUser' => $this->userId,
118
+                'targetUser' => $recipient,
119
+                'nodeName' => $node->getName(),
120
+            ])
121
+            ->setObject('transfer', (string)$transferOwnership->getId());
122
+
123
+        $this->notificationManager->notify($notification);
124
+
125
+        return new DataResponse([]);
126
+    }
127
+
128
+    /**
129
+     * @NoAdminRequired
130
+     */
131
+    public function accept(int $id): DataResponse {
132
+        try {
133
+            $transferOwnership = $this->mapper->getById($id);
134
+        } catch (DoesNotExistException $e) {
135
+            return new DataResponse([], Http::STATUS_NOT_FOUND);
136
+        }
137
+
138
+        if ($transferOwnership->getTargetUser() !== $this->userId) {
139
+            return new DataResponse([], Http::STATUS_FORBIDDEN);
140
+        }
141
+
142
+        $notification = $this->notificationManager->createNotification();
143
+        $notification->setApp('files')
144
+            ->setObject('transfer', (string)$id);
145
+        $this->notificationManager->markProcessed($notification);
146
+
147
+        $newTransferOwnership = new TransferOwnershipEntity();
148
+        $newTransferOwnership->setNodeName($transferOwnership->getNodeName());
149
+        $newTransferOwnership->setFileId($transferOwnership->getFileId());
150
+        $newTransferOwnership->setSourceUser($transferOwnership->getSourceUser());
151
+        $newTransferOwnership->setTargetUser($transferOwnership->getTargetUser());
152
+        $this->mapper->insert($newTransferOwnership);
153
+
154
+        $this->jobList->add(TransferOwnership::class, [
155
+            'id' => $newTransferOwnership->getId(),
156
+        ]);
157
+
158
+        return new DataResponse([], Http::STATUS_OK);
159
+    }
160
+
161
+    /**
162
+     * @NoAdminRequired
163
+     */
164
+    public function reject(int $id): DataResponse {
165
+        try {
166
+            $transferOwnership = $this->mapper->getById($id);
167
+        } catch (DoesNotExistException $e) {
168
+            return new DataResponse([], Http::STATUS_NOT_FOUND);
169
+        }
170
+
171
+        if ($transferOwnership->getTargetUser() !== $this->userId) {
172
+            return new DataResponse([], Http::STATUS_FORBIDDEN);
173
+        }
174
+
175
+        $notification = $this->notificationManager->createNotification();
176
+        $notification->setApp('files')
177
+            ->setObject('transfer', (string)$id);
178
+        $this->notificationManager->markProcessed($notification);
179
+
180
+        $notification = $this->notificationManager->createNotification();
181
+        $notification->setUser($transferOwnership->getSourceUser())
182
+            ->setApp($this->appName)
183
+            ->setDateTime($this->timeFactory->getDateTime())
184
+            ->setSubject('transferownershipRequestDenied', [
185
+                'sourceUser' => $transferOwnership->getSourceUser(),
186
+                'targetUser' => $transferOwnership->getTargetUser(),
187
+                'nodeName' => $transferOwnership->getNodeName()
188
+            ])
189
+            ->setObject('transfer', (string)$transferOwnership->getId());
190
+        $this->notificationManager->notify($notification);
191
+
192
+        $this->mapper->delete($transferOwnership);
193
+
194
+        return new DataResponse([], Http::STATUS_OK);
195
+    }
196 196
 }
Please login to merge, or discard this patch.