<?php
/**
 * @todo 控制权限,不能瞎玩
 * Created by PhpStorm.
 * User: william
 * Date: 2017-11-29
 * Time: 10:26
 */
class Service_Permission extends Common_Service{
    /**
     * @todo 权限管理
     * $url:当前权限
     * $allRights :所有权限,
     * $nowrights:当前用户的权限
     * 当传入的$url，$allRights之类就判断url是否在nowrights之内，
     * 当传入的url不在所有权限之内就放开,因为一大堆界面元素都没添加到权限表中
     */
    public static function verifypermission($url,$allRights,$nowrights,$user_id){
        $checkurl = false;
        if(!empty($allRights)){
            foreach($allRights as $k=>$right){
                if($right['ur_url']==$url){
                    //所有权限表中有权限，检查当前的权限有没有这个权限
                    $checkurl = true;
                    $ur_id = $right['ur_id'];
                    break;
                }
            }
        }
        //需要检查
        if($checkurl){
            if(!empty($nowrights)){
                foreach($nowrights as $k=>$nr){
                    foreach($nr['item'] as $ki=>$item){
                        if($item['ur_url']==$url){
                            return true;
                        }
                    }
                }
                if(isset($ur_id) && $ur_id!=''){
                    //ur_id
                    $urmCondition = array(
                        'ur_id'=>$ur_id,
                        'user_id'=>$user_id
                    );
                    $userRightMap = Service_UserRightMap::getByCondition($urmCondition,"count(*)");
                    if($userRightMap){
                       return true;
                    }
                }
                return false;
            }else{
                return false;//当前用户没权限返回false
            }
        }else{
            return true;//无需检查返回有权限
        }
        return true;
    }
}