30 lines
967 B
PHP
30 lines
967 B
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Models\LicenseProduct;
|
|
use App\Services\Licensing\LicenseIssuer;
|
|
use Illuminate\Console\Command;
|
|
|
|
class RsyncStudioLicenseIssue extends Command
|
|
{
|
|
protected $signature = 'rsync-studio:license:issue {product} {--name=} {--email=}';
|
|
|
|
protected $description = 'Issue a manual Rsync Studio licence key';
|
|
|
|
public function handle(LicenseIssuer $issuer): int
|
|
{
|
|
$p = LicenseProduct::where('code', $this->argument('product'))->firstOrFail();
|
|
[$l,$key] = $issuer->issue($p, $this->option('name') ?: null, $this->option('email') ?: null);
|
|
if (! $key) {
|
|
$this->warn('Licence already existed; plaintext key is intentionally not recoverable.');
|
|
|
|
return self::FAILURE;
|
|
} $this->line('Licence ID: '.$l->id);
|
|
$this->line('Licence key: '.$key);
|
|
$this->warn('This is the only time the plaintext key is shown.');
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|