42 lines
1.3 KiB
PHP
42 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Modules\Platform\app\Http\Controllers;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use Modules\Company\Models\Company;
|
|
use Modules\Platform\app\Models\LicenseKey;
|
|
|
|
class LicenseKeyController extends Controller
|
|
{
|
|
/**
|
|
* Display licence keys.
|
|
*/
|
|
public function index()
|
|
{
|
|
return view('platform::licenses.index', [
|
|
'companies' => Company::orderBy('name')->get(),
|
|
'licenses' => LicenseKey::with('company')->latest()->paginate(20),
|
|
'plainKey' => session('plain_license_key'),
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Issue a new licence key.
|
|
*/
|
|
public function store(Request $request)
|
|
{
|
|
$data = $request->validate([
|
|
'company_id' => ['required', 'exists:companies,id'],
|
|
'label' => ['required', 'string', 'max:255'],
|
|
'plan' => ['required', 'in:standard,professional,enterprise'],
|
|
'max_users' => ['required', 'integer', 'min:1', 'max:10000'],
|
|
]);
|
|
|
|
$company = Company::findOrFail($data['company_id']);
|
|
$plainKey = LicenseKey::issueFor($company, $data['label'], $data['plan'], (int) $data['max_users']);
|
|
|
|
return back()->with('plain_license_key', $plainKey)->with('status', 'Licence key issued. Copy it now.');
|
|
}
|
|
}
|