2011-03-28 9 views
1

私は、都市や国に対応するデータベースレコードを持つアプリケーションを持っています。私のユーザーモデルは、フィールドcity_idとcountry_idを持っています。 city_idがゼロでない場合、ユーザーはその都市に対応するレコードにアクセスするだけでよい。例えば、Post、Advert、Venue、Competitionのような外部キーcity_idを持つ他の8つのモデルがあります。CakePHPによるアクセスコントロール - データベースフィールドによるアクセスの制限

私はAclを設定しています。レコードへのアクセスを拒否する良い方法があるかどうかを知りたいのですが認証されたユーザーが0のcity_idを持っていない限り(すべての都市にアクセスできることを意味します)、認証されたユーザーと同じcity_idを持っていません。同じことが国に行きます、私は同じ目的を果たすcountry_idフィールドを持っています。

私が行って、本当にハッキーと恐ろしい、おかげで行く前に、ガイダンスは非常に感謝しています。

答えて

0

あなたのコントローラまたはモデルで、独自の機能isAuthorized()で複雑な権限チェックを行うことができます。あなたはAuthコンポーネントでこれを設定する必要があります:$this->Auth->authorize = 'controller';

CakePHPの本はexample on this.

+0

うーん...私は前にこれに遭遇してきたが、私は、特定のデータベースへのアクセスを制限するアプローチする方法として、少し不確かだがあります行はisAuthorizedを使用します。すべてのポインタ? – Will

関連する問題