198 lines
6.6 KiB
PHP
198 lines
6.6 KiB
PHP
<?php
|
|
namespace App\Services\SyS;
|
|
|
|
use Request;
|
|
use App\Models\UserShop;
|
|
use App\Http\Controllers\Api\KasController;
|
|
use App\Http\Controllers\Api\KasSLLController;
|
|
|
|
class DomainSSL
|
|
{
|
|
|
|
public static function show()
|
|
{
|
|
$user_shops = UserShop::limit(1000)->get();
|
|
$text = "";
|
|
|
|
$kas = new KasController();
|
|
//$domain = 'mivita.care';
|
|
// $ssl = KasSLLController::getApiSSLParameter();
|
|
$SubDomains = [];
|
|
|
|
$get_subdomains = $kas->action('get_subdomains');
|
|
foreach ($get_subdomains as $subdomain){
|
|
if(isset($subdomain['subdomain_name'])){
|
|
if(strpos($subdomain['subdomain_name'], 'www.') !== false){
|
|
continue;
|
|
}
|
|
if(strpos($subdomain['subdomain_name'], 'api.') !== false){
|
|
continue;
|
|
}
|
|
if(strpos($subdomain['subdomain_name'], 'checkout.') !== false){
|
|
continue;
|
|
}
|
|
$SubDomains[$subdomain['subdomain_name']] =
|
|
[
|
|
'ssl_certificate_sni' => $subdomain['ssl_certificate_sni'],
|
|
'php_version' => $subdomain['php_version'],
|
|
];
|
|
|
|
}else{
|
|
@dump($subdomain);
|
|
}
|
|
|
|
|
|
/* if($subdomain['ssl_certificate_sni'] !== "Y"){
|
|
$pra = array(
|
|
'hostname' => $subdomain['subdomain_name'],
|
|
);
|
|
$pra = array_merge($pra, $ssl);
|
|
$value = $kas->action('update_ssl', $pra);
|
|
$text .= $value;
|
|
}else{
|
|
if(isset($subdomain['ssl_certificate_sni_is_active'])){
|
|
$text .= $subdomain['ssl_certificate_sni_is_active'].'-is_active';
|
|
}else{
|
|
$text .= '-CHECK!';
|
|
|
|
}
|
|
}*/
|
|
|
|
//$text .= "\n";
|
|
}
|
|
|
|
$dobbleDomains = [];
|
|
|
|
foreach($user_shops as $user_shop){
|
|
$user_shop->hasSubdomain = false;
|
|
$user_shop->hasSSL = false;
|
|
$user_shop->PHPversion = "";
|
|
if(array_key_exists($user_shop->slug.'.mivita.care', $SubDomains)){
|
|
$user_shop->hasSubdomain = true;
|
|
$user_shop->hasSSL = $SubDomains[$user_shop->slug.'.mivita.care']['ssl_certificate_sni'] === 'Y' ? true : false;
|
|
$user_shop->PHPversion = $SubDomains[$user_shop->slug.'.mivita.care']['php_version'];
|
|
unset($SubDomains[$user_shop->slug.'.mivita.care']);
|
|
}
|
|
$dobbleDomains[$user_shop->user_id][$user_shop->id] = $user_shop->slug.'.mivita.care';
|
|
}
|
|
foreach($dobbleDomains as $key => $dobbleDomain){
|
|
if(count($dobbleDomain) === 1){
|
|
unset($dobbleDomains[$key]);
|
|
}
|
|
}
|
|
$data = [
|
|
'values' => $user_shops,
|
|
'text' => $text,
|
|
'SubDomains' => $SubDomains,
|
|
'dobbleDomains' => $dobbleDomains,
|
|
|
|
];
|
|
|
|
return view('sys.tools.domain-ssl', $data);
|
|
}
|
|
|
|
|
|
public static function store()
|
|
{
|
|
$data = Request::all();
|
|
if(isset($data['delete_sub_kas'])){
|
|
$kas = new KasController();
|
|
$pra = array(
|
|
'subdomain_name' => $data['delete_sub_kas'],
|
|
);
|
|
$value = $kas->action('delete_subdomain', $pra);
|
|
\Session()->flash('alert-success', 'subdomain: '.$value.' gelöscht');
|
|
|
|
}
|
|
if(isset($data['delete_user_shop'])){
|
|
$user_shop = UserShop::findOrFail($data['delete_user_shop']);
|
|
$subdomain_name = $user_shop->slug.'.mivita.care';
|
|
$user_shop->name = "delete".$user_shop->id;
|
|
$user_shop->slug = "delete".$user_shop->id;
|
|
$user_shop->save();
|
|
$user_shop->delete();
|
|
$kas = new KasController();
|
|
$pra = array(
|
|
'subdomain_name' => $subdomain_name,
|
|
);
|
|
$value = $kas->action('delete_subdomain', $pra);
|
|
\Session()->flash('alert-success', 'shop/subdomain: '.$value.' gelöscht');
|
|
|
|
}
|
|
|
|
if(isset($data['update_ssl'])){
|
|
|
|
//prüfen ob subdomain existiert
|
|
$user_shop = UserShop::findOrFail($data['update_ssl']);
|
|
$subdomain_name = $user_shop->slug.'.mivita.care';
|
|
|
|
$kas = new KasController();
|
|
$subdomain = $kas->action('get_subdomains', ['subdomain_name' => $subdomain_name]);
|
|
if(!isset($subdomain[0]['subdomain_name'])){ //not found
|
|
self::makeNewSubDomain($user_shop->slug);
|
|
\Session()->flash('alert-danger', 'subdomain: '.$subdomain_name.' nicht gefunden');
|
|
return back();
|
|
}else{
|
|
self::updateSubDomain($subdomain_name);
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
return back();
|
|
}
|
|
|
|
private static function updateSubDomain($subdomain_name){
|
|
|
|
$kas = new KasController();
|
|
$ssl = KasSLLController::getApiSSLParameter();
|
|
$pra = array(
|
|
'hostname' => $subdomain_name
|
|
);
|
|
$pra = array_merge($pra, $ssl);
|
|
$value = $kas->action('update_ssl', $pra);
|
|
\Session()->flash('alert-success', 'update SSL: '.$value.'');
|
|
return $value;
|
|
}
|
|
|
|
private static function makeNewSubDomain($slug){
|
|
|
|
$kas = new KasController();
|
|
$domain = 'mivita.care';
|
|
|
|
//check if exisist
|
|
$subdomains = $kas->action('get_subdomains');
|
|
foreach ($subdomains as $subdomain){
|
|
if(!isset($subdomain['subdomain_name'])){
|
|
continue;
|
|
}
|
|
$sub = str_replace(".".$domain, '', $subdomain['subdomain_name']);
|
|
if($sub == $slug){
|
|
\Session()->flash('alert-danger', __('shop.error_subdomain_exists'));
|
|
return;
|
|
}
|
|
}
|
|
|
|
//add
|
|
$full_subdomain_name = $slug.".".$domain;
|
|
$pra = array(
|
|
'subdomain_name' => $slug,
|
|
'domain_name' => $domain,
|
|
'subdomain_path' => '/mein.mivita.care/public/',
|
|
'php_version' => config('app.php_version'),
|
|
//'ssl_proxy' => 'Y',
|
|
//'redirect_status' => 0
|
|
);
|
|
$add_subdomain = $kas->action('add_subdomain', $pra);
|
|
if($add_subdomain == $full_subdomain_name){
|
|
\Session()->flash('alert-success', 'Add Subdomain: '.$add_subdomain.'');
|
|
return $add_subdomain;
|
|
}
|
|
\Session()->flash('alert-danger', 'Fehler: '.$add_subdomain.'');
|
|
return $add_subdomain;
|
|
|
|
|
|
}
|
|
}
|