Merge branch 'feature/PTDL-472' of https://github.com/Pterodactyl/Panel into feature/PTDL-472

This commit is contained in:
Dane Everitt 2017-08-12 16:30:29 -05:00
commit fd24729ab9
No known key found for this signature in database
GPG key ID: EEA66103B3D71F53
15 changed files with 165 additions and 166 deletions

View file

@ -31,12 +31,12 @@ class AddLocation extends Command
{ {
protected $data = []; protected $data = [];
/** /**
* The name and signature of the console command. * The name and signature of the console command.
* *
* @var string * @var string
*/ */
protected $signature = 'pterodactyl:location protected $signature = 'pterodactyl:location
{--short= : The shortcode name of this location (ex. us1).} {--short= : The shortcode name of this location (ex. us1).}
{--long= : A longer description of this location.}'; {--long= : A longer description of this location.}';

View file

@ -1,26 +1,26 @@
<?php <?php
/** /**
* Pterodactyl - Panel * Pterodactyl - Panel
* Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>. * Copyright (c) 2015 - 2017 Dane Everitt <dane@daneeveritt.com>.
* *
* Permission is hereby granted, free of charge, to any person obtaining a copy * Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal * of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights * in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is * copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions: * furnished to do so, subject to the following conditions:
* *
* The above copyright notice and this permission notice shall be included in all * The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software. * copies or substantial portions of the Software.
* *
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE. * SOFTWARE.
*/ */
namespace Pterodactyl\Events\Auth; namespace Pterodactyl\Events\Auth;

View file

@ -25,14 +25,14 @@
namespace Pterodactyl\Http\Controllers\Admin; namespace Pterodactyl\Http\Controllers\Admin;
use Prologue\Alerts\AlertsMessageBag; use Prologue\Alerts\AlertsMessageBag;
use Pterodactyl\Http\Controllers\Controller;
use Pterodactyl\Contracts\Repository\ServiceOptionRepositoryInterface;
use Pterodactyl\Http\Requests\Admin\OptionVariableFormRequest;
use Pterodactyl\Models\ServiceOption; use Pterodactyl\Models\ServiceOption;
use Pterodactyl\Models\ServiceVariable; use Pterodactyl\Models\ServiceVariable;
use Pterodactyl\Http\Controllers\Controller;
use Pterodactyl\Http\Requests\Admin\OptionVariableFormRequest;
use Pterodactyl\Repositories\Eloquent\ServiceVariableRepository; use Pterodactyl\Repositories\Eloquent\ServiceVariableRepository;
use Pterodactyl\Services\Services\Variables\VariableCreationService;
use Pterodactyl\Services\Services\Variables\VariableUpdateService; use Pterodactyl\Services\Services\Variables\VariableUpdateService;
use Pterodactyl\Services\Services\Variables\VariableCreationService;
use Pterodactyl\Contracts\Repository\ServiceOptionRepositoryInterface;
class VariableController extends Controller class VariableController extends Controller
{ {

View file

@ -67,15 +67,15 @@ class AccountController extends Controller
$data['password'] = $request->input('new_password'); $data['password'] = $request->input('new_password');
// Request to update account Email // Request to update account Email
} elseif ($request->input('do_action') === 'email') { } elseif ($request->input('do_action') === 'email') {
$data['email'] = $request->input('new_email'); $data['email'] = $request->input('new_email');
// Request to update account Identity // Request to update account Identity
} elseif ($request->input('do_action') === 'identity') { } elseif ($request->input('do_action') === 'identity') {
$data = $request->only(['name_first', 'name_last', 'username']); $data = $request->only(['name_first', 'name_last', 'username']);
// Unknown, hit em with a 404 // Unknown, hit em with a 404
} else { } else {
return abort(404); return abort(404);
} }

View file

@ -42,53 +42,53 @@ class ServerVariable extends Model
*/ */
protected $guarded = ['id', 'created_at', 'updated_at']; protected $guarded = ['id', 'created_at', 'updated_at'];
/** /**
* Cast values to correct type. * Cast values to correct type.
* *
* @var array * @var array
*/ */
protected $casts = [ protected $casts = [
'server_id' => 'integer', 'server_id' => 'integer',
'variable_id' => 'integer', 'variable_id' => 'integer',
]; ];
/** /**
* Determine if variable is viewable by users. * Determine if variable is viewable by users.
* *
* @return bool * @return bool
*/ */
public function getUserCanViewAttribute() public function getUserCanViewAttribute()
{ {
return (bool) $this->variable->user_viewable; return (bool) $this->variable->user_viewable;
} }
/** /**
* Determine if variable is editable by users. * Determine if variable is editable by users.
* *
* @return bool * @return bool
*/ */
public function getUserCanEditAttribute() public function getUserCanEditAttribute()
{ {
return (bool) $this->variable->user_editable; return (bool) $this->variable->user_editable;
} }
/** /**
* Determine if variable is required. * Determine if variable is required.
* *
* @return bool * @return bool
*/ */
public function getRequiredAttribute() public function getRequiredAttribute()
{ {
return $this->variable->required; return $this->variable->required;
} }
/** /**
* Returns information about a given variables parent. * Returns information about a given variables parent.
* *
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/ */
public function variable() public function variable()
{ {
return $this->belongsTo(ServiceVariable::class, 'variable_id'); return $this->belongsTo(ServiceVariable::class, 'variable_id');
} }
} }

