煮詰まった・・・

#024で、ユーザプロフィールのeditを実装してるんだけども、編集画面にpasswordのinputも出てきて、これをそのまま更新してしまうともう一度sha1を加えた値でパスワードが書き換えられてしまう(笑)

ちょっと気をつけるべきところはパスワードの処理でしょうかね。パスワードに値が入っていたときだけ保存するようにしています。

コントローラを読む限り、ここをどう実装してるのか全然理解できなくて煮詰まっています。もしかして、パスワードのvalueは''にしとかなあかんのかな?と思ってみたものの、表示されないだけでやっぱり同じ。うーん。

isset($this->data['User']['pwd'])?

ここで三項演算子を使ってる。pwdがセットされていればsha1で暗号化した文字列を、セットされていなければDBから読んできたパスワードをそのまま格納してsaveを実行してる。ということは、value=''で空をセットしているつもりが、issetではセットされてると認識されてるってことかな。

と考えて、更新されてるパスワードの値をチェックしたら、sha1(PWD_KEY.'')で作られた文字列と同じだった。うーん、どうしよw

・・・と思って先を読んでたら、#027で上記をバグとコメントあり。issetをemptyに直してちょこちょこと修正して解消。ふー、すっきりした。メシでも食ってこよう。