예제 #1
0
 public function postDownload(Request $request)
 {
     $download = Models\Download::where('token', $request->input('token', '00'))->first();
     if (!$download) {
         return response()->json(['error' => 'An invalid request token was recieved with this request.'], 403);
     }
     $download->delete();
     return response()->json(['path' => $download->path, 'server' => $download->server]);
 }
예제 #2
0
 /**
  * Handles downloading a file for the user.
  *
  * @param  Request $request
  * @param  string  $uuid
  * @param  string  $file
  * @return \Illuminate\Contracts\View\View
  */
 public function getDownloadFile(Request $request, $uuid, $file)
 {
     $server = Models\Server::getByUUID($uuid);
     $node = Models\Node::find($server->node);
     $this->authorize('download-files', $server);
     $download = new Models\Download();
     $download->token = (string) Uuid::generate(4);
     $download->server = $server->uuid;
     $download->path = str_replace('../', '', $file);
     $download->save();
     return redirect($node->scheme . '://' . $node->fqdn . ':' . $node->daemonListen . '/server/download/' . $download->token);
 }
예제 #3
0
 public function deleteServer($id, $force)
 {
     $server = Models\Server::findOrFail($id);
     $node = Models\Node::findOrFail($server->node);
     DB::beginTransaction();
     try {
         // Delete Allocations
         Models\Allocation::where('assigned_to', $server->id)->update(['assigned_to' => null]);
         // Remove Variables
         Models\ServerVariables::where('server_id', $server->id)->delete();
         // Remove SubUsers
         Models\Subuser::where('server_id', $server->id)->delete();
         // Remove Permissions
         Models\Permission::where('server_id', $server->id)->delete();
         // Remove Downloads
         Models\Download::where('server', $server->uuid)->delete();
         $client = Models\Node::guzzleRequest($server->node);
         $client->request('DELETE', '/servers', ['headers' => ['X-Access-Token' => $node->daemonSecret, 'X-Access-Server' => $server->uuid]]);
         $server->delete();
         DB::commit();
         return true;
     } catch (\GuzzleHttp\Exception\TransferException $ex) {
         if ($force === 'force') {
             $server->delete();
             DB::commit();
             return true;
         } else {
             DB::rollBack();
             throw new DisplayException('An error occured while attempting to delete the server on the daemon.', $ex);
         }
     } catch (\Exception $ex) {
         DB::rollBack();
         throw $ex;
     }
 }