View file

@ -25,9 +25,7 @@
namespace Pterodactyl\Providers; namespace Pterodactyl\Providers;
use Illuminate\Support\ServiceProvider; use Illuminate\Support\ServiceProvider;
use Pterodactyl\Contracts\Repository\ServiceVariableRepositoryInterface;
use Pterodactyl\Repositories\Eloquent\NodeRepository; use Pterodactyl\Repositories\Eloquent\NodeRepository;
use Pterodactyl\Repositories\Eloquent\ServiceVariableRepository;
use Pterodactyl\Repositories\Eloquent\UserRepository; use Pterodactyl\Repositories\Eloquent\UserRepository;
use Pterodactyl\Repositories\Eloquent\ApiKeyRepository; use Pterodactyl\Repositories\Eloquent\ApiKeyRepository;
use Pterodactyl\Repositories\Eloquent\ServerRepository; use Pterodactyl\Repositories\Eloquent\ServerRepository;
@ -46,6 +44,7 @@ use Pterodactyl\Contracts\Repository\ServerRepositoryInterface;
use Pterodactyl\Repositories\Eloquent\OptionVariableRepository; use Pterodactyl\Repositories\Eloquent\OptionVariableRepository;
use Pterodactyl\Repositories\Eloquent\ServerVariableRepository; use Pterodactyl\Repositories\Eloquent\ServerVariableRepository;
use Pterodactyl\Contracts\Repository\ServiceRepositoryInterface; use Pterodactyl\Contracts\Repository\ServiceRepositoryInterface;
use Pterodactyl\Repositories\Eloquent\ServiceVariableRepository;
use Pterodactyl\Contracts\Repository\DatabaseRepositoryInterface; use Pterodactyl\Contracts\Repository\DatabaseRepositoryInterface;
use Pterodactyl\Contracts\Repository\LocationRepositoryInterface; use Pterodactyl\Contracts\Repository\LocationRepositoryInterface;
use Pterodactyl\Contracts\Repository\AllocationRepositoryInterface; use Pterodactyl\Contracts\Repository\AllocationRepositoryInterface;
@ -54,6 +53,7 @@ use Pterodactyl\Contracts\Repository\ApiPermissionRepositoryInterface;
use Pterodactyl\Contracts\Repository\ServiceOptionRepositoryInterface; use Pterodactyl\Contracts\Repository\ServiceOptionRepositoryInterface;
use Pterodactyl\Contracts\Repository\OptionVariableRepositoryInterface; use Pterodactyl\Contracts\Repository\OptionVariableRepositoryInterface;
use Pterodactyl\Contracts\Repository\ServerVariableRepositoryInterface; use Pterodactyl\Contracts\Repository\ServerVariableRepositoryInterface;
use Pterodactyl\Contracts\Repository\ServiceVariableRepositoryInterface;
use Pterodactyl\Contracts\Repository\Daemon\ConfigurationRepositoryInterface; use Pterodactyl\Contracts\Repository\Daemon\ConfigurationRepositoryInterface;
use Pterodactyl\Repositories\Daemon\ServerRepository as DaemonServerRepository; use Pterodactyl\Repositories\Daemon\ServerRepository as DaemonServerRepository;
use Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface as DaemonServerRepositoryInterface; use Pterodactyl\Contracts\Repository\Daemon\ServerRepositoryInterface as DaemonServerRepositoryInterface;

View file

