学習日記69日目 - Blogapp vol.5 -

スタートアップ研修記はこちらです。

どうも、enomotoです。
ということでBlogappの制作日記を。

Admin Generatorでできたフォームを弄る。

Admin Generatorは簡単にできる管理者画面ができるから便利なんだけど
パスワードをMD5とかで変換して保存したいとき等はどうすればいいんだろう。

ということで調べて実装してみた。
参考:http://develop.ddo.jp/symfony/book/jp/1.0/generator.html
updateUserFromRequestで処理しているようなので
userActionsにupdateUserFromRequestを書いてしまう。

<?php

/**
 * user actions.
 *
 * @package    blog
 * @subpackage user
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 2288 2006-10-02 15:22:13Z fabien $
 */
class userActions extends autouserActions
{
  protected function updateUserFromRequest()
  {
    // usernameとpasswordを呼び出す
    $user = $this->getRequestParameter('user');
    // SALT作成
    $salt = md5(rand(100000, 999999).$user['username']);
    // SHA1で処理したPassword作成
    $password = sha1($salt.$user['password']);
    // SALTを保存
    $this->user->setSalt($salt);

    // もしusernameがあれば…
    if (isset($user['username']))
    {
      $username = $user['username'];
      $c = new Criteria();
      $c->add(UserPeer::USERNAME, $username);
      $userpeer = UserPeer::doSelectOne($c);
      // 同じusernameが無ければ
      if(!$userpeer) {
        $this->user->setUsername($user['username']);
      } else {
        // 同じモノがあったらリダイレクト
        $this->redirect('user/list');
      }
    }
    // もしpasswordがあれば
    if (isset($user['password']))
    {
      // SHA1で処理したPasswordを保存
      $this->user->setPassword($password);
    }
  }

}

これでどうにかなった><

Admin Generatorはとても便利な反面よく分からないので
がんばって使いこなせるようになりたい。