menu
Webを活用してお客様のビジネス課題を解決します。札幌・東京を拠点にWebコンサルティングをコアにした、Web制作・システム開発・サーバ構築会社です。

Drupalでログインした後にすぐ管理画面に遷移させる

シェア
ツイート
シェア
ブックマーク
タイトルとURLをコピー

最終更新日:2024/02/17   公開日:2017/08/08

 

こんにちは、中村です。

 

もうお盆も近づいていますね。

弊社は好きなタイミングで取るシステムになっており、

(大変ありがたいことに)仕事の混み具合があるので、僕の夏休みは当分先になりそうです。

 

閑話休題。

 

前回ブログで、Drupalで遊んでいると言っていますが今日はそこから小ネタを少々。

Drupalで管理画面にログイン(/user/login)すると、ログイン後初期画面はマイページ(/user/user-id)になります。

 

それはそれで良いのですがいわゆる通常のサイト(ユーザー認証がいらないサイト)は、

管理画面に直で行った方が使いやすいなと思ったわけです。

 

そこでユーザーログインの部分をフックして、リダイレクトさせるようなモジュールにしました。

(こうしておけばインストールさえすれば別サイトでも使えるので)

 

<?php
use Drupal\Core\Form\FormStateInterface;

/**
 * Implements hook_form_FORM_ID_alter().
 */
function modulenamehoge_form_user_login_form_alter(&$form, FormStateInterface $form_state, $form_id) {
    $form['#submit'][] = '_modulenamehoge_user_login_form_submit';
}

/**
 * Custom submit handler for login form.
 */
function _modulenamehoge_user_login_form_submit($form, FormStateInterface $form_state) {
    $form_state->setRedirect('system.admin');
}

 

上のmodulenamehoge_form_user_login_form_alterでsubmitの時の呼び出す関数を下の_modulenamehoge_user_login_form_submitにオーバーライドしてます。

 

やってることは大したことはないのですが、意外と使えるんじゃないかなという小ネタでした。