PHPのRuby on Railsクローンのフレームワーク Akelos PHPをいじってみた出来事のメモ。

Akelosをいじってみるメモ帳

Akelos PHP Blogチュートリアル一覧(全18記事)
Akelos PHP ユーザ認証チュートリアル一覧(全19記事)

2008年09月02日

Akelosユーザ認証チュートリアル 3.Userモデルをちゃんとする その1 属性設定

Userモデルはデータのテーブルだけでは不十分です。
そこで、下記のようなコードを足します。

class User extends ActiveRecord
{
//クラス内の共通暗号化キーです
var $_my_common_salt = 'my_common_pass';

//管理者かどうかのフラグです。
var $is_admin = false;

//管理者として設定する人のメールアドレス
var $_admin_email = array("hoge@sample.com","amuamu@sample.com");


//クラス生成時の処理
function User()
{
// Railsで言うattr_accessorの設定
// DBのテーブルに無い属性を仮想的に作る場合に使います。
// 確認画面などに表示させ、入力させたいフィールドを足すのに必要なものをここでは指定
$this->set('passwd_confirmation');
// Railsで言うattr_protectedの設定
// ユーザが修正出来ないように保護するものを指定
$this->setProtectedAttributes(array('id','salt'));

//親のコンストラクタを呼びます おまじない
parent::__construct(func_get_args());
}
}

$_my_common_saltはパスワードの暗号化(ハッシュ化)に使う固定値です。適当な文字列に修正してください。
$is_adminと、$_admin_emailは管理者の為の設定です。管理者アドレスと一致し、ログインが成功した費とは管理者として認識し、フラグを立てるための設定です。

User()関数はコンストラクタですね。ここでは、2つの操作をしています。

最初のsetメソッドでは、このモデルが持つべき属性を足しています。コード内のメモに書いてあるように仮想的な属性です。ここではパスワードの確認の為の再入力枠用にpasswd_confirmationとしてあります。

2つめのsetProtectedAttributesは、ユーザが上書き・修正・閲覧出来ないようにすべきものを決めています。こうやって隠しておきたいものや、触られると困るものを指定しておくと安全になります。

最後の部分は親クラスの、まぁ詳しく知る必要は通常は無いかな、おまじないみたいなもんですが、入れ忘れるとうまくいかないので注意。
posted by AMUAMU at 02:27| Comment(0) | TrackBack(0) | チュートリアル | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/105874534

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。