/** * Check user access to permission * * @access public * * @param integer $userId user id * @param string $permission checked permission * @param array $data for compatible, not used! * * @return bool * @throws \Micro\base\Exception */ public function check($userId, $permission, array $data = []) { $query = new Query($this->container->db); $query->select = '*'; $query->table = '`acl_user` AS `au`'; $query->addJoin('`acl_perm` AS `ap`', '`ap`.`id` = `au`.`perm`'); $query->addJoin('`acl_role_perm` AS `arp`', '`arp`.`role` = `au`.`role`'); $query->addJoin('`acl_perm` AS `ap1`', '`ap1`.`id` = `arp`.`perm`'); $query->addWhere('`au`.`user`=' . $userId); $query->addWhere('`ap`.`name`=:perm OR `ap1`.`name`=:perm'); $query->limit = 1; $query->params = [':perm' => $permission]; $query->single = true; return (bool) $query->run(); }