AuthorizationComponent
AuthorizationComponent は controller で権限確認を行うための ヘルパーメソッドを提供します。
php
public function initialize(): void
{
parent::initialize();
$this->loadComponent('Authorization.Authorization');
}1
2
3
4
5
2
3
4
5
自動認可の確認
php
$this->Authorization->authorizeModel('index', 'add');1
公開アクションを設定する場合:
php
$this->loadComponent('Authorization.Authorization', [
'skipAuthorization' => [
'login',
]
]);1
2
3
4
5
2
3
4
5
Authorization を確認する
php
public function edit($id)
{
$article = $this->Articles->get($id);
$this->Authorization->authorize($article);
}1
2
3
4
5
2
3
4
5
別の policy アクション名を使う場合:
php
$this->Authorization->authorize($article, 'update');1
bool が欲しい場合:
php
if ($this->Authorization->can($article, 'update')) {
// 何らかの処理
}1
2
3
2
3
匿名ユーザー
can() と authorize() は匿名ユーザーも扱えます。未ログインの場合、 policy には null が渡されます。
ポリシースコープを適用する
php
$query = $this->Authorization->applyScope($this->Articles->find());1
php
$this->Authorization->mapActions([
'index' => 'list',
'delete' => 'remove',
'add' => 'insert',
]);1
2
3
4
5
2
3
4
5
認可をスキップする
php
public function view($id)
{
$this->Authorization->skipAuthorization();
}1
2
3
4
2
3
4