用户使用CakePHP登录后如何更改用户会话?

时间:2009-05-14 20:03:55

标签: php cakephp

我有

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

从会话中检索当前用户。

我想让管理员用户能够“充当”客户。我希望能够在进入客户界面时更换用户会话中的customer_id。

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

这不起作用,因为我找不到将$ user数据推回Auth

的方法

3 个答案:

答案 0 :(得分:3)

这应该有效:

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

请注意,如果您还使用基于Acl和组的权限模型,这种仅更改customer_id的方法可能会产生一些副作用。

答案 1 :(得分:0)

如果您只是检查会话上的customer_id以确定该用户是否属于customer类型,而不是:

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

我会尝试:

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

答案 2 :(得分:0)

尝试将$this->Auth->logout()$this->Auth->login()与客户的数据合并。

但是,如果您希望管理员能够在不再次输入凭据的情况下返回其帐户,则需要实施其他逻辑。这不是一件容易的事,但值得一提。