Skip to content

Commit f1badaf

Browse files
authored
Merge pull request #59014 from nextcloud/backport/59006/stable33
[stable33] fix: Add missing Attribute and fix parameter type in renewpassword route
2 parents b7a6bd9 + 70c07a6 commit f1badaf

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

apps/user_ldap/lib/Controller/RenewPasswordController.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
use OCA\User_LDAP\AppInfo\Application;
1010
use OCP\AppFramework\Controller;
11+
use OCP\AppFramework\Http\Attribute\BruteForceProtection;
1112
use OCP\AppFramework\Http\Attribute\NoCSRFRequired;
1213
use OCP\AppFramework\Http\Attribute\OpenAPI;
1314
use OCP\AppFramework\Http\Attribute\PublicPage;
@@ -84,17 +85,20 @@ public function showRenewPasswordForm(string $user): TemplateResponse|RedirectRe
8485

8586
#[PublicPage]
8687
#[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')) {
8991
return new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm'));
9092
}
91-
$args = !is_null($user) ? ['user' => $user] : [];
93+
$args = ['user' => $user];
9294
$loginResult = $this->userManager->checkPassword($user, $oldPassword);
9395
if ($loginResult === false) {
9496
$this->session->set('renewPasswordMessages', [
9597
['invalidpassword'], []
9698
]);
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;
98102
}
99103

100104
try {

0 commit comments

Comments
 (0)