Andrea Pollastri 5 роки тому
батько
коміт
fdce394c4e

+ 17 - 13
app/Http/Controllers/AliasesController.php

@@ -2,18 +2,15 @@
 
 
 namespace App\Http\Controllers;
 namespace App\Http\Controllers;
 
 
-use Illuminate\Support\Str;
 use Illuminate\Http\Request;
 use Illuminate\Http\Request;
 use App\Application;
 use App\Application;
-use App\Server;
 use App\Alias;
 use App\Alias;
 use phpseclib\Net\SSH2 as SSH;
 use phpseclib\Net\SSH2 as SSH;
-use PDF;
 
 
-class ApplicationsController extends Controller {
+class AliasesController extends Controller {
 
 
     public function index() {
     public function index() {
-        $aliases = Alias::with('server')->with('application')->get();
+        $aliases = Alias::orderBy('domain')->orderBy('application_id')->with('application')->get();
         return view('aliases', compact('aliases'));
         return view('aliases', compact('aliases'));
     }
     }
 
 
@@ -22,11 +19,11 @@ class ApplicationsController extends Controller {
             'domain' => 'required',
             'domain' => 'required',
             'application_id' => 'required'
             'application_id' => 'required'
         ]);
         ]);
-        $application = Application::find($request->application_id);
+        $application = Application::where('id', $request->application_id)->with('server')->with('aliases')->first();
         if(!$application) {
         if(!$application) {
             abort(403);
             abort(403);
         }
         }
-        if(Application::where('server_id', $request->server)->where('domain', $request->domain)->first()) {
+        if(Application::where('server_id', $application->server_id)->where('domain', $request->domain)->first()) {
             $request->session()->flash('alert-error', 'This domain is already taken on this server');
             $request->session()->flash('alert-error', 'This domain is already taken on this server');
             return redirect('/aliases');
             return redirect('/aliases');
         }
         }
@@ -37,9 +34,9 @@ class ApplicationsController extends Controller {
                 return redirect('/aliases');
                 return redirect('/aliases');
             }
             }
         }
         }
