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, プログラミング

関連記事

エンジニア転職記 –在職中に使用したサービス–

プログラミング転職記とか114514番煎じネタだと思うけど技術ネタは投稿までが時間がかかるので、自分の体験でも書きたいと思います。 今、プログラミングブームだとよく感じます。テレビでもネットでもAIや …

【VirtualBox】スナップショットの作成・適用・削除

業務では主にHyper-Vを使用しているのですが、「チェックポイント」という機能がとても便利で重宝しています。 機能の概要は、稼働している仮想環境を「チェックポイント」として保存することができ、作成し …

【Laravel-admin】リレーション関係を持ったCRUD作成(1対1、1対多、多対多)

前回、【Laravel-admin】Laravel-adminで新規テーブルを作成しCRUD画面を追加する方法でLaravel-adminでテーブルのCRUD画面を作成しました。 単一のテーブルであれ …

【Laravel】Laravel&Laravel-adminでの論理削除 ~ORMとDBファサード~

Laravelでは論理削除を行う機能が備わっています。 論理削除と物理削除に関しては以下に詳しく紹介されています。 参考:論理削除と物理削除とは データを削除したいけれど、後々データの復元を行う可能性 …

【SendGrid】SendGridでトランザクションテンプレート作成

はじめに 前回SendGridに登録を行いAPIKeyの作成を行いました。 関連記事:【SendGrid】SendGridについての概要 この記事ではSenGridのトランザクションメールのテンプレー …