sfGuardPluginの設定続き4:login nameが表示できるようになりました
logoutしている時に、
echo $sf_user->getUserName();
の表示がおかしかった件が解決できました。
まず、Dinoさんの動画にちょうど良さそうなのがあったので、勉強。
http://openlab.dino.co.jp/2008/05/09/231348244.html#more-244
issetだけじゃなくて、is_objectというのがある。
型も含めた比較は ===で(打つのが面倒)。
==で、配列の中身も含めた比較が出来る。
nullと falseはちょっと違う。
という事が分かりました。
is_objectは $sf_user->getUserName()を調べても駄目で、$sf_user->getGuardUser()を調べるとうまくいきました。で、全体の layoutの右メニューを直して、ログイン状態を表示するようにしました。
/var/www/podtv/apps/frontend/templates/layout.php
<b>Menu</b><br /> <br /> <b>会員情報</b><br /> <?php if ( is_object( $sf_user->getGuardUser())){ echo "ようこそ " .$sf_user->getUsername() ."さん<br />"; echo link_to('logoutする', '@sf_guard_signout') ."<br />"; } else { echo "ようこそ Guestさん<br />"; echo link_to('loginする', '@sf_guard_signin') ."<br />"; } ?>
ついでに、sfGuardPluginの初期データに userと guestを追加。
/var/www/podtv/plugins/sfGuardPlugin/data/fixtures/fixtures.yml
sfGuardUser: admin: username: admin password: xxxxxxxxx is_super_admin: true user: username: user password: user guest: username: guest password: guest sfGuardPermission: admin: name: admin description: Administrator permission user: name: user description: general user permission guest: name: guest description: guest permission sfGuardGroup: admin: name: admin description: Administrator group user: name: user description: general user group guest: name: guest description: guest group sfGuardGroupPermission: admin: group_id: admin permission_id: admin sfGuardUserGroup: admin: group_id: admin user_id: admin
これで、admin, user, guestの3つのアカウントが表示されるようになりました。やっとシステムっぽい雰囲気が出てきました。
ただ、作ってから思ったのですが、ID : guest PASS:guestというユーザーを作るのは、なんか辺ですね。ログインしていない状態の時が guestのはずなので、guestという名前でログインするのはおかしい感じです。