ServersController.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. namespace App\Http\Controllers;
  3. use Illuminate\Http\Request;
  4. use App\Server;
  5. class ServersController extends Controller
  6. {
  7. public function index() {
  8. $servers = Server::all();
  9. return view('servers', compact('servers'));
  10. }
  11. public function api() {
  12. return Server::orderBy('name')->orderBy('ip')->where('complete', 2)->get();
  13. }
  14. public function get($servercode) {
  15. $server = Server::where('servercode', $servercode)->with('applications')->first();
  16. if(!$server) {
  17. abort(404);
  18. }
  19. return view('server', compact('server'));
  20. }
  21. public function create(Request $request) {
  22. $this->validate($request, [
  23. 'name' => 'required',
  24. 'ip' => 'required'
  25. ]);
  26. if($request->ip == $request->server('SERVER_ADDR')) {
  27. $request->session()->flash('alert-error', 'You can\'t install a client server into the same Cipi Server!');
  28. return redirect('/servers');
  29. }
  30. Server::create([
  31. 'name' => $request->name,
  32. 'provider' => $request->provider,
  33. 'location' => $request->location,
  34. 'ip' => $request->ip,
  35. 'port' => 22,
  36. 'username' => 'cipi',
  37. 'password' => sha1(uniqid().microtime().$request->ip),
  38. 'dbroot' => sha1(microtime().uniqid().$request->name),
  39. 'servercode'=> sha1(uniqid().$request->name.microtime().$request->ip)
  40. ]);
  41. $request->session()->flash('alert-success', 'Server '.$request->name.' has been created!');
  42. return redirect('/servers');
  43. }
  44. public function changeip(Request $request) {
  45. $this->validate($request, [
  46. 'servercode' => 'required',
  47. 'ip' => 'required'
  48. ]);
  49. $server = Server::where('servercode', $request->servercode)->first();
  50. if($request->ip == $request->server('SERVER_ADDR')) {
  51. $request->session()->flash('alert-error', 'You can\'t setup the same Cipi IP!');
  52. return redirect('/servers');
  53. }
  54. $server->ip = $request->input('ip');
  55. $server->save();
  56. $request->session()->flash('alert-success', 'The IP of server '.$server->name.' has been updated!');
  57. return redirect('/servers');
  58. }
  59. public function destroy(Request $request) {
  60. $this->validate($request, [
  61. 'servercode' => 'required',
  62. ]);
  63. $server = Server::where('servercode', $request->servercode)->first();
  64. $request->session()->flash('alert-success', 'Server '.$server->name.' has been deleted!');
  65. $server->delete();
  66. return redirect('/servers');
  67. }
  68. }