|
1 | 1 | <?php |
| 2 | + |
2 | 3 | /** |
3 | 4 | * @copyright Copyright (c) 2017 Roger Szabo <roger.szabo@web.de> |
4 | 5 | * |
|
24 | 25 | namespace OCA\User_LDAP\Controller; |
25 | 26 |
|
26 | 27 | use OCP\AppFramework\Controller; |
| 28 | +use OCP\AppFramework\Http\Attribute\BruteForceProtection; |
27 | 29 | use OCP\AppFramework\Http\Attribute\OpenAPI; |
28 | 30 | use OCP\AppFramework\Http\RedirectResponse; |
29 | 31 | use OCP\AppFramework\Http\TemplateResponse; |
@@ -129,23 +131,26 @@ public function showRenewPasswordForm($user) { |
129 | 131 | * |
130 | 132 | * @return RedirectResponse |
131 | 133 | */ |
| 134 | + #[BruteForceProtection(action: 'login')] |
132 | 135 | public function tryRenewPassword($user, $oldPassword, $newPassword) { |
133 | 136 | if ($this->config->getUserValue($user, 'user_ldap', 'needsPasswordReset') !== 'true') { |
134 | 137 | return new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm')); |
135 | 138 | } |
136 | | - $args = !is_null($user) ? ['user' => $user] : []; |
| 139 | + $args = ['user' => $user]; |
137 | 140 | $loginResult = $this->userManager->checkPassword($user, $oldPassword); |
138 | 141 | if ($loginResult === false) { |
139 | 142 | $this->session->set('renewPasswordMessages', [ |
140 | 143 | ['invalidpassword'], [] |
141 | 144 | ]); |
142 | | - return new RedirectResponse($this->urlGenerator->linkToRoute('user_ldap.renewPassword.showRenewPasswordForm', $args)); |
| 145 | + $response = new RedirectResponse($this->urlGenerator->linkToRoute('user_ldap.renewPassword.showRenewPasswordForm', $args)); |
| 146 | + $response->throttle(['user' => $user]); |
| 147 | + return $response; |
143 | 148 | } |
144 | 149 |
|
145 | 150 | try { |
146 | 151 | if (!is_null($newPassword) && \OC_User::setPassword($user, $newPassword)) { |
147 | 152 | $this->session->set('loginMessages', [ |
148 | | - [], [$this->l10n->t("Please login with the new password")] |
| 153 | + [], [$this->l10n->t('Please login with the new password')] |
149 | 154 | ]); |
150 | 155 | $this->config->setUserValue($user, 'user_ldap', 'needsPasswordReset', 'false'); |
151 | 156 | return new RedirectResponse($this->urlGenerator->linkToRoute('core.login.showLoginForm', $args)); |
|
0 commit comments