diff options
author | Christoph Wurst <ChristophWurst@users.noreply.github.com> | 2022-10-24 11:13:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-24 11:13:33 +0200 |
commit | 6435191a6e96600db9efbad8514d6c2eff1375d1 (patch) | |
tree | ee2162fbeaeb57673c1b704f3ad2859368077a43 /apps/settings/lib | |
parent | 4415fca5f8e91fbec73055187bc1d9ae78f2360b (diff) | |
parent | 58a70fe0981e0c5cca22ef7942f6e428f99e6a5c (diff) | |
download | nextcloud-server-6435191a6e96600db9efbad8514d6c2eff1375d1.tar.gz nextcloud-server-6435191a6e96600db9efbad8514d6c2eff1375d1.zip |
Merge pull request #34742 from nextcloud/add_well-known_changepassword
Add .well-known/changepassword handler
Diffstat (limited to 'apps/settings/lib')
-rw-r--r-- | apps/settings/lib/AppInfo/Application.php | 2 | ||||
-rw-r--r-- | apps/settings/lib/WellKnown/ChangePasswordHandler.php | 51 |
2 files changed, 53 insertions, 0 deletions
diff --git a/apps/settings/lib/AppInfo/Application.php b/apps/settings/lib/AppInfo/Application.php index 89a988621f2..8d99f7f4f86 100644 --- a/apps/settings/lib/AppInfo/Application.php +++ b/apps/settings/lib/AppInfo/Application.php @@ -47,6 +47,7 @@ use OCA\Settings\Middleware\SubadminMiddleware; use OCA\Settings\Search\AppSearch; use OCA\Settings\Search\SectionSearch; use OCA\Settings\UserMigration\AccountMigrator; +use OCA\Settings\WellKnown\ChangePasswordHandler; use OCA\Settings\WellKnown\SecurityTxtHandler; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; @@ -86,6 +87,7 @@ class Application extends App implements IBootstrap { // Register well-known handlers $context->registerWellKnownHandler(SecurityTxtHandler::class); + $context->registerWellKnownHandler(ChangePasswordHandler::class); /** * Core class wrappers diff --git a/apps/settings/lib/WellKnown/ChangePasswordHandler.php b/apps/settings/lib/WellKnown/ChangePasswordHandler.php new file mode 100644 index 00000000000..11f733474e3 --- /dev/null +++ b/apps/settings/lib/WellKnown/ChangePasswordHandler.php @@ -0,0 +1,51 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright 2022 Roeland Jago Douma <roeland@famdouma.nl> + * + * @author 2022 Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +namespace OCA\Settings\WellKnown; + +use OCP\AppFramework\Http\RedirectResponse; +use OCP\Http\WellKnown\GenericResponse; +use OCP\Http\WellKnown\IHandler; +use OCP\Http\WellKnown\IRequestContext; +use OCP\Http\WellKnown\IResponse; +use OCP\IURLGenerator; + +class ChangePasswordHandler implements IHandler { + + private IURLGenerator $urlGenerator; + + public function __construct(IURLGenerator $urlGenerator) { + $this->urlGenerator = $urlGenerator; + } + + public function handle(string $service, IRequestContext $context, ?IResponse $previousResponse): ?IResponse { + if ($service !== 'change-password') { + return $previousResponse; + } + + $response = new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('settings.PersonalSettings.index', ['section' => 'security'])); + return new GenericResponse($response); + } +} |