$dpccs]); } public function add(Request $request) { return view('dpccs.add'); } public function edit(Request $request) { $dpcc_id = $request->id; $dpcc = DatastorePcc::findOrFail($dpcc_id); return view('dpccs.edit', ['dpcc' => $dpcc]); } public function update(Request $request) { $dpcc_id = $request->id; $dpcc = DatastorePcc::findOrFail($dpcc_id); $this->makeChanges($request, $dpcc); return redirect()->route('dpccs.edit', ['id' => $dpcc->id])->with('status', 'Sauvegardé !'); } public function store(Request $request) { $dpcc = new DatastorePcc(); $this->makeChanges($request, $dpcc); return redirect()->route('dpccs.edit', ['id' => $dpcc->id])->with('status', 'Sauvegardé !'); } public function delete(Request $request) { $dpcc_id = $request->id; $dpcc = DatastorePcc::findOrFail($dpcc_id); $isUsed = Servers::where('datastore_pcc_id', '=', $dpcc->id)->get(); if ($isUsed->count() === 0) $isUsed = false; return view('dpccs.delete', ['dpcc' => $dpcc, 'isUsed' => $isUsed]); } public function forceDelete(Request $request) { $dpcc_id = $request->id; $otp = $request->otp; $lastCode = (new Totp())->GenerateToken(Base32::decode(Auth::user()->totp_secret), Carbon::now()->subSeconds(30)->timestamp); $code = (new Totp())->GenerateToken(Base32::decode(Auth::user()->totp_secret)); if ($otp === $code || $otp === $lastCode) { $dpcc = DatastorePcc::findOrFail($dpcc_id); $dpcc->delete(); return redirect()->route('dpccs.index')->with('status', 'Datastore PCC supprimé !'); }else{ return redirect()->route('dpccs.edit', ['id' => $dpcc_id])->with('error', 'Code de vérification invalide.'); } } private function makeChanges($request, $dpcc) { $title = $request->title; $comment = $request->comment; $dpcc->title = $title; $dpcc->comment = $comment; $dpcc->save(); } }