laravel5.1の標準ユーザ認証で、一つのカラム(user_permission)で、ログイン可・不可や権限レベルを設定できるようにしてみた

laravel5.1の標準ユーザ認証で、一つのカラム(user_permission)で、ログイン可・不可や権限レベルを設定できるようにしてみた

参考URL: Laravelのログイン処理にemailやpassword以外の条件を加える方法
http://qiita.com/sasakure-kei@github/items/388a2900557a6079164d

参考URLの方法だと、指定した値だった場合ログインOK!
まあ普通は、ID and PASSWORD and 有効フラグが全部一致なら認証!って条件が普通だものな~。
今回は権限も兼ねているので、指定された値以外ならOK!という仕様。
1=管理者
2=編集者
3=閲覧者
4=ログイン不可

みたいな感じ。

まず、参考URLに従って、app/Http/Controllers/Auth/AuthController.phpにコードを追加する。

このままだと、user_permission=4(ログイン不可)のuserしかログインできないので、処理を追加する。
(user_permissionカラムの時だけ、指定された値以外は認証OKにする。)

project_root/vendor/laravel/framework/src/Illuminate/Auth/EloquentUserProvider.php

data.index.php(表示ページ)も、user_permission によって切り分ける。
閲覧者(user_permission=3)でログインしたら、作成ボタン・編集ボタンは表示させない!

URLで、直接アクセスされた時も拒否(ルートに戻す)
DataController.php

分かってしまえば、それほど複雑な事をしている訳じゃないけど、ちまちま解析するのは大変だ(^_^;)