2009-05-14 9 views
1

Iセッションから現在のユーザーを取得ユーザがCakePHPでログインした後にユーザセッションを変更するにはどうすればよいですか?

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

を有します。

私は、管理者ユーザーを顧客として「行動する」ようにしたいと考えています。そして私は、カスタマー・インターフェースに入ったときにユーザー・セッションのcustomer_idを置き換えることができるようにしたいと考えていました。私は、あなたは、単にそのユーザーがであるかどうかを判断するためにセッションでCUSTOMER_IDをチェックしている場合は、バック認証

答えて

3

これは動作するはずです:

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

はあなたにもACLとグループベースの許可モデルを使用している場合だけCUSTOMER_IDを変更するこのアプローチは、いくつかの副作用をもたらす可能性がありますのでご注意ください。

0

に$ユーザデータをプッシュする方法を見つけることができないため

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

これは動作しません。タイプ顧客ではなく:

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

私がしようとするだろう:

の$ this - >セッション - >書き込み( 'User.customer_id'、 '4');

+0

'Auth.User.customer_id'の認証がありません –

0

$this->Auth->logout()$this->Auth->login()を組み合わせて、お客様のデータと組み合わせてみてください。

ただし、管理者が再度資格情報を入力せずに自分のアカウントに戻ることができるようにするには、追加ロジックを実装する必要があります。それは簡単なことではありませんが、言及する価値があります。

関連する問題