ユーザー情報更新に成功してもAuthのセッションデータが更新される訳ではないらしい。
当たり前と言えば当たり前だが。
なので、更新時には、手動で更新する必要があり。
更新成功後にこれで!
$options = array(
'recursive' => -1,
'conditions' => array('id' => $this->Auth->user('id'))
);
$user = $this->User->find('first', $options);
$this->Session->write('Auth', $user);
今のAuthに入ってるユーザーIDから自分のユーザー情報を検索して、セッションに突っ込むという形。
他に
・ログアウトとログイン処理を裏で一気にやる。
・セッションの情報を取り出して、変更したデータだけをそっと差し替えでセッションに戻す。
といった方法があるらしいが、自分はどっちもエラー出まくってダメでした!