Laravel-admin PHP プログラミング

【Laravel-admin】Laravel-adminでのRoles(役割)とpermission(権限)について

投稿日:2018年11月4日 更新日:

前回「【laravel-admin】Laravel-adminで新規テーブルを作成しCRUD画面を追加する方法」でテーブルを作成し画面を追加しました。

今回は作成したテーブルの操作画面をメニューを追加しようと思います。

ついでにLaravel-adminにおけるrole(役割)とpermission(権限)について書いていきたいと思います。

Laravel-adminのpermissionとは

Laravel-adminでのpermissionとは、アクセス許可に関する制御を行う機能です。基本的にrole(役割)に付与して使用することになります。

Laravel-adminのトップページのサイドメニューにpermissionに関するメニューがあります。

初期状態では以下のような内容になっていると思います。

ここで指定されている「Route」が制御に関する項目になります。

現在青い背景に白文字で描かれているのがリクエスト種別です。

新規作成の際に「http_method」を空白で登録すると、すべてのリクエストが行える「ANY」となります。

そのあとに続くグレーで囲まれた文字列が、アクセス許可の対象パスとなります。

インストール後自動で作成されるadminユーザは、「role」に「Administrator」が付与されており、

「Administrator」の「permission」は「All permission」が付与されているため、admin配下の全てのパスにアクセスできます。

permissionによってアクセス許可を行う

アクセス許可機能を実際に見ていくためにpermissionを作成しユーザに付与したいと思います。

サイドメニューから以下のような内容でpermissionを作成して下さい。

上記内容だとログイン・ログアウトのみが実行可能なpermissionです。

このpermissionをユーザに付与し再度ログインし、「<ホスト名>:8000/admin/auth/test」にアクセス制御がかかって以下の画面が表示されていることを確認します。

アクセス制限がかかり閲覧できない設定になっています。

「HTTP path」に「/auth/test」を設定すればアクセスが可能になります。

permissionの使い方は先述の通り、コントローラ等で設定したURLに対し、直接指定することでアクセスの許可を行う形になります。

Laravel-adminのroleとは

permissionがアクセス許可の機能に対して、roleではmenuの画面表示を制御することが可能です。

左メニューからroleを作成します。

そしてroleにはpermissionを付与することが可能です。先ほど作成したpermissionを選択し、作成します。

作成したroleをユーザに付与するとpermissionを選択しなくてもroleに紐づいたpermissionが与えられます。

roleによって画面制御を行う

それではroleによって画面制御を行っていきます。

左メニューの「Menu」を選択し右ボックスから新規メニューを作成します。

画面制御に関しては「URI」と「role」になります。今回はURIに「/auth/test」、roleに「Test」を選択しました。

こうすることで画面に追加したメニューが表示されるはずです。

現在の設定では、作成したtest_usersページは「role」と「Administrator」のroleでしか見れません。

Laravel-adminでは上記のような流れでroleを使って画面制御を行います。

まとめ

permissionやroleを一通り触ってみた感想として、ユーザ作成の際にpermissionの入力があるために、

roleとpermissionの区別・追加分けを分かりにくくしている印象を受けました。

roleを持たないユーザはデフォルト権限みたいな感じにして、ユーザに付与するのはroleだけで十分な気がします。

あと、初期のpermissionのsettingやmanagementはログイン・ログアウトの権限がないために機能できていないなど、

デフォルトからすべて設定が完了しているとは言い難いので、ある程度理解してカスタマイズする必要はありそうです。

また、ログイン認証の方法や対象のテーブルなど、カスタマイズは可能そうなのでそのあたりも書いていきたいと思います。

-Laravel-admin, PHP, プログラミング

関連記事

【Laravel-admin】PHPのライブラリ「Laravel-admin」のインストール方法

どうも、こんばんは。 今日はPHPのフレームワークの中でも国内外で多く利用されている「Laravel」と、管理画面作成用のパッケージである「Laravel-admin」のインストールと使い方を解説した …

【Laravel&Laravel-admin】artisanコマンドまとめ

Laravelにおいての「artisan」コマンドでは簡単にコントローラやモデルの作成等が行えます。 使用のたびに公式から探すのも面倒なのでまとめておきたいと思います。 いざ調べてみると結構面白く、知 …

メール送信におけるレピュテーションとは ~IP・ドメインを育てる!!~

Webシステムにおいて、何らかの契機でメール送信を行う機能は必要とされるケースが多くあります。 僕自身、関わった案件の中でメール送信機能を実装した経験がいくつかあります。 メール送信機能の実装に関して …

Visual Studio 2017のインストール方法

以前のバージョンのアンインストール インストールの前に以前のバージョンが既にインストールされている場合に、以前のバージョンのアンインストール作業を簡単に実行することができます。 以下のページからTot …

【Laravel-admin】good/csvを利用したCSVファイルのインポート

こんばんは。 一月に入り一気に寒くなってきましたね。 僕の住んでいる場所は山間にあるため、朝方は超冷えます。そして霧が深いので道路&フロントがガチガチに凍ります。 いいところもいっぱいあるので …