$dms]); } public function add(Request $request) { return view('domain-names.add'); } public function edit(Request $request) { $dm_id = $request->id; $dm = DomainNames::findOrFail($dm_id); return view('domain-names.edit', ['dm' => $dm]); } public function update(Request $request) { $dm_id = $request->id; $dm = DomainNames::findOrFail($dm_id); $this->makeChanges($request, $dm); return redirect()->route('domain-names.edit', ['id' => $dm->id])->with('status', 'Sauvegardé !'); } public function store(Request $request) { $dm = new DomainNames(); $this->makeChanges($request, $dm); return redirect()->route('domain-names.edit', ['id' => $dm->id])->with('status', 'Sauvegardé !'); } public function delete(Request $request) { $dm_id = $request->id; $dm = DomainNames::findOrFail($dm_id); $isUsed = EmailAddresses::where('domain_name_id', '=', $dm->id)->get(); if ($isUsed->count() === 0) $isUsed = false; return view('domain-names.delete', ['dm' => $dm, 'isUsed' => $isUsed]); } public function forceDelete(Request $request) { $dm_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) { $dm = DomainNames::findOrFail($dm_id); $dm->delete(); return redirect()->route('domain-names.index')->with('status', 'Nom de domaine supprimé !'); } else { return redirect()->route('domain-names.edit', ['id' => $dm_id])->with('error', 'Code de vérification invalide.'); } } private function makeChanges($request, $dm) { $ascii_name = $request->ascii_name; $utf8_name = $request->utf8_name; $exp_date = $request->expiration_date; $renew = $request->renew; $related_brand = $request->related_brand; $redirect_dns = $request->redirect_dns; $certificats = $request->certificats; $comment = $request->comment; $dm->ascii_name = $ascii_name; $dm->utf8_name = $utf8_name; $dm->expiration_date = $exp_date; $dm->renew = $renew; $dm->related_brand = $related_brand; $dm->redirect_dns = $redirect_dns; $dm->certificats = $certificats; $dm->comment = $comment; $dm->save(); } }