mirror of
				https://github.com/optim-enterprises-bv/control-pane.git
				synced 2025-10-31 18:07:46 +00:00 
			
		
		
		
	* Fixed the db class
Select was fetching all were selectassoc was fetching a single row
This commit is contained in:
		| @@ -417,7 +417,7 @@ class ClonOS { | ||||
|  | ||||
| /* | ||||
| 	function getTaskStatus($task_id){ | ||||
| 		$status=$this->_db_tasks->select("SELECT status,logfile,errcode  | ||||
| 		$status=$this->_db_tasks->selectOne("SELECT status,logfile,errcode  | ||||
| 					FROM taskd WHERE id=?", array([$task_id]); | ||||
|  | ||||
| 		if($status['errcode']>0) $status['errmsg']=file_get_contents($status['logfile']); | ||||
| @@ -629,7 +629,7 @@ class ClonOS { | ||||
| 		$html=''; | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected()){ | ||||
| 			$jail=$db->select("SELECT jname,ip4_addr,status,protected FROM jails WHERE jname=?", array([$jname])); | ||||
| 			$jail=$db->selectOne("SELECT jname,ip4_addr,status,protected FROM jails WHERE jname=?", array([$jname])); | ||||
| 			$hres=$this->getTableChunk('jailslist','tbody'); | ||||
| 			if($hres!==false){ | ||||
| 				$html_tpl=$hres[1]; | ||||
| @@ -873,7 +873,7 @@ class ClonOS { | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected()){ | ||||
| 			$query="SELECT jname,host_hostname FROM jails WHERE jname=?;"; //ip4_addr | ||||
| 			$res['vars']=$db->select($query, array([$form['jail_id']])); | ||||
| 			$res['vars']=$db->selectOne($query, array([$form['jail_id']])); | ||||
| 		} else { | ||||
| 			$err=true; | ||||
| 		} | ||||
| @@ -906,7 +906,7 @@ class ClonOS { | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected()){ | ||||
| 			$query="SELECT jname,host_hostname FROM jails WHERE jname=?;";	//ip4_addr | ||||
| 			$res['vars']=$db->select($query, array([$form['jail_id']])); | ||||
| 			$res['vars']=$db->selectOne($query, array([$form['jail_id']])); | ||||
| 		}else $err=true; | ||||
|  | ||||
| 		if(empty($res['vars'])) $err=true; | ||||
| @@ -936,7 +936,7 @@ class ClonOS { | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected()){ | ||||
| 			$query="SELECT jname,host_hostname,ip4_addr,allow_mount,interface,mount_ports,astart,vnet FROM jails WHERE jname=?;"; | ||||
| 			$res['vars']=$db->select($query, array([$form['jail_id']])); | ||||
| 			$res['vars']=$db->selectOne($query, array([$form['jail_id']])); | ||||
| 		}else $err=true; | ||||
| 		if(empty($res['vars']))	$err=true; | ||||
|  | ||||
| @@ -1061,7 +1061,7 @@ class ClonOS { | ||||
| 		$html=''; | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected())	{ | ||||
| 			$bhyve=$db->select("SELECT jname,vm_ram,vm_cpus,vm_os_type,hidden FROM bhyve WHERE jname=?", array([$jname])); | ||||
| 			$bhyve=$db->selectOne("SELECT jname,vm_ram,vm_cpus,vm_os_type,hidden FROM bhyve WHERE jname=?", array([$jname])); | ||||
| 			$hres=$this->getTableChunk('bhyveslist','tbody'); | ||||
| 			if($hres!==false){ | ||||
| 				$html_tpl=$hres[1]; | ||||
| @@ -1106,7 +1106,7 @@ class ClonOS { | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected())	{ | ||||
| 			$query="SELECT b.jname as vm_name,vm_cpus,vm_ram,vm_vnc_port,bhyve_vnc_tcp_bind,interface FROM bhyve AS b INNER JOIN jails AS j ON b.jname=j.jname AND b.jname=?;"; | ||||
| 			$res['vars']=$db->select($query, array([$form['jail_id']])); | ||||
| 			$res['vars']=$db->selectOne($query, array([$form['jail_id']])); | ||||
| 			$res['vars']['vm_ram']=$this->fileSizeConvert($res['vars']['vm_ram'],1024,false,true); | ||||
| 		}else{ | ||||
| 			$err=true; | ||||
| @@ -1156,7 +1156,7 @@ class ClonOS { | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected()){ | ||||
| 			$query="SELECT jname,vm_ram,vm_cpus,vm_os_type,hidden FROM bhyve WHERE jname=?"; //ip4_addr | ||||
| 			$res['vars']=$db->select($query, array([$jname])); | ||||
| 			$res['vars']=$db->selectOne($query, array([$jname])); | ||||
| 		}else $err=true; | ||||
|  | ||||
| 		if(empty($res['vars'])) $err=true; | ||||
| @@ -1204,13 +1204,13 @@ class ClonOS { | ||||
| 		$db=new Db('base','storage_media'); | ||||
| 		if(!$db->isConnected()) return(false); // TODO: Fix return | ||||
|  | ||||
| 		$res=$db->select('SELECT * FROM media WHERE jname=? AND type="iso"', array([$jname])); | ||||
| 		$res=$db->selectOne('SELECT * FROM media WHERE jname=? AND type="iso"', array([$jname])); | ||||
| 		if($res!==false && !empty($res)){ | ||||
| 			CBSD::run( | ||||
| 				'cbsd media mode=unregister name="%s" path="%s" jname=%s type=%s', | ||||
| 				array($res['name'], $res['path'], $jname, $res['type']) | ||||
| 			); | ||||
| 			$res=$db->select( | ||||
| 			$res=$db->selectOne( | ||||
| 				'SELECT * FROM media WHERE idx=?', | ||||
| 				array([(int)$form['vm_iso_image']]) | ||||
| 			);  | ||||
| @@ -1274,7 +1274,7 @@ class ClonOS { | ||||
| 			if($iso_id>0){ | ||||
| 				$db=new Db('base','storage_media'); | ||||
| 				if(!$db->isConnected()) return(false); // TODO: return error | ||||
| 				$res=$db->select('SELECT name,path FROM media WHERE idx= ?', array([$iso_id])); // OK, $iso_id is casted as int above. | ||||
| 				$res=$db->selectOne('SELECT name,path FROM media WHERE idx= ?', array([$iso_id])); // OK, $iso_id is casted as int above. | ||||
| 				if($res===false || empty($res)) $iso=false; | ||||
| 			} | ||||
| 			 | ||||
| @@ -1378,7 +1378,7 @@ class ClonOS { | ||||
| 		if(!$db->isConnected())  return array('error'=>true,'errorMessage'=>'Database error!'); | ||||
|  | ||||
| 		//if($nres['name']!==false) $key_name=$nres['name']; | ||||
| 		$nres=$db->select('SELECT authkey FROM authkey WHERE idx=?', array([$key_id, PDO::PARAM_INT])); | ||||
| 		$nres=$db->selectOne('SELECT authkey FROM authkey WHERE idx=?', array([$key_id, PDO::PARAM_INT])); | ||||
| 		if($nres['authkey']!==false) $authkey=$nres['authkey']; else $authkey=''; | ||||
| 		//var_dump($nres);exit; | ||||
|  | ||||
| @@ -1561,7 +1561,7 @@ class ClonOS { | ||||
| 		if(!$db->isConnected()) return array('error'=>true,'res'=>'Database error'); | ||||
|  | ||||
| 		//$res=$db->update('DELETE FROM media WHERE idx=?', array([$this->form['media_id']])); | ||||
| 		$res=$db->select('SELECT * FROM media WHERE idx=?', array([(int)$this->form['media_id'], PDO::PARAM_INT])); | ||||
| 		$res=$db->selectOne('SELECT * FROM media WHERE idx=?', array([(int)$this->form['media_id'], PDO::PARAM_INT])); | ||||
| 		if($res===false || empty($res)) return array('error'=>true,'res'=>print_r($res,true)); | ||||
|  | ||||
| 		//if($res['jname']=='-')	// если медиа отвязана, то про<D180> | ||||
| @@ -1607,7 +1607,7 @@ class ClonOS { | ||||
| 		$id=str_replace('src','',$id); | ||||
| 		$db=new Db('base','local'); | ||||
| 		if(!$db->isConnected()) return array('error'=>true,'errorMessage'=>'Database error'); | ||||
| 		$res=$db->select("SELECT idx,name,platform,ver,rev,date FROM bsdsrc WHERE ver=?", array([(int)$id, PDO::PARAM_INT])); | ||||
| 		$res=$db->selectOne("SELECT idx,name,platform,ver,rev,date FROM bsdsrc WHERE ver=?", array([(int)$id, PDO::PARAM_INT])); | ||||
|  | ||||
| 		$hres=$this->getTableChunk('srcslist','tbody'); | ||||
| 		if($hres!==false){ | ||||
| @@ -1659,7 +1659,7 @@ class ClonOS { | ||||
| 		$db=new Db('base','local'); | ||||
| 		if(!$db->isConnected()) return array('error'=>true,'errorMessage'=>'Database connect error!'); | ||||
|  | ||||
| 		$base=$db->select("SELECT idx,platform,ver FROM bsdsrc WHERE idx=?", array([$id, PDO::PARAM_INT])); // Casted above as  | ||||
| 		$base=$db->selectOne("SELECT idx,platform,ver FROM bsdsrc WHERE idx=?", array([$id, PDO::PARAM_INT])); // Casted above as  | ||||
| 		$ver=$base['ver']; | ||||
| 		$stable_arr=array('release','stable'); | ||||
| 		$stable_num=strlen(intval($ver))<strlen($ver)?0:1; | ||||
| @@ -1695,7 +1695,7 @@ class ClonOS { | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected()){ | ||||
| 			if($bsdsrc){ | ||||
| 				$res=$db->select("SELECT idx,platform,ver FROM bsdsrc WHERE idx=?", array([(int)$id, PDO::PARAM_INT])); | ||||
| 				$res=$db->selectOne("SELECT idx,platform,ver FROM bsdsrc WHERE idx=?", array([(int)$id, PDO::PARAM_INT])); | ||||
| 				$res['name']='—'; | ||||
| 				$res['arch']='—'; | ||||
| 				$res['targetarch']='—'; | ||||
| @@ -1703,7 +1703,7 @@ class ClonOS { | ||||
| 				$res['elf']='—'; | ||||
| 				$res['date']='—'; | ||||
| 			}else{ | ||||
| 				$res=$db->select("SELECT idx,platform,name,arch,targetarch,ver,stable,elf,date FROM bsdbase WHERE ver=?", array([(int)$id, PDO::PARAM_INT])); | ||||
| 				$res=$db->selectOne("SELECT idx,platform,name,arch,targetarch,ver,stable,elf,date FROM bsdbase WHERE ver=?", array([(int)$id, PDO::PARAM_INT])); | ||||
| 			} | ||||
| 			$hres=$this->getTableChunk('baseslist','tbody'); | ||||
| 			if($hres!==false){ | ||||
| @@ -1979,13 +1979,13 @@ class ClonOS { | ||||
|  | ||||
| 	function runVNC($jname){ | ||||
| 		$query="SELECT vnc_password FROM bhyve WHERE jname=?"; | ||||
| 		$res=$this->_db_local->select($query, array([$jname])); | ||||
| 		$res=$this->_db_local->selectOne($query, array([$jname])); | ||||
|  | ||||
| 		$pass='cbsd'; | ||||
| 		if($res!==false) $pass=$res['vnc_password']; | ||||
| 		 | ||||
| 		$resCBSD::run("vm_vncwss jname=%s permit=%s", array($jname, $this->_client_ip)); | ||||
| 		//$res=$this->_db_local->select("SELECT nodeip FROM local", array()); | ||||
| 		//$res=$this->_db_local->selectOne("SELECT nodeip FROM local", array()); | ||||
| 		//$nodeip=$res['nodeip']; | ||||
| 		// need for IPv4/IPv6 regex here, instead of strlen | ||||
| 		//if(strlen($nodeip)<7) $nodeip='127.0.0.1'; | ||||
| @@ -2216,7 +2216,7 @@ class ClonOS { | ||||
| 			$mhash=$_COOKIE['mhash']; | ||||
| 			if(!preg_match('#^[a-f0-9]{32}$#',$mhash)) return array('error'=>true,'error_message'=>'Bad data'); | ||||
| 			$query1="select user_id from auth_list WHERE sess_id=? limit 1"; | ||||
| 			$res1=$db->select($query1, array([$mhash])); | ||||
| 			$res1=$db->selectOne($query1, array([$mhash])); | ||||
| 			{ | ||||
| 				if($res1['user_id']>0) | ||||
| 				{ | ||||
| @@ -2273,7 +2273,7 @@ class ClonOS { | ||||
| 		if(isset($user_info['username']) && isset($user_info['password'])){ | ||||
| 			$db=new Db('clonos'); | ||||
| 			if($db->isConnected()) { | ||||
| 				$res=$db->select("SELECT username FROM auth_user WHERE username=?", array([$user_info['username']])); | ||||
| 				$res=$db->selectOne("SELECT username FROM auth_user WHERE username=?", array([$user_info['username']])); | ||||
| 				if(!empty($res)){ | ||||
| 					$res['user_exsts']=true; | ||||
| 					return $res; | ||||
| @@ -2318,7 +2318,7 @@ class ClonOS { | ||||
| 			$db=new Db('clonos'); | ||||
| 			if($db->isConnected()){ | ||||
| 				$pass=$this->getPasswordHash($user_info['password']); | ||||
| 				$res=$db->select("SELECT id,username,password FROM auth_user WHERE username=? AND is_active=1", array([$user_info['login']])); | ||||
| 				$res=$db->selectOne("SELECT id,username,password FROM auth_user WHERE username=? AND is_active=1", array([$user_info['login']])); | ||||
| 				if(empty($res) || $res['password'] != $pass){ | ||||
| 					sleep(3); | ||||
| 					return array('errorCode'=>1,'message'=>'user not found!'); | ||||
| @@ -2375,7 +2375,7 @@ class ClonOS { | ||||
| 			if($db->isConnected()){ | ||||
| 				$query="SELECT au.id,au.username FROM auth_user au, auth_list al WHERE al.secure_sess_id=? AND au.id=al.user_id AND au.is_active=1"; | ||||
| 				//echo $query; | ||||
| 				$res=$db->select($query, array([$secure_memory_hash])); | ||||
| 				$res=$db->selectOne($query, array([$secure_memory_hash])); | ||||
| 				//print_r($res); | ||||
| 				if(!empty($res)){ | ||||
| 					$res['error']=false; | ||||
| @@ -2405,7 +2405,7 @@ class ClonOS { | ||||
| 		if(!$db->isConnected()) return array('error'=>true,'error_message'=>'DB connection error!'); | ||||
| 		$user_id=(int)$this->form['user_id']; | ||||
|  | ||||
| 		$res=$db->select("SELECT username,first_name,last_name,is_active AS actuser FROM auth_user WHERE id=?", array([$user_id])); | ||||
| 		$res=$db->selectOne("SELECT username,first_name,last_name,is_active AS actuser FROM auth_user WHERE id=?", array([$user_id])); | ||||
| 		return array( | ||||
| 			'dialog'=>$this->form['dialog'], | ||||
| 			'vars'=>$res, | ||||
| @@ -2419,7 +2419,7 @@ class ClonOS { | ||||
| 		$db=new Db('clonos'); | ||||
| 		if(!$db->isConnected()) return array('DB connection error!'); | ||||
|  | ||||
| 		$res=$db->select("SELECT * FROM auth_user LIMIT 1", array()); // TODO: What?! | ||||
| 		$res=$db->selectOne("SELECT * FROM auth_user", array()); // TODO: What?! | ||||
| 		return $res; | ||||
| 	} | ||||
|  | ||||
| @@ -2455,7 +2455,7 @@ class ClonOS { | ||||
| 		$db=new Db('base','local'); | ||||
| 		if(!$db->isConnected()) return $this->messageError('DB connection error!'); | ||||
|  | ||||
| 		$res=$db->select( | ||||
| 		$res=$db->selectOne( | ||||
| 			"select name,description,pkg_vm_ram,pkg_vm_disk,pkg_vm_cpus from vmpackages where id=?", | ||||
| 			array([$tpl_id, PDO::PARAM_INT]) | ||||
| 		); | ||||
| @@ -2567,7 +2567,7 @@ class ClonOS { | ||||
| 		$name_comment=''; | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected()){ | ||||
| 			$jail=$db->select("SELECT jname FROM jails WHERE jname=?", array([$jname])); | ||||
| 			$jail=$db->selectOne("SELECT jname FROM jails WHERE jname=?", array([$jname])); | ||||
|  | ||||
| 			if($jname==$jail['jname']){ | ||||
| 				$jres=$this->ccmd_getFreeJname(false,$type); | ||||
| @@ -2670,7 +2670,7 @@ class ClonOS { | ||||
| 			  FROM jails WHERE jname=?"; | ||||
| 		$db=new Db('base','local'); | ||||
| 		if($db->isConnected()){ | ||||
| 			$quer=$db->select($sql, array([$jail_name])); | ||||
| 			$quer=$db->selectOne($sql, array([$jail_name])); | ||||
| 			$html='<table class="summary_table">'; | ||||
|  | ||||
| 			foreach($quer as $q=>$k){ | ||||
| @@ -2711,7 +2711,7 @@ class ClonOS { | ||||
| 				bhyve_wire_memory, bhyve_rts_keeps_utc, bhyve_force_msi_irq, bhyve_x2apic_mode, | ||||
| 				bhyve_mptable_gen, bhyve_ignore_msr_acc, bhyve_vnc_vgaconf text, media_auto_eject, | ||||
| 				vm_cpu_topology, debug_engine, xhci, cd_boot_firmware, jailed FROM settings"; | ||||
| 			$quer=$db->select($sql, array()); | ||||
| 			$quer=$db->selectOne($sql, array()); | ||||
| 			$html='<table class="summary_table">'; | ||||
|  | ||||
| 			foreach($quer as $q=>$k){ | ||||
|   | ||||
							
								
								
									
										12
									
								
								php/db.php
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								php/db.php
									
									
									
									
									
								
							| @@ -130,7 +130,7 @@ class Db { | ||||
|  | ||||
| 	# TODO once tested $values can have a default value of an empty array | ||||
| 	# TODO both selects were assoc | ||||
| 	function select($sql, $values){ | ||||
| 	function select($sql, $values, $single = false){ | ||||
| 		try { | ||||
| 			$query = $this->_pdo->prepare($sql); | ||||
| 			$i = 1; | ||||
| @@ -143,7 +143,11 @@ class Db { | ||||
| 				$i++; | ||||
| 			} | ||||
| 			$query->execute(); | ||||
| 			$res = $query->fetchAll(PDO::FETCH_ASSOC); | ||||
| 			if ($single){ | ||||
| 				$res = $query->fetch(PDO::FETCH_ASSOC); | ||||
| 			} else { | ||||
| 				$res = $query->fetchAll(PDO::FETCH_ASSOC); | ||||
| 			} | ||||
| 			return $res; | ||||
| 		} catch(PDOException $e) { | ||||
| 			# TODO: Handling ? | ||||
| @@ -151,6 +155,10 @@ class Db { | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	function selectOne($sql, $values){ | ||||
| 		return $this->select($sql, $values, true); | ||||
| 	} | ||||
|  | ||||
| 	function insert($sql, $values){ | ||||
| 		try { | ||||
| 			$query = $this->_pdo->prepare($sql); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Momchil Bozhinov
					Momchil Bozhinov