我在Yii项目中使用yii-user模块进行用户身份验证/授权。它提供了处理超级用户的方法。特别是我使用函数isAdmin():
public static function isAdmin() {
if(Yii::app()->user->isGuest)
return false;
...
}
在我的项目中,我有 House 实体,还有一种新类型的用户: HouseAdmins (以及DB中相应的house和house_admin表)。所以我有3种类型的用户:
我需要的是创建另一个方法(希望基于isAdmin()),如果用户是特定房屋的houseAdmin,则返回true。该函数类似于:“如果表house_admin
中的元组值为user_id=current_user; house_id=Y
”,则返回true“
我怎么能这样做?
答案 0 :(得分:1)
不确定确切的数据库列名称,但您可以尝试:
public function isHouseAdminOf($house_id)
{
$cur_user_id = Yii::app()->user->id;
$any = HouseAdmin::model()->findByAttributes(array(
'house_id'=>$house_id,
'user_id'=>$cur_user_id
));
if(isset($any))
return true;
return false;
}