-        $application = Alias::create([
+        Alias::create([
             'domain'        => $request->domain,
             'domain'        => $request->domain,
-            'application_id'=> $request->server_id
+            'application_id'=> $request->application_id
         ]);
         ]);
         $ssh = New SSH($application->server->ip, $application->server->port);
         $ssh = New SSH($application->server->ip, $application->server->port);
         if(!$ssh->login($application->server->username, $application->server->password)) {
         if(!$ssh->login($application->server->username, $application->server->password)) {
@@ -47,11 +44,15 @@ class ApplicationsController extends Controller {
             return redirect('/aliases');
             return redirect('/aliases');
         }
         }
         $ssh->setTimeout(360);
         $ssh->setTimeout(360);
-        $response = $ssh->exec('echo '.$application->password.' | sudo -S sudo sh /cipi/alias-add.sh -d '.$request->domain.' -a '.$application->appcode);
+        $response = $ssh->exec('echo '.$application->server->password.' | sudo -S sudo sh /cipi/alias-add.sh -d '.$request->domain.' -a '.$application->appcode);
+        if(strpos($response, '###CIPI###') === false) {
+            $request->session()->flash('alert-error', 'There was a problem with server scripts.');
+            return redirect('/aliases');
+        }
         $response = explode('###CIPI###', $response);
         $response = explode('###CIPI###', $response);
         if(strpos($response[1], 'Ok') === false) {
         if(strpos($response[1], 'Ok') === false) {
             $request->session()->flash('alert-error', 'There was a problem with server scripts.');
             $request->session()->flash('alert-error', 'There was a problem with server scripts.');
-            return redirect('/applications');
+            return redirect('/aliases');
         }
         }
         $request->session()->flash('alert-success', 'Alias '.$request->domain.' has been added!');
         $request->session()->flash('alert-success', 'Alias '.$request->domain.' has been added!');
         return redirect('/aliases');
         return redirect('/aliases');
@@ -61,7 +62,7 @@ class ApplicationsController extends Controller {
         $this->validate($request, [
         $this->validate($request, [
             'id' => 'required',
             'id' => 'required',
         ]);
         ]);
-        $alias = Alias::find($request->id);
+        $alias = Alias::where('id', $request->id)->with('application')->first();
         if(!$alias) {
         if(!$alias) {
             return abort(403);
             return abort(403);
         }
         }
@@ -85,7 +86,7 @@ class ApplicationsController extends Controller {
     }
     }
 
 
     public function ssl($id) {
     public function ssl($id) {
-        $alias = Alias::find($id);
+        $alias = Alias::where('id', $id)->with('application')->first();
         if(!$alias) {
         if(!$alias) {
             return abort(403);
             return abort(403);
         }
         }
@@ -95,6 +96,9 @@ class ApplicationsController extends Controller {
         }
         }
         $ssh->setTimeout(360);
         $ssh->setTimeout(360);
         $response = $ssh->exec('echo '.$alias->application->server->password.' | sudo -S sudo sh /cipi/ssl.sh -d '.$alias->domain);
         $response = $ssh->exec('echo '.$alias->application->server->password.' | sudo -S sudo sh /cipi/ssl.sh -d '.$alias->domain);
+        if(strpos($response, '###CIPI###') === false) {
+            abort(500);
+        }
         $response = explode('###CIPI###', $response);
         $response = explode('###CIPI###', $response);
         if($response[1] == "Ok\n" && $this->sslcheck($alias->domain)) {
         if($response[1] == "Ok\n" && $this->sslcheck($alias->domain)) {
             return 'OK';
             return 'OK';

+ 7 - 0
app/Http/Controllers/ApplicationsController.php

@@ -69,6 +69,10 @@ class ApplicationsController extends Controller {
         }
         }
         $ssh->setTimeout(360);
         $ssh->setTimeout(360);
         $response = $ssh->exec('echo '.$server->password.' | sudo -S sudo sh /cipi/host-add.sh -u '.$user.' -p '.$pass.' -dbp '.$dbpass.' -b '.$base.' -a '.$appcode);
         $response = $ssh->exec('echo '.$server->password.' | sudo -S sudo sh /cipi/host-add.sh -u '.$user.' -p '.$pass.' -dbp '.$dbpass.' -b '.$base.' -a '.$appcode);
+        if(strpos($response, '###CIPI###') === false) {
+            $request->session()->flash('alert-error', 'There was a problem with server scripts.');
+            return redirect('/applications');
+        }
         $response = explode('###CIPI###', $response);
         $response = explode('###CIPI###', $response);
         if(strpos($response[1], 'Ok') === false) {
         if(strpos($response[1], 'Ok') === false) {
             $request->session()->flash('alert-error', 'There was a problem with server scripts.');
             $request->session()->flash('alert-error', 'There was a problem with server scripts.');
@@ -147,6 +151,9 @@ class ApplicationsController extends Controller {
         }
         }
         $ssh->setTimeout(360);
         $ssh->setTimeout(360);
         $response = $ssh->exec('echo '.$application->server->password.' | sudo -S sudo sh /cipi/ssl.sh -d '.$application->domain);
         $response = $ssh->exec('echo '.$application->server->password.' | sudo -S sudo sh /cipi/ssl.sh -d '.$application->domain);
+        if(strpos($response, '###CIPI###') === false) {
+            abort(500);
+        }
         $response = explode('###CIPI###', $response);
         $response = explode('###CIPI###', $response);
         if($response[1] == "Ok\n" && $this->sslcheck($application->domain)) {
         if($response[1] == "Ok\n" && $this->sslcheck($application->domain)) {
             return 'OK';
             return 'OK';

+ 2 - 2
resources/views/aliases.blade.php

@@ -99,8 +99,8 @@ Aliases
                 </div>
                 </div>
                 <div class="modal-footer">
                 <div class="modal-footer">
                     <button type="button" class="btn btn-secondary" id="app-close" data-dismiss="modal">Close</button>
                     <button type="button" class="btn btn-secondary" id="app-close" data-dismiss="modal">Close</button>
-                    <button type="submit" class="btn btn-primary" id="app-create">Create application</button>
-                    <div id="app-coming" style="display: none;"><i class="fas fa-spinner fa-spin"></i>  <b>Your app is coming... Hold On!!!</b></div>
+                    <button type="submit" class="btn btn-primary" id="app-create">Create alias</button>
+                    <div id="app-coming" style="display: none;"><i class="fas fa-spinner fa-spin"></i>  <b>Your alias is coming... Hold On!!!</b></div>
                 </div>
                 </div>
             </form>
             </form>
         </div>
         </div>

+ 2 - 2
resources/views/layouts/app.blade.php

@@ -39,8 +39,8 @@
                     <span>Applications</span>
                     <span>Applications</span>
                 </a>
                 </a>
             </li>
             </li>
-            <li class="nav-item {{ request()->is('alises') ? 'active' : '' }}">
-                <a class="nav-link" href="/alises">
+            <li class="nav-item {{ request()->is('aliases') ? 'active' : '' }}">
+                <a class="nav-link" href="/aliases">
                     <i class="fas fa-fw fa-globe"></i>
                     <i class="fas fa-fw fa-globe"></i>
                     <span>Aliases</span>
                     <span>Aliases</span>
                 </a>
                 </a>

+ 9 - 9
resources/views/servers.blade.php

@@ -12,7 +12,7 @@ Servers
 <div class="row">
 <div class="row">
     <div class="col">
     <div class="col">
         <a href="#" class="btn btn-sm btn-primary shadow-sm float-right" data-toggle="modal" data-target="#createModal">
         <a href="#" class="btn btn-sm btn-primary shadow-sm float-right" data-toggle="modal" data-target="#createModal">
-            <i class="fas fa-plus fa-sm text-white-50"></i> CREATE NEW
+            <i class="fas fa-plus fa-sm text-white-50"></i> ADD SERVER
         </a>
         </a>
     </div>
     </div>
 </div>
 </div>
@@ -250,14 +250,14 @@ Servers
                         <code><i>ssh root@<span class="server-ip"></span></i></code>
                         <code><i>ssh root@<span class="server-ip"></span></i></code>
                     </li>
                     </li>
                     <li>Run this command:<br>
                     <li>Run this command:<br>
-                        <code><i>wget -O - {{ url('/sh/go') }}/<span class="server-id"></span>/ | bash</i></code>
+                        <code><i>wget -O - {{ url('/sh/go') }}/<span class="server-id"></span> | bash</i></code>
                     </li>
                     </li>
-                    <li>Installation may take up to about 5 minutes minimum which may also depend on your server internet speed</li>
-                    <li>Before install Cipi, please make sure your server is an Ubuntu 18.04 x86_64 LTS (Fresh installation)</li>
-                    <li>Hardware Requirement: More than 1GB of HDD / At least 1 core processor / 512MB minimum RAM / At least 1 public IP Address</li>
-                    <li>Please open port 22, 80 and 443 to install Cipi</li>
-                    <li>Cipi would not work with NAT VPN and OpenVZ</li>
-                    <li>AWS by default disables root login. To login as root inside AWS, login as default user and then use command sudo -s</li>
+                    <li>Installation may take up to about ten minutes which may also depend on your server internet connection speed</li>
+                    <li>Before install Cipi, please make sure your server is a clean Ubuntu 18.04 x86_64 LTS VPS (Fresh installation)</li>
+                    <li>Hardware Requirement: minium 1GB free HDD / at least 1 core processor / 512MB or more RAM / 1 public IPv4 address</li>
+                    <li>Please open port 22, 80 and 443 of your firewall to install Cipi</li>
+                    <li>Cipi would not work with NAT VPN and OpenVZ or in localhost</li>
+                    <li>AWS disables root login by default. To login as root inside AWS, login as default user and then use command 'sudo -s'</li>
                 </ul>
                 </ul>
             </div>
             </div>
             <div class="modal-footer">
             <div class="modal-footer">
@@ -326,7 +326,7 @@ Servers
                             </div>
                             </div>
                             <div style="min-height: 20px;"></div>
                             <div style="min-height: 20px;"></div>
                             <h6 class="text-danger">You can not reverse this action.</h6>
                             <h6 class="text-danger">You can not reverse this action.</h6>
-                            <h6 class="text-danger">You will loose control on this server</h6>
+                            <h6 class="text-danger">You will lose control on this server</h6>
                         </div>
                         </div>
                     </div>
                     </div>
                 </div>
                 </div>

+ 6 - 0
routes/web.php

@@ -52,6 +52,12 @@ Route::group(['middleware' => 'auth'], function () {
         Route::get('/pdf/{appcode}', 'ApplicationsController@pdf');
         Route::get('/pdf/{appcode}', 'ApplicationsController@pdf');
         Route::get('/ssl/{appcode}', 'ApplicationsController@ssl');
         Route::get('/ssl/{appcode}', 'ApplicationsController@ssl');
     });
     });
+    Route::get('/aliases', 'AliasesController@index');
+    Route::group(['prefix' => 'alias'], function () {
+        Route::post('/create', 'AliasesController@create');
+        Route::post('/destroy', 'AliasesController@destroy');
+        Route::get('/ssl/{id}', 'AliasesController@ssl');
+    });
     Route::group(['prefix' => 'settings'], function () {
     Route::group(['prefix' => 'settings'], function () {
         Route::get('/', 'SetupController@index');
         Route::get('/', 'SetupController@index');
         Route::post('/profile', 'SetupController@profile');
         Route::post('/profile', 'SetupController@profile');

+ 1 - 1
storage/app/scripts/aliasadd.sh

@@ -20,7 +20,7 @@ done
 
 
 #VIRTUAL HOST
 #VIRTUAL HOST
 NGINX=/etc/nginx/sites-available/$DOMAIN.conf
 NGINX=/etc/nginx/sites-available/$DOMAIN.conf
-wget $REMOTE/sh/ag/$APPCODE/$DOMAIN $NGINX
+wget $REMOTE/sh/ag/$APPCODE/$DOMAIN -O $NGINX
 sudo dos2unix $NGINX
 sudo dos2unix $NGINX
 sudo ln -s $NGINX /etc/nginx/sites-enabled/$DOMAIN.conf
 sudo ln -s $NGINX /etc/nginx/sites-enabled/$DOMAIN.conf
 sudo systemctl restart nginx.service
 sudo systemctl restart nginx.service