dir = $dir; } public function getLatestVersion() { $name = \Config::get('app.name'); //serial key should be encrypted data $serial_key = Utility::encryptByFaveoPublicKey('O5Y647RJF8QHLDOE'); //order number should be encrypted data $order_number = Utility::encryptByFaveoPublicKey('23540755'); $url = url('/'); //dd($url); $post_data = [ 'serial_key' => $serial_key, 'order_number' => $order_number, 'name' => $name, 'version' => Utility::getFileVersion(), 'request_type' => 'check_update', 'url' => $url, ]; $url = 'http://www.faveohelpdesk.com/billing/verification'; if (str_contains($url, ' ')) { $url = str_replace(' ', '%20', $url); } $curl = $this->postCurl($url, $post_data); //dd($curl); if (is_array($curl)) { if (array_key_exists('status', $curl)) { if ($curl['status'] == 'success') { if (array_key_exists('version', $curl)) { return $curl['version']; } } } } } public function downloadLatestCode() { $name = \Config::get('app.name'); $url = 'http://www.faveohelpdesk.com/billing/download-url'; if (str_contains($url, ' ')) { $url = str_replace(' ', '%20', $url); } $data = [ 'name' => $name, ]; $download = $this->postCurl($url, $data); $url = $download['zipball_url']; return $url; } public function saveLatestCodeAtTemp($download_url) { echo '
Downloading New Update
'; $context = stream_context_create( [ 'http' => [ 'header' => 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36', ], ] ); $newUpdate = file_get_contents($download_url, false, $context); if (!is_dir("$this->dir/UPDATES/")) { \File::makeDirectory($this->dir.'/UPDATES/', 0777); } $dlHandler = fopen($this->dir.'/UPDATES/'.'/faveo-helpdesk-master.zip', 'w'); if (!fwrite($dlHandler, $newUpdate)) { echo 'Could not save new update. Operation aborted.
'; exit(); } fclose($dlHandler); echo 'Update Downloaded And Saved
'; } public function doUpdate() { Artisan::call('down'); $update = $this->dir.'/UPDATES'; //Open The File And Do Stuff $zipHandle = zip_open($update.'/faveo-helpdesk-master.zip'); //dd($update . '/faveo-' . $aV . '.zip'); echo '»
'; } \File::deleteDirectory($directory); $this->deleteBarNotification('new-version'); echo '» Faveo Updated to v'.Utility::getFileVersion().'
'; } public function deleteBarNotification($key) { try { $noti = new BarNotification(); $notifications = $noti->where('key', $key)->get(); foreach ($notifications as $notify) { $notify->delete(); } } catch (Exception $ex) { throw new Exception($ex->getMessage()); } } public function fileUpdate() { try { if (Utility::getFileVersion() < Utility::getDatabaseVersion()) { $url = url('file-upgrade'); //$string = "Your Database is outdated please upgrade Now !"; return view('themes.default1.update.file', compact('url')); } else { return redirect()->back(); } } catch (Exception $ex) { return redirect()->back()->with('fails',$ex->getMessage()); } } public function fileUpgrading(Request $request) { try { if (Utility::getFileVersion() < Utility::getDatabaseVersion()) { $latest_version = $this->getLatestVersion(); //dd($latest_version); $current_version = Utility::getFileVersion(); if ($latest_version != '') { $_this = new self(); return view('themes.default1.update.test', compact('latest_version', 'current_version', 'request')); } else { return redirect()->back()->with('fails', 'Could not find latest realeases from repository.'); } } else { return redirect()->back(); } } catch (Exception $ex) { return redirect()->back()->with('fails',$ex->getMessage()); } } public function testScroll() { $ex = 1000; echo 'CURRENT VERSION: $current_version
"; echo 'Reading Current Releases List
'; if ($latest_version > $current_version) { echo 'New Update Found: v'.$latest_version.'
'; $found = true; if (!is_file("$this->dir/UPDATES/faveo-helpdesk-master.zip")) { if ($request->get('dodownload') == true) { $download_url = $this->downloadLatestCode(); if ($download_url != null) { $this->saveLatestCodeAtTemp($download_url); } else { echo 'Error in you network connection.
'; } } else { echo 'Latest code found. » Download Now?
'; exit(); } } else { echo 'Update already downloaded.
'; } if ($request->get('doUpdate') == true) { $updated = $this->doUpdate(); } else { echo 'Update ready. » Install Now?
'; exit(); } if ($updated == true) { $this->copyToActualDirectory($latest_version); } elseif ($found != true) { echo '» No update is available.
'; } } else { echo 'Could not find latest realeases.
'; } } else { echo 'Could not find latest realeases from repository.
'; } } else { return redirect()->back(); } } public function getCurl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //curl_setopt($ch, CURLOPT_BINARYTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); if (curl_exec($ch) === false) { echo 'Curl error: '.curl_error($ch); } $data = curl_exec($ch); dd($data); curl_close($ch); return $data; } public function postCurl($url, $data) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_URL, $url); if (curl_exec($ch) === false) { echo 'Curl error: '.curl_error($ch); } $data = curl_exec($ch); curl_close($ch); return json_decode($data, true); } public function databaseUpdate() { try { if (Utility::getFileVersion() > Utility::getDatabaseVersion()) { $url = url('database-upgrade'); //$string = "Your Database is outdated please upgrade Now !"; return view('themes.default1.update.database', compact('url')); } else { return redirect()->back(); } } catch (Exception $ex) { return redirect()->back()->with('fails',$ex->getMessage()); } } public function databaseUpgrade() { try { if (Utility::getFileVersion() > Utility::getDatabaseVersion()) { Artisan::call('migrate', ['--force' => true]); return redirect('dashboard')->with('success', 'Database updated'); } else { return redirect()->back(); } } catch (Exception $ex) { return redirect()->back()->with('fails',$ex->getMessage()); } } }