Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【システム】管理画面ログイン後のリダイレクトが動作していない #4103

Closed
seto1 opened this issue Dec 26, 2024 · 1 comment

Comments

@seto1
Copy link
Collaborator

seto1 commented Dec 26, 2024

バージョン

baserCMS version : 4.8.2

現象

調査

UsersController->admin_loginでafterLoginイベントを発火しているコードをコメントアウトすると、ダッシュボードではなく最初にアクセスしたページが表示される
https://github.com/baserproject/basercms/blob/dev-4/lib/Baser/Controller/UsersController.php#L165

今のままだとAuthComponent->redirectUrlが2回呼び出されているため、1回目の呼び出しでセッションのリダイレクトURLが削除されてしまっている状態

@seto1
Copy link
Collaborator Author

seto1 commented Dec 26, 2024

イベント発火時にloginRedirectを渡さなくてもイベント側で取得可能

public $events = [
    'Users.afterLogin',
];

public function usersAfterLogin(CakeEvent $event) {
    $Controller = $event->subject();

    // リダイレクト先取得
    print_r($Controller->BcAuth->redirectUrl());

    // やろうと思えばリダイレクト先の変更も可能
    // $Controller->BcAuth->redirectUrl('/admin/tools/');
}

単に以下の対応でよさそう

// EVENT Users.afterLogin
$this->dispatchEvent('afterLogin', [
	'user' => $this->BcAuth->user(),
	'loginRedirect' => $this->BcAuth->redirect(), // <--------- 削除
]);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant