Я пытаюсь использовать cakeDC Users-Plugin 8.5.1 в cakephp 3.8, но все, что я получаю, это сообщение «вам не разрешен доступ к этому местоположению». Я использую простой RBAC, следуя инструкции согласно документации на github. кажется, что config / permissions.php не читается, потому что, когда я пишу какой-то плохой синтаксис в этом файле, ничего не меняется - никаких сообщений об ошибках. вместо этого то же самое поведение «вам не разрешено…»
Вот что я сделал: я использовал composer для установки плагина. Поскольку я использую cakephp 3.8, плагин добавляется в Application.php.
В инициализированном AppController.php () я вставил
$config['Auth']['authorize']['Users.SimpleRbac'] = [
//autoload permissions.php
'autoload_config' => 'permissions',
//role field in the Users table
'role_field' => 'role',
//default role, used in new users registered and also as role matcher when no role is available
'default_role' => 'user',
/*
* This is a quick roles-permissions implementation
* Rules are evaluated top-down, first matching rule will apply
* Each line define
* [
* 'role' => 'admin',
* 'plugin', (optional, default = null)
* 'controller',
* 'action',
* 'allowed' (optional, default = true)
* ]
* You could use '*' to match anything
* Suggestion: put your rules into a specific config file
*/
'permissions' => [],
];
Для таблицы пользователей у меня есть собственная таблица обновлений, которая содержит столбцы, в которых нуждается плагин. Поэтому в моем UprofilesController.php я добавил код для использования признаков, которые поставляются с плагином.
В config / users.php я изменил имя таблицы на «uprofiles» и имя контроллерав "Uprofiles". Часть Auth в users.php:
'Auth' => [
'loginAction' => [
'plugin' => 'CakeDC/Users',
'controller' => 'Users',
'action' => 'login',
'prefix' => false
],
'authenticate' => [
'all' => [
'finder' => 'auth',
],
'CakeDC/Auth.ApiKey',
'CakeDC/Auth.RememberMe',
'Form',
],
'authorize' => [
'CakeDC/Auth.Superuser',
'CakeDC/Auth.SimpleRbac',
],
],
Что не так? Кто-нибудь может мне помочь? Я также попытался настроить суперпользователя с помощью инструмента Bake. Это не сработало.
Error: [BadMethodCallException] Unknown method "generateUniqueUsername" in .../vendor/cakephp/cakephp/src/ORM/Table.php on line 2524
Спасибо за помощь