2015-07-02 2 views
0

У меня есть поле 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' 
     ] 
    ] 
); 
+0

Неправильно, по умолчанию AuthComponent будет извлекать все поля. Кроме того, в поле 'fields' вашей конфигурации ключ' email' не требуется. –

+0

@ JoséLorenzo, спасибо, знаете ли вы, почему AuthComponent извлекает только те конкретные поля? – hakermania

+0

У вас есть что-нибудь в '$ _hiddenFields' в вашей организации? –

ответ

0

Проблема связана с доступными полями в моей сущности. Я оставил там некоторые несуществующие поля, которые я забыл удалить.

По какой-то причине кажется, что AuthComponent не понравилось эти несуществующие поля, и он извлек только 4 поля.

Извлечь из доступных полей те, которые не существовали, по-видимому, устраняет проблему.

Смежные вопросы