get(); return view('projects.index', ['projects' => $projects]); } public function WpAutoLogin(Request $request) { $url = $request->url; $login = $request->login; $pwd = $request->pwd; return view('projects.wp-auto-login', ['url' => $url, 'login' => $login, 'pwd' => $pwd]); } public function add(Request $request) { $dev_db_server = Servers::where([ ['env', 'DEV'], ['type', 'DB'] ])->get(); $dev_web_server = Servers::where([ ['env', 'DEV'], ['type', 'WEB'] ])->get(); $prod_db_server = Servers::where([ ['env', 'PROD'], ['type', 'DB'] ])->get(); $prod_web_server = Servers::where([ ['env', 'PROD'], ['type', 'WEB'] ])->get(); return view('projects.add', ['dev_db_server' => $dev_db_server, 'dev_web_server' => $dev_web_server, 'prod_db_server' => $prod_db_server, 'prod_web_server' => $prod_web_server]); } public function edit(Request $request) { $uuid = $request->uuid; $project = Projects::where('uuid', '=', $uuid)->first(); if (!$project) abort(404); $dev_db_server = Servers::where([ ['env', 'DEV'], ['type', 'DB'] ])->get(); $dev_web_server = Servers::where([ ['env', 'DEV'], ['type', 'WEB'] ])->get(); $prod_db_server = Servers::where([ ['env', 'PROD'], ['type', 'DB'] ])->get(); $prod_web_server = Servers::where([ ['env', 'PROD'], ['type', 'WEB'] ])->get(); return view('projects.edit', ['project' => $project, 'dev_db_server' => $dev_db_server, 'dev_web_server' => $dev_web_server, 'prod_db_server' => $prod_db_server, 'prod_web_server' => $prod_web_server]); } public function update(UpdateProjects $request) { $uuid = $request->uuid; $project = Projects::where('uuid', '=', $uuid)->first(); if (!$project) abort(404); $this->makeChanges($request, $project); return redirect()->route('projects.edit', ['uuid' => $project->uuid])->with('status', 'Sauvegardé !'); } public function store(StoreProjects $request) { $project = new Projects(); $project->uuid = Uuid::uuid4(); $this->makeChanges($request, $project); return redirect()->route('projects.edit', ['uuid' => $project->uuid])->with('status', 'Sauvegardé !'); } public function delete(Request $request) { $uuid = $request->uuid; $project = Projects::where('uuid', '=', $uuid)->first(); if (!$project) abort(404); return view('projects.delete', ['project' => $project]); } public function forceDelete(Request $request) { $uuid = $request->uuid; $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) { $project = Projects::where('uuid', '=', $uuid)->first(); if (!$project) abort(404); $project->delete(); return redirect()->route('projects.index')->with('status', 'Projet supprimé !'); } else { return redirect()->route('projects.edit', ['uuid' => $uuid])->with('error', 'Code de vérification invalide.'); } } private function makeChanges(Request $request, $project) { $name = $request->name; $display_name = $request->display_name; $php = $request->php; $type = $request->type; $https = $request->https; $prod_haproxy_id = $request->prod_haproxy_id; $dev_haproxy_id = $request->dev_haproxy_id; $prod_url = $request->prod_url; $dev_url = $request->dev_url; $prod_document_root = $request->prod_document_root; $dev_document_root = $request->dev_document_root; $prod_unix_user = $request->prod_unix_user; $dev_unix_user = $request->dev_unix_user; $prod_unix_pwd = $request->prod_unix_pwd; $dev_unix_pwd = $request->dev_unix_pwd; $prod_db_user = $request->prod_db_user; $dev_db_user = $request->dev_db_user; $prod_db_pwd = $request->prod_db_pwd; $dev_db_pwd = $request->dev_db_pwd; $prod_db_schema = $request->prod_db_schema; $dev_db_schema = $request->dev_db_schema; $prod_db_server_id = $request->prod_db_server_id; $dev_db_server_id = $request->dev_db_server_id; $prod_web_server_id = $request->prod_web_server_id; $dev_web_server_id = $request->dev_web_server_id; $prod_comment = $request->prod_comment; $dev_comment = $request->dev_comment; $prod_eai = $request->prod_eai; $dev_eai = $request->dev_eai; $prod_whitelist_fw = $request->prod_whitelist_fw; $dev_whitelist_fw = $request->dev_whitelist_fw; $dev_htaccess_user = $request->dev_htaccess_user; $dev_htaccess_pwd = $request->dev_htaccess_pwd; $prod_ga_id = $request->prod_ga_id; $prod_laravel_app_key = $request->prod_laravel_app_key; $dev_laravel_app_key = $request->dev_laravel_app_key; $prod_smtp_config = $request->prod_smtp_config; $prod_smtp_key = $request->prod_smtp_key; if (Auth::user()->role === 1) { $prod_login = $request->prod_login; $dev_login = $request->dev_login; $prod_bo_url = $request->prod_bo_url; $dev_bo_url = $request->dev_bo_url; } $project->name = $name; $project->display_name = $display_name; $project->php = $php; $project->type = $type; $project->https = $https; $project->prod_haproxy_id = $prod_haproxy_id; $project->dev_haproxy_id = $dev_haproxy_id; $project->prod_url = $prod_url; $project->dev_url = $dev_url; $project->prod_document_root = $prod_document_root; $project->dev_document_root = $dev_document_root; $project->prod_unix_user = $prod_unix_user; $project->dev_unix_user = $dev_unix_user; $project->prod_unix_pwd = $prod_unix_pwd; $project->dev_unix_pwd = $dev_unix_pwd; $project->prod_db_user = $prod_db_user; $project->dev_db_user = $dev_db_user; $project->prod_db_pwd = $prod_db_pwd; $project->dev_db_pwd = $dev_db_pwd; $project->prod_db_schema = $prod_db_schema; $project->dev_db_schema = $dev_db_schema; $project->prod_db_server_id = $prod_db_server_id; $project->dev_db_server_id = $dev_db_server_id; $project->prod_web_server_id = $prod_web_server_id; $project->dev_web_server_id = $dev_web_server_id; $project->prod_comment = $prod_comment; $project->dev_comment = $dev_comment; $project->prod_eai = $prod_eai; $project->dev_eai = $dev_eai; $project->prod_whitelist_fw = $prod_whitelist_fw; $project->dev_whitelist_fw = $dev_whitelist_fw; $project->dev_htaccess_user = $dev_htaccess_user; $project->dev_htaccess_pwd = $dev_htaccess_pwd; $project->prod_ga_id = $prod_ga_id; $project->prod_laravel_app_key = $prod_laravel_app_key; $project->dev_laravel_app_key = $dev_laravel_app_key; $project->prod_smtp_config = $prod_smtp_config; $project->prod_smtp_key = $prod_smtp_key; if (Auth::user()->role === 1) { $project->prod_login = $prod_login; $project->dev_login = $dev_login; $project->prod_bo_url = $prod_bo_url; $project->dev_bo_url = $dev_bo_url; } $project->save(); } }