RBAC 检查用户是否有权限 [ 1.0 版本 ]
权限节点名称为 controllerid.''.action_id
在BaseController.php 中添加
public function beforeAction($action)
{
    if(parent::beforeAction($action)){
        $controllerId=$action->controller->id;
        $actionId=$action->id;
        $nodeName=$controllerId.'_'.$actionId;
        $user=\Yii::$app->user->identity;
        if(in_array($nodeName,['site_login','site_error', 'site_password'])){
            return true;
        }
        if(!\Yii::$app->user->isGuest){
            //检查是否没有修改默认密码
            if($user->getIsDefaultPwd()&&!in_array($nodeName,['site_login','site_error','site_password'])){
                return $this->redirect(['/site/password']);
            }
        }
        if($controllerId==='site'||$user->getId()==User::SUPER_ADMIN){
            return true;
        }
        if(\Yii::$app->user->can($nodeName)){
            return true;
        }else{
            throw new ForbiddenHttpException('对不起,您现在还没获此操作的权限');
        }
    }else{
        return false;
    }
}
specialnot
            注册时间:2015-08-06
最后登录:2019-08-16
在线时长:27小时54分
    最后登录:2019-08-16
在线时长:27小时54分
- 粉丝43
- 金钱1175
- 威望200
- 积分3445


共 2 条评论
如果修改了原来的密码,YII2会立即让登录失效的.
为什么会失败,没太明白
@specialnot 我晕啊,我以为这是你弄成功的
@qq3737002 我的意思是“YII2会立即让登录失效的.”,怎么会出现这种情况
能不能 每个步骤都写上注释吗?新人路过
起始我也刚接触三个月而已,逼着自己去看吧