Auth.php中验证菜单condition时,admin类型用户数据中加上group_id

发布于 4 days ago

\extend\fast\Auth.php中,这里的$user数据,如果是admin类型的用户,可否加上group_id,这样可以在菜单的condition中使用{group_id}==1,类似这样的条件进行判断

foreach ($this->rules as $rule) {
    //超级管理员无需验证condition
    if (!empty($rule['condition']) && !in_array('*', $ids)) {
        //根据condition进行验证
        $user = $this->getUserInfo($uid); //获取用户信息,一维数组
        $command = preg_replace('/\{(\w*?)\}/', '$user[\'\\1\']', $rule['condition']);
        @(eval('$condition=(' . $command . ');'));
        if ($condition) {
            $rulelist[$rule['id']] = strtolower($rule['name']);
        }
    } else {
        //只要存在就记录
        $rulelist[$rule['id']] = strtolower($rule['name']);
    }
}

例如:

if ($this->config['auth_user'] == 'admin') {
    $group = $this->getGroups($uid);
    $user['group_id'] = $group[0]['group_id'];
}

查看更多

关注者
0
被浏览
30
0 个回答
暂无答案,快来添加答案吧

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览