CakePHPでユーザーグループごとのボタン表示切替

CakePHP備忘録シリーズ。
これまでの備忘録も機能ごとに編集予定。

CakePHPでACLを利用すると必ずグループという概念が必須になる。
ACLは表示コントローラやアクションを制御し、非許可アクションに遷移しようとすると所定のアクションにリダイレクトされるなどがメインの動きのよう。
実際には管理者にはこのボタンを追加で表示などの方が多いので、その機能も追加。

ちなみにACLは全体の構築仕様が固まっており場合には使用しやすいが、構築しながら機能追加していると、その都度DBに情報追記が必要で結構面倒くさい。少し違う方法も検討すべきかと思う。みんなどうしているんだろう。

ボタンの表示切り替えはいたって簡単で、View側にif文で書いてしまっています。

<?php if ($userinfo['group_id'] == 1) { ?>
<li>
<?php echo $this->Html->link($this->Html->image('bt_admin.png'),
array(
'controller' => 'users',
'action' => 'index'
),
array('escape' => false)
);
?>
</li>
<?php } ?>

$userinfoはAppController.phpで定義しているログインユーザーのセッション情報を取得した変数です。
この変数ないのgroup_idを確認し、1だったらユーザー一覧に遷移するボタンを表示するという仕組みです。

コメントを書く