Completed
Pull Request — master (#8375)
by Morris
20:18 queued 03:40
created
settings/Controller/ChangePasswordController.php 1 patch
Indentation   +222 added lines, -222 removed lines patch added patch discarded remove patch
@@ -41,244 +41,244 @@
 block discarded – undo
41 41
 
42 42
 class ChangePasswordController extends Controller {
43 43
 
44
-	/** @var string */
45
-	private $userId;
44
+    /** @var string */
45
+    private $userId;
46 46
 
47
-	/** @var UserManager */
48
-	private $userManager;
47
+    /** @var UserManager */
48
+    private $userManager;
49 49
 
50
-	/** @var IL10N */
51
-	private $l;
50
+    /** @var IL10N */
51
+    private $l;
52 52
 
53
-	/** @var GroupManager */
54
-	private $groupManager;
53
+    /** @var GroupManager */
54
+    private $groupManager;
55 55
 
56
-	/** @var Session */
57
-	private $userSession;
56
+    /** @var Session */
57
+    private $userSession;
58 58
 
59
-	/** @var IAppManager */
60
-	private $appManager;
59
+    /** @var IAppManager */
60
+    private $appManager;
61 61
 
62
-	public function __construct(string $appName,
63
-								IRequest $request,
64
-								string $userId,
65
-								UserManager $userManager,
66
-								IUserSession $userSession,
67
-								GroupManager $groupManager,
68
-								IAppManager $appManager,
69
-								IL10N $l) {
70
-		parent::__construct($appName, $request);
62
+    public function __construct(string $appName,
63
+                                IRequest $request,
64
+                                string $userId,
65
+                                UserManager $userManager,
66
+                                IUserSession $userSession,
67
+                                GroupManager $groupManager,
68
+                                IAppManager $appManager,
69
+                                IL10N $l) {
70
+        parent::__construct($appName, $request);
71 71
 
72
-		$this->userId = $userId;
73
-		$this->userManager = $userManager;
74
-		$this->userSession = $userSession;
75
-		$this->groupManager = $groupManager;
76
-		$this->appManager = $appManager;
77
-		$this->l = $l;
78
-	}
72
+        $this->userId = $userId;
73
+        $this->userManager = $userManager;
74
+        $this->userSession = $userSession;
75
+        $this->groupManager = $groupManager;
76
+        $this->appManager = $appManager;
77
+        $this->l = $l;
78
+    }
79 79
 
80
-	/**
81
-	 * @NoAdminRequired
82
-	 * @NoSubadminRequired
83
-	 * @BruteForceProtection(action=changePersonalPassword)
84
-	 *
85
-	 * @param string $oldpassword
86
-	 * @param string $newpassword
87
-	 *
88
-	 * @return JSONResponse
89
-	 */
90
-	public function changePersonalPassword(string $oldpassword = '', string $newpassword = null): JSONResponse {
91
-		/** @var IUser $user */
92
-		$user = $this->userManager->checkPassword($this->userId, $oldpassword);
93
-		if ($user === false) {
94
-			$response = new JSONResponse([
95
-				'status' => 'error',
96
-				'data' => [
97
-					'message' => $this->l->t('Wrong password'),
98
-				],
99
-			]);
100
-			$response->throttle();
101
-			return $response;
102
-		}
80
+    /**
81
+     * @NoAdminRequired
82
+     * @NoSubadminRequired
83
+     * @BruteForceProtection(action=changePersonalPassword)
84
+     *
85
+     * @param string $oldpassword
86
+     * @param string $newpassword
87
+     *
88
+     * @return JSONResponse
89
+     */
90
+    public function changePersonalPassword(string $oldpassword = '', string $newpassword = null): JSONResponse {
91
+        /** @var IUser $user */
92
+        $user = $this->userManager->checkPassword($this->userId, $oldpassword);
93
+        if ($user === false) {
94
+            $response = new JSONResponse([
95
+                'status' => 'error',
96
+                'data' => [
97
+                    'message' => $this->l->t('Wrong password'),
98
+                ],
99
+            ]);
100
+            $response->throttle();
101
+            return $response;
102
+        }
103 103
 
104
-		try {
105
-			if ($newpassword === null || $user->setPassword($newpassword) === false) {
106
-				return new JSONResponse([
107
-					'status' => 'error'
108
-				]);
109
-			}
110
-		// password policy app throws exception
111
-		} catch(HintException $e) {
112
-			return new JSONResponse([
113
-				'status' => 'error',
114
-				'data' => [
115
-					'message' => $e->getHint(),
116
-				],
117
-			]);
118
-		}
104
+        try {
105
+            if ($newpassword === null || $user->setPassword($newpassword) === false) {
106
+                return new JSONResponse([
107
+                    'status' => 'error'
108
+                ]);
109
+            }
110
+        // password policy app throws exception
111
+        } catch(HintException $e) {
112
+            return new JSONResponse([
113
+                'status' => 'error',
114
+                'data' => [
115
+                    'message' => $e->getHint(),
116
+                ],
117
+            ]);
118
+        }
119 119
 
120
-		$this->userSession->updateSessionTokenPassword($newpassword);
120
+        $this->userSession->updateSessionTokenPassword($newpassword);
121 121
 
122
-		return new JSONResponse([
123
-			'status' => 'success',
124
-			'data' => [
125
-				'message' => $this->l->t('Saved'),
126
-			],
127
-		]);
128
-	}
122
+        return new JSONResponse([
123
+            'status' => 'success',
124
+            'data' => [
125
+                'message' => $this->l->t('Saved'),
126
+            ],
127
+        ]);
128
+    }
129 129
 
130
-	/**
131
-	 * @NoAdminRequired
132
-	 * @PasswordConfirmationRequired
133
-	 *
134
-	 * @param string $username
135
-	 * @param string $password
136
-	 * @param string $recoveryPassword
137
-	 *
138
-	 * @return JSONResponse
139
-	 */
140
-	public function changeUserPassword(string $username = null, string $password = null, string $recoveryPassword = null): JSONResponse {
141
-		if ($username === null) {
142
-			return new JSONResponse([
143
-				'status' => 'error',
144
-				'data' => [
145
-					'message' => $this->l->t('No user supplied'),
146
-				],
147
-			]);
148
-		}
130
+    /**
131
+     * @NoAdminRequired
132
+     * @PasswordConfirmationRequired
133
+     *
134
+     * @param string $username
135
+     * @param string $password
136
+     * @param string $recoveryPassword
137
+     *
138
+     * @return JSONResponse
139
+     */
140
+    public function changeUserPassword(string $username = null, string $password = null, string $recoveryPassword = null): JSONResponse {
141
+        if ($username === null) {
142
+            return new JSONResponse([
143
+                'status' => 'error',
144
+                'data' => [
145
+                    'message' => $this->l->t('No user supplied'),
146
+                ],
147
+            ]);
148
+        }
149 149
 
150
-		if ($password === null) {
151
-			return new JSONResponse([
152
-				'status' => 'error',
153
-				'data' => [
154
-					'message' => $this->l->t('Unable to change password'),
155
-				],
156
-			]);
157
-		}
150
+        if ($password === null) {
151
+            return new JSONResponse([
152
+                'status' => 'error',
153
+                'data' => [
154
+                    'message' => $this->l->t('Unable to change password'),
155
+                ],
156
+            ]);
157
+        }
158 158
 
159
-		$currentUser = $this->userSession->getUser();
160
-		$targetUser = $this->userManager->get($username);
161
-		if ($currentUser === null || $targetUser === null ||
162
-			!($this->groupManager->isAdmin($this->userId) ||
163
-			 $this->groupManager->getSubAdmin()->isUserAccessible($currentUser, $targetUser))
164
-		) {
165
-			return new JSONResponse([
166
-				'status' => 'error',
167
-				'data' => [
168
-					'message' => $this->l->t('Authentication error'),
169
-				],
170
-			]);
171
-		}
159
+        $currentUser = $this->userSession->getUser();
160
+        $targetUser = $this->userManager->get($username);
161
+        if ($currentUser === null || $targetUser === null ||
162
+            !($this->groupManager->isAdmin($this->userId) ||
163
+             $this->groupManager->getSubAdmin()->isUserAccessible($currentUser, $targetUser))
164
+        ) {
165
+            return new JSONResponse([
166
+                'status' => 'error',
167
+                'data' => [
168
+                    'message' => $this->l->t('Authentication error'),
169
+                ],
170
+            ]);
171
+        }
172 172
 
173
-		if ($this->appManager->isEnabledForUser('encryption')) {
174
-			//handle the recovery case
175
-			$crypt = new \OCA\Encryption\Crypto\Crypt(
176
-				\OC::$server->getLogger(),
177
-				\OC::$server->getUserSession(),
178
-				\OC::$server->getConfig(),
179
-				\OC::$server->getL10N('encryption'));
180
-			$keyStorage = \OC::$server->getEncryptionKeyStorage();
181
-			$util = new \OCA\Encryption\Util(
182
-				new \OC\Files\View(),
183
-				$crypt,
184
-				\OC::$server->getLogger(),
185
-				\OC::$server->getUserSession(),
186
-				\OC::$server->getConfig(),
187
-				\OC::$server->getUserManager());
188
-			$keyManager = new \OCA\Encryption\KeyManager(
189
-				$keyStorage,
190
-				$crypt,
191
-				\OC::$server->getConfig(),
192
-				\OC::$server->getUserSession(),
193
-				new \OCA\Encryption\Session(\OC::$server->getSession()),
194
-				\OC::$server->getLogger(),
195
-				$util);
196
-			$recovery = new \OCA\Encryption\Recovery(
197
-				\OC::$server->getUserSession(),
198
-				$crypt,
199
-				\OC::$server->getSecureRandom(),
200
-				$keyManager,
201
-				\OC::$server->getConfig(),
202
-				$keyStorage,
203
-				\OC::$server->getEncryptionFilesHelper(),
204
-				new \OC\Files\View());
205
-			$recoveryAdminEnabled = $recovery->isRecoveryKeyEnabled();
173
+        if ($this->appManager->isEnabledForUser('encryption')) {
174
+            //handle the recovery case
175
+            $crypt = new \OCA\Encryption\Crypto\Crypt(
176
+                \OC::$server->getLogger(),
177
+                \OC::$server->getUserSession(),
178
+                \OC::$server->getConfig(),
179
+                \OC::$server->getL10N('encryption'));
180
+            $keyStorage = \OC::$server->getEncryptionKeyStorage();
181
+            $util = new \OCA\Encryption\Util(
182
+                new \OC\Files\View(),
183
+                $crypt,
184
+                \OC::$server->getLogger(),
185
+                \OC::$server->getUserSession(),
186
+                \OC::$server->getConfig(),
187
+                \OC::$server->getUserManager());
188
+            $keyManager = new \OCA\Encryption\KeyManager(
189
+                $keyStorage,
190
+                $crypt,
191
+                \OC::$server->getConfig(),
192
+                \OC::$server->getUserSession(),
193
+                new \OCA\Encryption\Session(\OC::$server->getSession()),
194
+                \OC::$server->getLogger(),
195
+                $util);
196
+            $recovery = new \OCA\Encryption\Recovery(
197
+                \OC::$server->getUserSession(),
198
+                $crypt,
199
+                \OC::$server->getSecureRandom(),
200
+                $keyManager,
201
+                \OC::$server->getConfig(),
202
+                $keyStorage,
203
+                \OC::$server->getEncryptionFilesHelper(),
204
+                new \OC\Files\View());
205
+            $recoveryAdminEnabled = $recovery->isRecoveryKeyEnabled();
206 206
 
207
-			$validRecoveryPassword = false;
208
-			$recoveryEnabledForUser = false;
209
-			if ($recoveryAdminEnabled) {
210
-				$validRecoveryPassword = $keyManager->checkRecoveryPassword($recoveryPassword);
211
-				$recoveryEnabledForUser = $recovery->isRecoveryEnabledForUser($username);
212
-			}
207
+            $validRecoveryPassword = false;
208
+            $recoveryEnabledForUser = false;
209
+            if ($recoveryAdminEnabled) {
210
+                $validRecoveryPassword = $keyManager->checkRecoveryPassword($recoveryPassword);
211
+                $recoveryEnabledForUser = $recovery->isRecoveryEnabledForUser($username);
212
+            }
213 213
 
214
-			if ($recoveryEnabledForUser && $recoveryPassword === '') {
215
-				return new JSONResponse([
216
-					'status' => 'error',
217
-					'data' => [
218
-						'message' => $this->l->t('Please provide an admin recovery password; otherwise, all user data will be lost.'),
219
-					]
220
-				]);
221
-			} elseif ($recoveryEnabledForUser && ! $validRecoveryPassword) {
222
-				return new JSONResponse([
223
-					'status' => 'error',
224
-					'data' => [
225
-						'message' => $this->l->t('Wrong admin recovery password. Please check the password and try again.'),
226
-					]
227
-				]);
228
-			} else { // now we know that everything is fine regarding the recovery password, let's try to change the password
229
-				try {
230
-					$result = $targetUser->setPassword($password, $recoveryPassword);
231
-				// password policy app throws exception
232
-				} catch(HintException $e) {
233
-					return new JSONResponse([
234
-						'status' => 'error',
235
-						'data' => [
236
-							'message' => $e->getHint(),
237
-						],
238
-					]);
239
-				}
240
-				if (!$result && $recoveryEnabledForUser) {
241
-					return new JSONResponse([
242
-						'status' => 'error',
243
-						'data' => [
244
-							'message' => $this->l->t('Backend doesn\'t support password change, but the user\'s encryption key was updated.'),
245
-						]
246
-					]);
247
-				} elseif (!$result && !$recoveryEnabledForUser) {
248
-					return new JSONResponse([
249
-						'status' => 'error',
250
-						'data' => [
251
-							'message' => $this->l->t('Unable to change password'),
252
-						]
253
-					]);
254
-				}
255
-			}
256
-		} else {
257
-			try {
258
-				if ($targetUser->setPassword($password) === false) {
259
-					return new JSONResponse([
260
-						'status' => 'error',
261
-						'data' => [
262
-							'message' => $this->l->t('Unable to change password'),
263
-						],
264
-					]);
265
-				}
266
-			// password policy app throws exception
267
-			} catch(HintException $e) {
268
-				return new JSONResponse([
269
-					'status' => 'error',
270
-					'data' => [
271
-						'message' => $e->getHint(),
272
-					],
273
-				]);
274
-			}
275
-		}
214
+            if ($recoveryEnabledForUser && $recoveryPassword === '') {
215
+                return new JSONResponse([
216
+                    'status' => 'error',
217
+                    'data' => [
218
+                        'message' => $this->l->t('Please provide an admin recovery password; otherwise, all user data will be lost.'),
219
+                    ]
220
+                ]);
221
+            } elseif ($recoveryEnabledForUser && ! $validRecoveryPassword) {
222
+                return new JSONResponse([
223
+                    'status' => 'error',
224
+                    'data' => [
225
+                        'message' => $this->l->t('Wrong admin recovery password. Please check the password and try again.'),
226
+                    ]
227
+                ]);
228
+            } else { // now we know that everything is fine regarding the recovery password, let's try to change the password
229
+                try {
230
+                    $result = $targetUser->setPassword($password, $recoveryPassword);
231
+                // password policy app throws exception
232
+                } catch(HintException $e) {
233
+                    return new JSONResponse([
234
+                        'status' => 'error',
235
+                        'data' => [
236
+                            'message' => $e->getHint(),
237
+                        ],
238
+                    ]);
239
+                }
240
+                if (!$result && $recoveryEnabledForUser) {
241
+                    return new JSONResponse([
242
+                        'status' => 'error',
243
+                        'data' => [
244
+                            'message' => $this->l->t('Backend doesn\'t support password change, but the user\'s encryption key was updated.'),
245
+                        ]
246
+                    ]);
247
+                } elseif (!$result && !$recoveryEnabledForUser) {
248
+                    return new JSONResponse([
249
+                        'status' => 'error',
250
+                        'data' => [
251
+                            'message' => $this->l->t('Unable to change password'),
252
+                        ]
253
+                    ]);
254
+                }
255
+            }
256
+        } else {
257
+            try {
258
+                if ($targetUser->setPassword($password) === false) {
259
+                    return new JSONResponse([
260
+                        'status' => 'error',
261
+                        'data' => [
262
+                            'message' => $this->l->t('Unable to change password'),
263
+                        ],
264
+                    ]);
265
+                }
266
+            // password policy app throws exception
267
+            } catch(HintException $e) {
268
+                return new JSONResponse([
269
+                    'status' => 'error',
270
+                    'data' => [
271
+                        'message' => $e->getHint(),
272
+                    ],
273
+                ]);
274
+            }
275
+        }
276 276
 
277
-		return new JSONResponse([
278
-			'status' => 'success',
279
-			'data' => [
280
-				'username' => $username,
281
-			],
282
-		]);
283
-	}
277
+        return new JSONResponse([
278
+            'status' => 'success',
279
+            'data' => [
280
+                'username' => $username,
281
+            ],
282
+        ]);
283
+    }
284 284
 }
Please login to merge, or discard this patch.