First Commit

This commit is contained in:
marco
2026-09-01 07:49:48 -03:00
commit 28b1044038
399 changed files with 41659 additions and 0 deletions
+81
View File
@@ -0,0 +1,81 @@
<?php
namespace App\Http\Controllers;
use App\Models\UserConsent;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LegalController extends Controller
{
public function terms()
{
$currentVersion = config('legal.terms_version', '1.0.0');
return view('legal.terms', compact('currentVersion'));
}
public function privacy()
{
$currentVersion = config('legal.privacy_version', '1.0.0');
return view('legal.privacy', compact('currentVersion'));
}
public function cookies()
{
$currentVersion = config('legal.cookie_version', '1.0.0');
return view('legal.cookies', compact('currentVersion'));
}
public function accept(Request $request)
{
$request->validate([
'terms_version' => 'required|string',
'privacy_version' => 'required|string',
'cookie_version' => 'required|string',
]);
$user = Auth::user();
UserConsent::create([
'user_id' => $user->id,
'terms_version' => $request->terms_version,
'privacy_version' => $request->privacy_version,
'cookie_version' => $request->cookie_version,
'accepted_at' => now(),
'ip_address' => $request->ip(),
'user_agent' => $request->userAgent(),
]);
return redirect()->intended('/dashboard')->with('success', __('legal.accepted_successfully'));
}
public function history()
{
$user = Auth::user();
$consents = $user->consents()->orderByDesc('accepted_at')->paginate(20);
return view('legal.history', compact('consents'));
}
public function acceptCookieBanner(Request $request)
{
$request->validate([
'terms_version' => 'required|string',
'privacy_version' => 'required|string',
'cookie_version' => 'required|string',
]);
$user = Auth::user();
UserConsent::create([
'user_id' => $user->id,
'terms_version' => $request->terms_version,
'privacy_version' => $request->privacy_version,
'cookie_version' => $request->cookie_version,
'accepted_at' => now(),
'ip_address' => $request->ip(),
'user_agent' => $request->userAgent(),
]);
return response()->json(['success' => true]);
}
}