Merge branch '25-add-ssl-for-alias-domains-automatically' into develop
# Conflicts: # public/js/app.js
This commit is contained in:
@@ -6,7 +6,6 @@ use App\Http\Requests\SiteAliasRequest;
|
||||
use App\Http\Resources\SiteAliasResource;
|
||||
use App\Jobs\Aliases\CreateAlias;
|
||||
use App\Jobs\Aliases\DeleteAlias;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SiteAliasController extends Controller
|
||||
{
|
||||
@@ -26,7 +25,7 @@ class SiteAliasController extends Controller
|
||||
|
||||
$site->addAlias($request->input('domain'));
|
||||
|
||||
dispatch(new CreateAlias($site, $request->input('domain')));
|
||||
dispatch(new CreateAlias($site, $request->input('domain'), $request->boolean('request_new_certificate')));
|
||||
|
||||
return redirect()->route('sites.aliases.index', $id)->with('success', __('Alias has been created'));
|
||||
}
|
||||
|
||||
@@ -19,6 +19,9 @@ class SiteAliasRequest extends FormRequest
|
||||
'required',
|
||||
'string',
|
||||
new Hostname,
|
||||
],
|
||||
'request_new_certificate' => [
|
||||
'required',
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
|
||||
namespace App\Jobs\Aliases;
|
||||
|
||||
use App\Jobs\Certificates\CreateCertificate;
|
||||
use App\Jobs\Certificates\DeleteCertificate;
|
||||
use App\Models\Certificate;
|
||||
use App\Models\Site;
|
||||
use App\Traits\HasPloi;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldBeUnique;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
@@ -15,14 +17,11 @@ class CreateAlias implements ShouldQueue
|
||||
{
|
||||
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels, HasPloi;
|
||||
|
||||
public Site $site;
|
||||
public string $alias;
|
||||
|
||||
public function __construct(Site $site, $alias)
|
||||
{
|
||||
$this->site = $site;
|
||||
$this->alias = $alias;
|
||||
}
|
||||
public function __construct(
|
||||
public Site $site,
|
||||
public string $alias,
|
||||
public bool $requestNewCertificate = false,
|
||||
) {}
|
||||
|
||||
public function handle()
|
||||
{
|
||||
@@ -31,6 +30,35 @@ class CreateAlias implements ShouldQueue
|
||||
->sites($this->site->ploi_id)
|
||||
->aliases()
|
||||
->create([$this->alias]);
|
||||
|
||||
if ($this->requestNewCertificate) {
|
||||
$currentCertificate = $this
|
||||
->site
|
||||
->certificates()
|
||||
->whereIn('status', [Certificate::STATUS_ACTIVE, Certificate::STATUS_BUSY])
|
||||
->latest()
|
||||
->first();
|
||||
|
||||
if (! $currentCertificate) {
|
||||
return;
|
||||
}
|
||||
|
||||
dispatch(new DeleteCertificate($this->site->server->ploi_id, $this->site->ploi_id, $currentCertificate->ploi_id));
|
||||
|
||||
$newCertificate = $this->site->certificates()->create([
|
||||
'domain' => $currentCertificate->domain . ',' . $this->alias,
|
||||
'type' => $currentCertificate->type,
|
||||
'certificate' => $currentCertificate->certificate,
|
||||
'private' => $currentCertificate->private
|
||||
]);
|
||||
|
||||
$currentCertificate->delete();
|
||||
|
||||
$newCertificate->server_id = $this->site->server_id;
|
||||
$newCertificate->save();
|
||||
|
||||
dispatch(new CreateCertificate($newCertificate))->delay(now()->addSeconds(5));
|
||||
}
|
||||
}
|
||||
|
||||
public function failed()
|
||||
|
||||
Reference in New Issue
Block a user