DatabasesController.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Application;
  5. use phpseclib\Net\SSH2 as SSH;
  6. class DatabasesController extends Controller {
  7. public function index() {
  8. $databases = Application::all();
  9. return view('databases', compact('databases'));
  10. }
  11. public function reset(Request $request) {
  12. $this->validate($request, [
  13. 'username' => 'required'
  14. ]);
  15. $application = Application::where('username', $request->username)->with('server')->firstOrFail();
  16. $ssh = New SSH($application->server->ip, $application->server->port);
  17. if(!$ssh->login($application->server->username, $application->server->password)) {
  18. $request->session()->flash('alert-error', 'There was a problem with server connection.');
  19. return redirect('/users');
  20. }
  21. $pass = sha1(uniqid().microtime().$application->ip);
  22. $ssh->setTimeout(360);
  23. $response = $ssh->exec('echo '.$application->server->password.' | sudo -S sudo sh /cipi/passwd.sh -u '.$request->username.' -p '.$application->password.' -dbp '.$pass. ' -dbop '.$application->dbpass);
  24. if(strpos($response, '###CIPI###') === false) {
  25. $request->session()->flash('alert-error', 'There was a problem with server scripts.');
  26. return redirect('/users');
  27. }
  28. $response = explode('###CIPI###', $response);
  29. if(strpos($response[1], 'Ok') === false) {
  30. $request->session()->flash('alert-error', 'There was a problem with server scripts.');
  31. return redirect('/users');
  32. }
  33. $application->dbpass = $pass;
  34. $application->save();
  35. $app = [
  36. 'user' => $request->username,
  37. 'pass' => $application->password,
  38. 'dbname' => $request->username,
  39. 'dbuser' => $request->username,
  40. 'dbpass' => $pass,
  41. 'path' => $application->basepath,
  42. 'domain' => $application->domain,
  43. 'php' => $application->php,
  44. 'host' => $application->server->ip,
  45. 'port' => $application->server->port,
  46. ];
  47. $appcode = $application->appcode;
  48. return view('application', compact('app','appcode'));
  49. }
  50. }