Skip to content

Commit 911bf87

Browse files
authored
Merge pull request #59063 from nextcloud/backport/59061/stable28
2 parents 9e57077 + edeea3e commit 911bf87

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

apps/user_ldap/lib/Controller/RenewPasswordController.php

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<?php
2+
23
/**
34
* @copyright Copyright (c) 2017 Roger Szabo <roger.szabo@web.de>
45
*
@@ -24,6 +25,7 @@
2425
namespace OCA\User_LDAP\Controller;
2526

2627
use OCP\AppFramework\Controller;
28+
use OCP\AppFramework\Http\Attribute\BruteForceProtection;
2729
use OCP\AppFramework\Http\Attribute\OpenAPI;
2830
use OCP\AppFramework\Http\RedirectResponse;
2931
use OCP\AppFramework\Http\TemplateResponse;
@@ -129,23 +131,26 @@ public function showRenewPasswordForm($user) {
129131
*
130132
* @return RedirectResponse
131133
*/
134+
#[BruteForceProtection(action: 'login')]
132135
public function tryRenewPassword($user, $oldPassword, $newPassword) {
133136
if ($this->config->getUserValue($user, 'user_ldap', 'needsPasswordReset') !== 'true') {
134137
return new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm'));
135138
}
136-
$args = !is_null($user) ? ['user' => $user] : [];
139+
$args = ['user' => $user];
137140
$loginResult = $this->userManager->checkPassword($user, $oldPassword);
138141
if ($loginResult === false) {
139142
$this->session->set('renewPasswordMessages', [
140143
['invalidpassword'], []
141144
]);
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;
143148
}
144149

145150
try {
146151
if (!is_null($newPassword) && \OC_User::setPassword($user, $newPassword)) {
147152
$this->session->set('loginMessages', [
148-
[], [$this->l10n->t("Please login with the new password")]
153+
[], [$this->l10n->t('Please login with the new password')]
149154
]);
150155
$this->config->setUserValue($user, 'user_ldap', 'needsPasswordReset', 'false');
151156
return new RedirectResponse($this->urlGenerator->linkToRoute('core.login.showLoginForm', $args));

0 commit comments

Comments
 (0)