我一直在使用CakePHP的以下插件(https://github.com/CakeDC/users),但我無法弄清楚如何獲取權限爲它工作。我已遵循所有說明,但似乎authorize
根本沒有得到應用。想知道如果有人有任何提示如何使其工作。這裏是我的設置:CakePHP - CakeDC插件權限不工作
bootstrap.php中
Configure::write('Users.config', ['users']);
Plugin::load('CakeDC/Users', ['routes' => true, 'bootstrap' => true]);
AppController.phpinitialize
功能
$this->loadComponent('CakeDC/Users.UsersAuth');
配置/ users.php
$config = [
'Auth' => [
'authError' => 'Did you really think you are allowed to see that?'
]
];
return $config;
配置/ permissions.php
return [
'Users.SimpleRbac.permissions' => [
[
'role' => '*',
'controller' => 'Pages',
'action' => ['display'],
'allowed' => true
], [
'role' => '*',
'controller' => 'Taxes',
'action' => ['*'],
'allowed' => true
], [
'role' => '*',
'prefix' => 'v1',
'controller' => '*',
'action' => '*',
'allowed' => true
]
]
];
return $config;
坦率地說這似乎是一個CakePHP的配置問題,但我無法找到此問題的根源。我這樣說,因爲即使調試顯示正確的文件加載到authorize
,它不會被調用。
謝謝您的詳細解答。我會審查你在這裏做了什麼。我未能在我的問題上添加所有代碼,並且已更新它以反映我的問題。 –
我已經檢查過你的C9設置,它看起來與我的類似。在您的'permissions.php'文件中,您允許''role'=>'user','訪問主頁。根據您的屏幕截圖,它會阻止訪問未經身份驗證的用戶。即使我有'role'=>'*',',我在我的應用程序中看到了相同的結果。你能否將你的應用程序的權限更改爲''role'=>'*',並且讓我知道你是否能夠查看主頁,或者如果它繼續將你發送到登錄頁面。謝謝! –
我錯誤地認爲SimpleRbacAuthorize.php總體上允許我在沒有用戶登錄的情況下不使用$ this-> Auth-> allow(['action'])。事實並非如此。再次感謝! –