33 lines
838 B
PHP
33 lines
838 B
PHP
<?php
|
|||
|
|
|
||
|
|
namespace App\Http\Controllers;
|
||
|
|
|
||
|
|
use App\Models\ApiKey;
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use Illuminate\Support\Facades\Gate;
|
||
|
|
|
||
|
|
class ApiKeyController extends Controller
|
||
|
|
{
|
||
|
|
public function index()
|
||
|
|
{
|
||
|
|
$keys = auth()->user()->apiKeys()->latest()->get();
|
||
|
|
return view('settings.api-keys', compact('keys'));
|
||
|
|
}
|
||
|
|
|
||
|
|
public function store(Request $request)
|
||
|
|
{
|
||
|
|
$request->validate(['name' => 'required|string|max:50']);
|
||
|
|
|
||
|
|
$apiKey = ApiKey::generate(auth()->user(), $request->name);
|
||
|
|
|
||
|
|
return redirect()->route('settings.api-keys')->with('new_api_key', $apiKey->key);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function destroy(ApiKey $apiKey)
|
||
|
|
{
|
||
|
|
Gate::authorize('delete', $apiKey);
|
||
|
|
$apiKey->delete();
|
||
|
|
return redirect()->route('settings.api-keys')->with('success', 'API key deleted.');
|
||
|
|
}
|
||
|
|
}
|