@ -24,9 +24,9 @@
namespace Pterodactyl\Services\Services\Options; namespace Pterodactyl\Services\Services\Options;
use Pterodactyl\Models\ServiceOption;
use Pterodactyl\Contracts\Repository\ServiceOptionRepositoryInterface; use Pterodactyl\Contracts\Repository\ServiceOptionRepositoryInterface;
use Pterodactyl\Exceptions\Services\ServiceOption\NoParentConfigurationFoundException; use Pterodactyl\Exceptions\Services\ServiceOption\NoParentConfigurationFoundException;
use Pterodactyl\Models\ServiceOption;
class OptionUpdateService class OptionUpdateService
{ {

View file

@ -24,11 +24,11 @@
namespace Pterodactyl\Services\Services\Variables; namespace Pterodactyl\Services\Services\Variables;
use Pterodactyl\Models\ServiceOption;
use Pterodactyl\Models\ServiceVariable;
use Pterodactyl\Contracts\Repository\ServiceOptionRepositoryInterface; use Pterodactyl\Contracts\Repository\ServiceOptionRepositoryInterface;
use Pterodactyl\Contracts\Repository\ServiceVariableRepositoryInterface; use Pterodactyl\Contracts\Repository\ServiceVariableRepositoryInterface;
use Pterodactyl\Exceptions\Services\ServiceVariable\ReservedVariableNameException; use Pterodactyl\Exceptions\Services\ServiceVariable\ReservedVariableNameException;
use Pterodactyl\Models\ServiceOption;
use Pterodactyl\Models\ServiceVariable;
class VariableCreationService class VariableCreationService
{ {

View file

@ -24,24 +24,24 @@ class AddForeignAllocations extends Migration
}); });
} }
/** /**
* Reverse the migrations. * Reverse the migrations.
* *
* @return void * @return void
*/ */
public function down() public function down()
{ {
Schema::table('allocations', function (Blueprint $table) { Schema::table('allocations', function (Blueprint $table) {
$table->dropForeign('allocations_assigned_to_foreign'); $table->dropForeign('allocations_assigned_to_foreign');
$table->dropForeign('allocations_node_foreign'); $table->dropForeign('allocations_node_foreign');
$table->dropIndex('allocations_assigned_to_foreign'); $table->dropIndex('allocations_assigned_to_foreign');
$table->dropIndex('allocations_node_foreign'); $table->dropIndex('allocations_node_foreign');
}); });
DB::statement('ALTER TABLE allocations DB::statement('ALTER TABLE allocations
MODIFY COLUMN assigned_to MEDIUMINT(8) UNSIGNED NULL, MODIFY COLUMN assigned_to MEDIUMINT(8) UNSIGNED NULL,
MODIFY COLUMN node MEDIUMINT(8) UNSIGNED NOT NULL MODIFY COLUMN node MEDIUMINT(8) UNSIGNED NOT NULL
'); ');
} }
} }

View file

@ -20,18 +20,18 @@ class AddForeignApiPermissions extends Migration
}); });
} }
/** /**
* Reverse the migrations. * Reverse the migrations.
* *
* @return void * @return void
*/ */
public function down() public function down()
{ {
Schema::table('api_permissions', function (Blueprint $table) { Schema::table('api_permissions', function (Blueprint $table) {
$table->dropForeign('api_permissions_key_id_foreign'); $table->dropForeign('api_permissions_key_id_foreign');
$table->dropIndex('api_permissions_key_id_foreign'); $table->dropIndex('api_permissions_key_id_foreign');
}); });
DB::statement('ALTER TABLE api_permissions MODIFY key_id MEDIUMINT(8) UNSIGNED NOT NULL'); DB::statement('ALTER TABLE api_permissions MODIFY key_id MEDIUMINT(8) UNSIGNED NOT NULL');
} }
} }

View file

@ -19,19 +19,19 @@ class AddForeignPermissions extends Migration
}); });
} }
/** /**
* Reverse the migrations. * Reverse the migrations.
* *
* @return void * @return void
*/ */
public function down() public function down()
{ {
Schema::table('permissions', function (Blueprint $table) { Schema::table('permissions', function (Blueprint $table) {
$table->dropForeign('permissions_user_id_foreign'); $table->dropForeign('permissions_user_id_foreign');
$table->dropForeign('permissions_server_id_foreign'); $table->dropForeign('permissions_server_id_foreign');
$table->dropIndex('permissions_user_id_foreign'); $table->dropIndex('permissions_user_id_foreign');
$table->dropIndex('permissions_server_id_foreign'); $table->dropIndex('permissions_server_id_foreign');
}); });
} }
} }

