限制对不同用户配置文件视图的访问


Limiting access to different user profile views

对于社交网络风格的应用程序,有不同级别的访问用户配置文件,例如,完整配置文件(所有者),有限配置文件(配置文件所有者好友),无访问权限(随机用户)。

如何使用Yii框架限制对不同概要文件视图(在本例中为三个)的访问?

我自己找过这个,但是有一个令人困惑的可用选项,其中一些我不能100%确定是否适合上述行为。我怀疑这是一个新手问题,所以如果在其他地方有很好的介绍,请随时重定向我。

你必须使用他们的id访问用户的配置文件,这样你就可以检查配置文件是否属于当前登录的用户的配置文件,然后在UsersController actionView中你可以做

if(Yii::app()->user->isGuest){
   Yii::app()->user->loginRequired();
}
if(Yii::app()->user->id == $user_id){
    //this is something to check before showing information about the current user. 
    //you can use this variable for some specific html blocks (to show them or not).
    $user_role = '1'; //full access
}
else {
    $user_role = '0'; //partial access
}

虽然这只是一个简单的技巧。还有更复杂的方法。