Как изменить сеанс пользователя после того, как пользователь войдет в систему с помощью CakePHP? - PullRequest
1 голос
/ 15 мая 2009

у меня

$user = $this->Auth->user();

, который извлекает текущего пользователя из сеанса.

Я хочу, чтобы пользователь с правами администратора мог «действовать» как клиент. И я надеялся, что смогу просто заменить customer_id в пользовательской сессии, когда они войдут в интерфейс клиента.

$user['User']['customer_id'] = 4;

Это не работает, потому что я не могу найти способ вернуть данные $ user обратно в Auth

Ответы [ 3 ]

3 голосов
/ 15 мая 2009

Это должно работать:

$this->Session->write('Auth.User.customer_id', 4);

Обратите внимание, что этот подход простого изменения customer_id может иметь некоторые побочные эффекты, если вы также используете Acl и модель разрешений на основе групп.

0 голосов
/ 15 мая 2009

Попробуйте объединить $this->Auth->logout(), а затем $this->Auth->login() с данными клиентов.

Однако вам необходимо реализовать дополнительную логику, если вы хотите, чтобы ваш администратор мог вернуться к своей учетной записи, не вводя свои учетные данные снова. Это ежу понятно, но стоит упомянуть.

0 голосов
/ 15 мая 2009

Если вы просто проверяете customer_id в сеансе, чтобы определить, относится ли этот пользователь к типу customer, а не:

$ user ['User'] ['customer_id'] = 4;

Я бы попробовал:

$ this-> Session-> write ('User.customer_id', '4');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...