ok
Direktori : /home2/selectio/public_html/fms-worksuite/app/Http/Controllers/ |
Current File : /home2/selectio/public_html/fms-worksuite/app/Http/Controllers/GdprController.php |
<?php namespace App\Http\Controllers; use App\Helper\Files; use App\Helper\Reply; use App\Models\GdprSetting; use App\Models\PurposeConsent; use App\Models\PurposeConsentUser; use App\Models\User; use Illuminate\Http\Request; class GdprController extends AccountBaseController { public function __construct() { parent::__construct(); $this->pageTitle = 'app.menu.gdpr'; $this->gdprSetting = GdprSetting::first(); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $this->view = 'gdpr.ajax.right-to-informed'; $this->user = User::findOrFail($this->user->id); $this->consents = PurposeConsent::with(['user' => function($query) { $query->where('client_id', $this->user->id) ->orderBy('created_at', 'desc'); }])->get(); $tab = request('tab'); $this->view = match ($tab) { 'right-to-erasure' => 'gdpr.ajax.right-to-erasure', 'right-to-data-portability' => 'gdpr.ajax.right-to-data-portability', 'right-to-access' => 'gdpr.ajax.right-to-access', 'consent' => 'gdpr.ajax.consent', default => 'gdpr.ajax.right-to-informed', }; $this->activeTab = $tab ?: 'right-to-informed'; if (request()->ajax()) { $html = view($this->view, $this->data)->render(); return Reply::dataOnly(['status' => 'success', 'html' => $html, 'title' => $this->pageTitle, 'activeTab' => $this->activeTab]); } return view('gdpr.index', $this->data); } public function updateClientConsent(Request $request) { $allConsents = $request->has('consent_customer') ? $request->consent_customer : []; foreach ($allConsents as $allConsentId => $allConsentStatus) { $newConsentLead = new PurposeConsentUser(); $newConsentLead->client_id = $this->user->id; $newConsentLead->updated_by_id = $this->user->id; $newConsentLead->purpose_consent_id = $allConsentId; $newConsentLead->status = $allConsentStatus; $newConsentLead->ip = $request->ip(); $newConsentLead->save(); } return Reply::success(__('messages.gdprUpdated')); } public function downloadJson(Request $request) { $table = User::with('clientDetails', 'attendance', 'employee', 'employeeDetail', 'projects', 'member', 'group')->findOrFail(user()->id); $filename = Files::UPLOAD_FOLDER.'/user.json'; $handle = fopen($filename, 'w+'); fputs($handle, $table->toJson(JSON_PRETTY_PRINT)); fclose($handle); $headers = array('Content-type' => 'application/json'); return response()->download($filename, 'user.json', $headers); } }