如何确保用户只能在Yii中查看和访问自己的数据

Tur*_*rgs 3 security authorization yii

在Yii中,有没有一种最好的方法来确保用户只能在Yii中查看和访问他们自己的数据?

我认为管理员应该能够看到任何东西,但就目前而言,我稍后会越过那座桥.

谢谢

aco*_*com 9

研究范围.默认范围将是您的朋友:http: //www.yiiframework.com/doc/guide/1.1/en/database.ar#named-scopes

由于defaultScopes数组位于函数内部,因此您还可以执行条件默认范围:

public function defaultScope()
{
    $t=$this->getTableAlias(false,false);

    if(Yii::app()->user->notAdmin()) {
        return array(
            'condition'=>"$t.<column_name> = :<columnName>",
            'params'=>array(':<columnName>'=>Yii::app()->user->notAdmin),
        );
    }
    else return array();
}
Run Code Online (Sandbox Code Playgroud)

编辑:请注意,如果您不小心,这可能会让您遇到麻烦.有关详细信息,在Yii网站上查看此问题.