|
8 | 8 |
|
9 | 9 | use OCA\User_LDAP\AppInfo\Application; |
10 | 10 | use OCP\AppFramework\Controller; |
| 11 | +use OCP\AppFramework\Http\Attribute\BruteForceProtection; |
11 | 12 | use OCP\AppFramework\Http\Attribute\NoCSRFRequired; |
12 | 13 | use OCP\AppFramework\Http\Attribute\OpenAPI; |
13 | 14 | use OCP\AppFramework\Http\Attribute\PublicPage; |
@@ -84,17 +85,20 @@ public function showRenewPasswordForm(string $user): TemplateResponse|RedirectRe |
84 | 85 |
|
85 | 86 | #[PublicPage] |
86 | 87 | #[UseSession] |
87 | | - public function tryRenewPassword(?string $user, string $oldPassword, ?string $newPassword): RedirectResponse { |
88 | | - if ($user !== null && !$this->userConfig->getValueBool($user, 'user_ldap', 'needsPasswordReset')) { |
| 88 | + #[BruteForceProtection(action: 'login')] |
| 89 | + public function tryRenewPassword(string $user, string $oldPassword, ?string $newPassword): RedirectResponse { |
| 90 | + if (!$this->userConfig->getValueBool($user, 'user_ldap', 'needsPasswordReset')) { |
89 | 91 | return new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm')); |
90 | 92 | } |
91 | | - $args = !is_null($user) ? ['user' => $user] : []; |
| 93 | + $args = ['user' => $user]; |
92 | 94 | $loginResult = $this->userManager->checkPassword($user, $oldPassword); |
93 | 95 | if ($loginResult === false) { |
94 | 96 | $this->session->set('renewPasswordMessages', [ |
95 | 97 | ['invalidpassword'], [] |
96 | 98 | ]); |
97 | | - return new RedirectResponse($this->urlGenerator->linkToRoute('user_ldap.renewPassword.showRenewPasswordForm', $args)); |
| 99 | + $response = new RedirectResponse($this->urlGenerator->linkToRoute('user_ldap.renewPassword.showRenewPasswordForm', $args)); |
| 100 | + $response->throttle(['user' => $user]); |
| 101 | + return $response; |
98 | 102 | } |
99 | 103 |
|
100 | 104 | try { |
|
0 commit comments