View file

@ -24,21 +24,21 @@ class AddForeignServerVariables extends Migration
}); });
} }
/** /**
* Reverse the migrations. * Reverse the migrations.
* *
* @return void * @return void
*/ */
public function down() public function down()
{ {
Schema::table('server_variables', function (Blueprint $table) { Schema::table('server_variables', function (Blueprint $table) {
$table->dropForeign(['server_id']); $table->dropForeign(['server_id']);
$table->dropForeign(['variable_id']); $table->dropForeign(['variable_id']);
}); });
DB::statement('ALTER TABLE server_variables DB::statement('ALTER TABLE server_variables
MODIFY COLUMN server_id MEDIUMINT(8) UNSIGNED NULL, MODIFY COLUMN server_id MEDIUMINT(8) UNSIGNED NULL,
MODIFY COLUMN variable_id MEDIUMINT(8) UNSIGNED NOT NULL MODIFY COLUMN variable_id MEDIUMINT(8) UNSIGNED NOT NULL
'); ');
} }
} }

View file

@ -20,18 +20,18 @@ class AddForeignServiceOptions extends Migration
}); });
} }
/** /**
* Reverse the migrations. * Reverse the migrations.
* *
* @return void * @return void
*/ */
public function down() public function down()
{ {
Schema::table('service_options', function (Blueprint $table) { Schema::table('service_options', function (Blueprint $table) {
$table->dropForeign('service_options_parent_service_foreign'); $table->dropForeign('service_options_parent_service_foreign');
$table->dropIndex('service_options_parent_service_foreign'); $table->dropIndex('service_options_parent_service_foreign');
}); });
DB::statement('ALTER TABLE service_options MODIFY parent_service MEDIUMINT(8) UNSIGNED NOT NULL'); DB::statement('ALTER TABLE service_options MODIFY parent_service MEDIUMINT(8) UNSIGNED NOT NULL');
} }
} }

View file

@ -20,18 +20,18 @@ class AddForeignServiceVariables extends Migration
}); });
} }
/** /**
* Reverse the migrations. * Reverse the migrations.
* *
* @return void * @return void
*/ */
public function down() public function down()
{ {
Schema::table('service_variables', function (Blueprint $table) { Schema::table('service_variables', function (Blueprint $table) {
$table->dropForeign('service_variables_option_id_foreign'); $table->dropForeign('service_variables_option_id_foreign');
$table->dropIndex('service_variables_option_id_foreign'); $table->dropIndex('service_variables_option_id_foreign');
}); });
DB::statement('ALTER TABLE service_variables MODIFY option_id MEDIUMINT(8) UNSIGNED NOT NULL'); DB::statement('ALTER TABLE service_variables MODIFY option_id MEDIUMINT(8) UNSIGNED NOT NULL');
} }
} }

View file

@ -87,7 +87,7 @@ class AssignmentServiceTest extends TestCase
{ {
$data = [ $data = [
'allocation_ip' => '192.168.1.1', 'allocation_ip' => '192.168.1.1',
'allocation_ports' => ['1024'] 'allocation_ports' => ['1024'],
]; ];
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();
@ -112,7 +112,7 @@ class AssignmentServiceTest extends TestCase
{ {
$data = [ $data = [
'allocation_ip' => '192.168.1.1', 'allocation_ip' => '192.168.1.1',
'allocation_ports' => ['1024-1026'] 'allocation_ports' => ['1024-1026'],
]; ];
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();
@ -142,7 +142,6 @@ class AssignmentServiceTest extends TestCase
$this->connection->shouldReceive('commit')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('commit')->withNoArgs()->once()->andReturnNull();
$this->service->handle($this->node->id, $data); $this->service->handle($this->node->id, $data);
} }
/** /**
@ -307,7 +306,7 @@ class AssignmentServiceTest extends TestCase
{ {
$data = [ $data = [
'allocation_ip' => '192.168.1.1', 'allocation_ip' => '192.168.1.1',
'allocation_ports' => ['1024'] 'allocation_ports' => ['1024'],
]; ];
$this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull(); $this->connection->shouldReceive('beginTransaction')->withNoArgs()->once()->andReturnNull();