作成日:2018-04-27, 更新日:2018-08-13
基本
1.アクセス権限を設定する
2.各ページで権限チェックを行う
めも
よくあるのは、下記の3種に対して振り分けをすると思う。
・ログインしていない人
・ログイン中の一般ユーザー
・ログイン中の管理人
この程度なら「\Auth::check()」でログインしている・していないを振り分けて「group」で一般・管理人を振り分ければいい。
▼ちょっと特殊な状況や、ログイン中でも細分化したい場合にrolesに意味が出てくる。
・一般ユーザーは自分の情報のみ見れる
・運営者(平社員の管理人)は、全ユーザーの情報は見れる
・運営者(役職ありの管理人)は、全ユーザーの情報を編集できる
・開発(管理人)は、全ユーザーの情報を編集できるし、削除もできる
アクセス権限を設定
「fuel/app/config/simpleauth.php」で「groups」と「roles」を設定する
▼例
'groups' => array( 0 => array('name' => 'Guests', 'roles' => array()), 10 => array('name' => 'Users', 'roles' => array('user')), 100 => array('name' => 'Administrators', 'roles' => array('user', 'admin')), ), 'roles' => array( 'user' => array( 'dashbord' => array('read') ), 'admin' => array( 'dashbord' => array('update'), 'controlpanel' => array('read', 'update')), ),
・「group=10」の「ユーザー」は「roles(user)」によって「dashbord.read」が設定される。
・「group=100」の「ユーザー」は「roles(user, admin)」によって「dashbord.read、dashbord.update、controlpanel.read、controlpanel.update」が設定される。
各ページで権限チェック
▼ダッシュボードページの更新できる人と出来ない人で処理を振り分けたい
if ( \Auth::has_access('dashbord.update') ) { // 「dashbord.read」が付与されたユーザー } else { // 「dashbord.read」が付与されていないユーザー }
※「dashbord」も「read」も任意の文字列。「ダッシュボードページの更新」だからといって「dashbord.update」にする必要は無い。