У меня есть поле role
для моих пользователей, которым я действительно нуждаюсь в доступе. Если пользователь является admin
, они будут иметь дополнительные доступные действия во многих моих представлениях.Как принудительно включить поле в пользователя AuthComponent?
Так, в beforeRender
моего AppController
я это делаю:
$this->set('loggedInUser', $this->Auth->user());
Таким образом, я могу использовать, чтобы получить доступ $loggedInUser
зарегистрированного пользователя во всех моих взглядов.
Дело в том, что из 10 полей, что таблица users
имеет, то AuthComponent
кажется принести только эти 4: id
, username
, verified
и modified
.
Я не могу найти нигде в своем коде, указав эти 4 поля в целом.
Что вызывает AuthComponent
, чтобы выбрать случайно эти конкретные поля? Как я могу заставить поля, которые мне нужны?
Дополнительная информация в случае, если это необходимо:
Все поля в users
таблице:
id
username
email
password
role
verification_hash
email_md5
verified
created
modified
Инициализация AuthComponent
внутри моей AppController
заключается в следующем:
$this->loadComponent(
'Auth',
[
'authorize' => 'Controller',
'authError' => 'You are not allowed to go there',
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'username',
'email' => 'email',
'password' => 'password'
]
]
],
'loginAction' => [
'controller' => 'Pages',
'action' => 'display',
'home'
]
]
);
Неправильно, по умолчанию AuthComponent будет извлекать все поля. Кроме того, в поле 'fields' вашей конфигурации ключ' email' не требуется. –
@ JoséLorenzo, спасибо, знаете ли вы, почему AuthComponent извлекает только те конкретные поля? – hakermania
У вас есть что-нибудь в '$ _hiddenFields' в вашей организации? –