laravel 開発日記 第5回 ~ ログイン画面の修正 ~
今回は、
(1)ユーザーログイン画面から「ユーザー新規登録(Register)」を削除
(2)管理者権限でログインした時のみ、ユーザー新規登録への導線を表示
(3)ユーザー新規登録画面を表示するとき、ユーザー権限を確認して、管理者以外は見せないようにする。
を、やろうと思います。
まずは、現在ステージングアドレスを開くと、welcome画面が表示されるので、これをログイン画面が表示されるように修正します。
【作業ファイル:/app/Http/routes.php】
Route::get('/', 'WelcomeController@index'); Route::get('home', 'HomeController@index'); ↓ Route::get('/', 'HomeController@index');
これで、ステージングを開くとログイン画面が出てくるようになりました。
次にログイン画面を修正します。
【作業ファイル:/resources/views/app.blade.php】
@if (Auth::guest()) <li><a href="{{ url('/auth/login') }}">Login</a></li> <li><a href="{{ url('/auth/register') }}">Register</a></li> @else <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user()->name }} <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="{{ url('/auth/logout') }}">Logout</a></li> </ul> </li> @endif ↓ @if (Auth::guest()) <li><a href="{{ url('/auth/login') }}">Login</a></li> @else @if (Auth::user()->level == 'admin') //ユーザー権限が管理者の場合のみ表示 <li><a href="{{ url('/auth/register') }}">Register</a></li> @endif <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">{{ Auth::user()->name }} <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="{{ url('/auth/logout') }}">Logout</a></li> </ul> </li> @endif
よく見たら、ログインのテンプレートではなく、
上位階層のappテンプレートで、ログインしてないときに表示する設定になっていた模様。
未ログイン時に表示から、ログイン時、さらに権限がadminだった場合表示するようにしました。
一応、他のユーザーでもログインして、表示されないことが確認できました。
で、管理者でログイン後、ユーザー新規登録画面を開こうとしたところ、
/homeに飛ばされて、notFoundが表示される・・・。
なるほど。もともとの仕組みで、ログインされてる状態で新規登録画面を開くと/homeに飛ぶ仕様なのですね。
次回、新規登録画面を開いたときのプログラムの流れを追いつつ、管理者のみリダイレクトされないように修正していきます。
Discussion
New Comments
No comments yet. Be the first one!