Merge branch 'develop' into feature/upgrade-laravel-to-5.6

This commit is contained in:
Dane Everitt 2018-05-20 16:30:42 -07:00 committed by GitHub
commit 7e2e5fd7c1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
129 changed files with 234 additions and 202 deletions

View file

@ -27,7 +27,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
### Changed
* Panel now throws proper 504: Gateway Timeout errors on server listing when daemon is offline.
* Sessions handled through redis now use a seperate database (default `1`) to store session database to avoid logging users out when flushing the cache.
* Sessions handled through redis now use a separate database (default `1`) to store session database to avoid logging users out when flushing the cache.
* File manager UI improved to be clearer with buttons and cleaner on mobile.
* reCAPTCHA's secret key position swapped with website key in advanced panel settings to be consistent with Google's reCAPTCHA dashboard.
* Changed DisplayException to handle its own logging correctly and check if the previous exception is marked as one that should not be logged.
@ -56,7 +56,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
* Fixes a bug when reinstalling a server that would not mark the server as installing, resulting in some UI issues.
* Handle 404 errors from missing models in the application API bindings correctly.
* Fix validation error returned when no environment variables are passed, even if there are no variables required.
* Fix improper permissions on `PATCH /api/servers/<id>/startup` endpoint which was preventing enditing any start variables.
* Fix improper permissions on `PATCH /api/servers/<id>/startup` endpoint which was preventing editing any start variables.
* Should fix migration issues from 0.6 when there are more than API key in the database.
### Changed
@ -94,7 +94,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
## v0.7.1 (Derelict Dermodactylus)
### Fixed
* Fixes an exception when no token is entered on the 2-Factor enable/disable page and the form is submitted.
* Fixes an exception when trying to perform actions aganist a User model due to a validator that could not be cast to a string correctly.
* Fixes an exception when trying to perform actions against a User model due to a validator that could not be cast to a string correctly.
* Allow FQDNs in database host creation UI correctly.
* Fixes database naming scheme using `d###_` rather than `s###_` when creating server databases.
* Fix exception thrown when attempting to update an existing database host.
@ -110,7 +110,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
* `[rc.2]` — Fixes bad API behavior on `/user` routes.
* `[rc.2]` — Fixes Admin CP user editing resetting a password on users unintentionally.
* `[rc.2]` — Fixes bug with server creation API endpoint that would fail to validate `allocation.default` correctly.
* `[rc.2]` — Fix data integrity exception occuring due to invalid data being passed to server creation service on the API.
* `[rc.2]` — Fix data integrity exception occurring due to invalid data being passed to server creation service on the API.
* `[rc.2]` — Fix data integrity exception that could occur when an email containing non-username characters was passed.
* `[rc.2]` — Fix data integrity exception occurring when no default value is provided for an egg variable.
* `[rc.2]` — Fixes a bug that would cause non-editable variables on the front-end to throw a validation error.
@ -152,7 +152,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
### Changed
* PHP 7.2 is now the minimum required version for this software.
* Egg variable default values are no longer validated aganist the ruleset when configuring them. Validation of those rules will only occur when editing or creating a server.
* Egg variable default values are no longer validated against the ruleset when configuring them. Validation of those rules will only occur when editing or creating a server.
* Changed logger to skip reporting stack-traces on PDO exceptions due to sensitive information being contained within.
* Changed behavior of allocation IP Address/Ports box to automatically store the value entered if a user unfocuses the field without hitting space.
* Changed order in which allocations are displayed to prioritize those with servers attached (in ascending IP & port order) followed by ascending IP & port order where no server is attached.
@ -183,7 +183,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
### Fixed
* `[rc.1]` — Fixes exception thrown when revoking user sessions.
* `[rc.1]` — Fixes exception that would occur when trying to delete allocations from a node.
* `[rc.1]` — Fixes exception thown when attempting to adjust mail settings as well as a validation error thrown afterwards.
* `[rc.1]` — Fixes exception thrown when attempting to adjust mail settings as well as a validation error thrown afterwards.
* `[rc.1]` — Fixes bug preventing modification of the default value for an Egg variable.
* `[rc.1]` — Fixed a bug that would occur when attempting to reset the daemon secret for a node.
* `[rc.1]` — Fix exception thrown when attempting to modify an existing database host.
@ -208,7 +208,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
## v0.7.0-beta.4 (Derelict Dermodactylus)
### Fixed
* `[beta.3]` — Fixes a bug with the default environment file that was causing an inability to perform a fresh install when running package discovery.
* `[beta.3]` — Fixes an edge case caused by the Laravel 5.5 upgrade that would try to perform an in_array check aganist a null value.
* `[beta.3]` — Fixes an edge case caused by the Laravel 5.5 upgrade that would try to perform an in_array check against a null value.
* `[beta.3]` — Fixes a bug that would cause an error when attempting to create a new user on the Panel.
* `[beta.3]` — Fixes error handling of the settings service provider when no migrations have been run.
* `[beta.3]` — Fixes validation error when trying to use 'None' as the 'Copy Script From' option for an egg script.
@ -227,7 +227,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
## v0.7.0-beta.3 (Derelict Dermodactylus)
### Fixed
* `[beta.2]` — Fixes a bug that would cause an endless exception message stream in the console when attemping to setup environment settings in certain instances.
* `[beta.2]` — Fixes a bug that would cause an endless exception message stream in the console when attempting to setup environment settings in certain instances.
* `[beta.2]` — Fixes a bug causing the dropdown menu for a server's egg to display the wrong selected value.
* `[beta.2]` — Fixes a bug that would throw a red page of death when submitting an invalid egg variable value for a server in the Admin CP.
* `[beta.2]` — Someone found a `@todo` that I never `@todid` and thus database hosts could not be created without being linked to a node. This is fixed...
@ -256,7 +256,7 @@ This project follows [Semantic Versioning](http://semver.org) guidelines.
* `[beta.1]` — Fixes bug causing inability to create new servers on the Panel.
* `[beta.1]` — Fixes bug causing inability to delete an allocation due to misconfigured JS.
* `[beta.1]` — Fixes bug causing inability to set the IP alias for an allocation to an empty value.
* `[beta.1]` — Fixes bug that caused startup changes to not propigate to the server correctly on the first save.
* `[beta.1]` — Fixes bug that caused startup changes to not propagate to the server correctly on the first save.
* `[beta.1]` — Fixes bug that prevented subusers from accessing anything over socketio due to a missing permission.
### Changed
@ -358,7 +358,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* API now returns a useful error displaying what went wrong rather than an obscure 'An Error was Encountered' message when API issues arise.
* Fixes bug preventing the creation of new files in the file manager due to a missing JS dependency on page load.
* Prevent using a service option tag that contains special characters that are not valid. Now only allows alpha-numeric, no spaces or underscores.
* Fix unhandled excpetion due to missing `Log` class when using the API and causing an error.
* Fix unhandled exception due to missing `Log` class when using the API and causing an error.
### Changed
* Renamed session cookies from `laravel_session` to `pterodactyl_session`.
@ -374,7 +374,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* Fixes potential bug with invalid CIDR notation (ex: `192.168.1.1/z`) when adding allocations that could cause over 4 million records to be created at once.
* Fixes bug where daemon was unable to register that certain games had fully booted and were ready to play on.
* Fixes bug causing MySQL user accounts to be corrupted when resetting a password via the panel.
* Fixes remote timing attack vulnerability due to hmac comparsion in API middleware.
* Fixes remote timing attack vulnerability due to hmac comparison in API middleware.
* `[rc.1]` — Server deletion is fixed, caused by removed download table.
* `[rc.1]` — Server status indication on front-end no longer shows `Error` when server is marked as installing or suspended.
* `[rc.1]` — Fixes issues with SteamCMD not registering and installing games properly.
@ -403,10 +403,10 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* API has been completely overhauled to use new permissions system. **Any old API keys will immediately become invalid and fail to operate properly anymore. You will need to generate new keys.**
* Cleaned up dynamic database connection setting to use a single function call from the host model.
* Deleting a server safely now continues even if the daemon reports a `HTTP/404` missing server error (requires `Daemon@0.4.0-beta.2.1`)
* Changed behavior when modifying server allocation information. You can now remove the default allocation assuming you assing a new allocation at the same time. Reduces the number of steps to change the default allocation for a server.
* Changed behavior when modifying server allocation information. You can now remove the default allocation assuming you are passing a new allocation at the same time. Reduces the number of steps to change the default allocation for a server.
* Environment setting commands now attempt to auto-quote strings with spaces in them, as well as comment lines that are edited to avoid manual changes being overwritten.
* Version in footer of panel now displays correctly if panel is installed using Git rather than a download from source.
* Mobile views are now more... viewable. Fixes `col-xs-6` usage thoughout the Admin CP where it was intended to be `col-md-6`.
* Mobile views are now more... viewable. Fixes `col-xs-6` usage throughout the Admin CP where it was intended to be `col-md-6`.
* Node Configuration tokens and Download tokens are stored using the cache helpers rather than a database to speed up functions and make use of auto-expiration/deletion functions.
* Old daemon routes using `/remote` have been changed to use `/daemon`, panel changes now reflect this.
* Only display servers that a user is owner of or subuser of in the Admin CP rather than all servers if the user is marked as an admin.
@ -424,9 +424,9 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* Ability to assign multiple allocations at once when creating a new server.
* New `humanReadable` macro on `File` facade that accepts a file path and returns a human readable size. (`File::humanReadable(path, precision)`)
* Added ability to edit database host details after creation on the system.
* Login attempts and pasword reset requests are now protected by invisible ReCaptcha. This feature can be disabled with a `.env` variable.
* Login attempts and password reset requests are now protected by invisible ReCaptcha. This feature can be disabled with a `.env` variable.
* Server listing for individual users is now searchable on the front-end.
* Servers that a user is assocaited with as a subuser are now displayed in addition to owned servers when listing users in the Admin CP.
* Servers that a user is associated with as a subuser are now displayed in addition to owned servers when listing users in the Admin CP.
* Ability to launch the console in a new window as an individual unit. https://s3.kelp.in/IrTyE.png
* Server listing and view in Admin CP now shows the SFTP username/Docker container name.
* Administrative server view includes link in navigation to go to server console/frontend management.
@ -448,7 +448,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* `[beta.2.1]` — Fixed a bug preventing the deletion of a server.
* It is now possible to modify a server's disk limits after the server is created.
* `[beta.2.1]` — Fixes a bug causing login issues and password reset failures when reCAPTCHA is enabled.
* Fixes remote timing attack vulnerability due to hmac comparsion in API middleware.
* Fixes remote timing attack vulnerability due to hmac comparison in API middleware.
* `[beta.2.1]` — Fixes bug requiring docker image field to be filled out when adding a service option.
* `[beta.2.1]` — Fixes inability to mark a user as a non-admin once they were assigned the role.
@ -461,7 +461,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
### Changed
* Environment setting commands now attempt to auto-quote strings with spaces in them, as well as comment lines that are edited to avoid manual changes being overwritten.
* Version in footer of panel now displays correctly if panel is installed using Git rather than a download from source.
* Mobile views are now more... viewable. Fixes `col-xs-6` usage thoughout the Admin CP where it was intended to be `col-md-6`.
* Mobile views are now more... viewable. Fixes `col-xs-6` usage throughout the Admin CP where it was intended to be `col-md-6`.
* Node Configuration tokens and Download tokens are stored using the cache helpers rather than a database to speed up functions and make use of auto-expiration/deletion functions.
* Old daemon routes using `/remote` have been changed to use `/daemon`, panel changes now reflect this.
* Only display servers that a user is owner of or subuser of in the Admin CP rather than all servers if the user is marked as an admin.
@ -482,7 +482,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
### Changed
* Deleting a server safely now continues even if the daemon reports a `HTTP/404` missing server error (requires `Daemon@0.4.0-beta.2.1`)
* Changed behavior when modifying server allocation information. You can now remove the default allocation assuming you assing a new allocation at the same time. Reduces the number of steps to change the default allocation for a server.
* Changed behavior when modifying server allocation information. You can now remove the default allocation assuming you are passing a new allocation at the same time. Reduces the number of steps to change the default allocation for a server.
### Added
* Server listing and view in Admin CP now shows the SFTP username/Docker container name.
@ -490,7 +490,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
## v0.6.0-beta.2
### Fixed
* `[beta.1]` — Fixes task management ststem not running correctly.
* `[beta.1]` — Fixes task management system not running correctly.
* `[beta.1]` — Fixes API endpoint for command sending missing the required class definition.
* `[beta.1]` — Fixes panel looking for an old compiled classfile that is no longer used. This was causing errors relating to `missing class DingoAPI` when trying to upgrade the panel.
* `[beta.1]` — Should fix render issues when trying to edit some files via the panel file editor.
@ -507,9 +507,9 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* `[pre.7]` — Terminal is now fixed to actually output all lines, rather than leaving one hanging in neverland until the browser is resized.
### Added
* Login attempts and pasword reset requests are now protected by invisible ReCaptcha. This feature can be disabled with a `.env` variable.
* Login attempts and password reset requests are now protected by invisible ReCaptcha. This feature can be disabled with a `.env` variable.
* Server listing for individual users is now searchable on the front-end.
* Servers that a user is assocaited with as a subuser are now displayed in addition to owned servers when listing users in the Admin CP.
* Servers that a user is associated with as a subuser are now displayed in addition to owned servers when listing users in the Admin CP.
### Changed
* Subuser permissions are now stored in `Permission::listPermissions()` to make views way cleaner and make adding to views significantly cleaner.
@ -532,7 +532,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
## v0.6.0-pre.6
### Fixed
* `[pre.5]` — Console based server rebuild tool now actually rebuilds the servers with the correct information.
* `[pre.5]` — Fixes typo and wrong docker contaienr for certain applications.
* `[pre.5]` — Fixes typo and wrong docker container for certain applications.
### Changed
* Removed all old theme JS and CSS folders to cleanup and avoid confusion in the future.
@ -545,7 +545,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* New theme applied to Admin CP. Many graphical changes were made, some data was moved around and some display data changed. Too much was changed to feasibly log it all in here. Major breaking changes or notable new features will be logged.
* New server creation page now makes significantly less AJAX calls and is much quicker to respond.
* Server and Node view pages wee modified to split tabs into individual pages to make re-themeing and modifications significantly easier, and reduce MySQL query loads on page.
* `[pre.4]` — Service and Pack magement overhauled to be faster, cleaner, and more extensible in the future.
* `[pre.4]` — Service and Pack management overhauled to be faster, cleaner, and more extensible in the future.
* Most of the backend `UnhandledException` display errors now include a clearer error that directs admins to the program's logs.
* Table seeders for services now can be run during upgrades and will attempt to locate and update, or create new if not found in the database.
* Many structural changes to the database and `Pterodactyl\Models` classes that would flood this changelog if they were all included. All required migrations included to handle database changes.
@ -562,7 +562,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* Fixes bug where daemon was unable to register that certain games had fully booted and were ready to play on.
* Fixes bug causing MySQL user accounts to be corrupted when resetting a password via the panel.
* `[pre.4]` — Multiple clients refreshing the console no longer clears the console for all parties involved... sorry about that.
* `[pre.4]` — Fixes bug in environment setting script that would not remeber defaults and try to re-assign values.
* `[pre.4]` — Fixes bug in environment setting script that would not remember defaults and try to re-assign values.
### Added
* Ability to assign multiple allocations at once when creating a new server.
@ -648,7 +648,7 @@ spatie/laravel-fractal (4.0.0 => 4.0.1)
* Fixes bug that would allow creating multiple subusers with the same email address.
* Fixes bug where Sponge servers were improperly tagged as a spigot server in the daemon causing issues when booting or modifying configuration files.
* Use transpiled ES6 -> ES5 filemanager code in browsers.
* Fixes service option name displaying the name of a nwly added variable after the variable is added and until the page is refreshed. (see #208)
* Fixes service option name displaying the name of a newly added variable after the variable is added and until the page is refreshed. (see #208)
### Changed
* Filemanager and EULA checking javascript is now written in pure ES6 code rather than as a blade-syntax template. This allows the use of babel to transpile into ES5 as a minified version.
@ -732,14 +732,14 @@ After nearly a month in the works, version `v0.5.0` is finally here! 🎉
* Small check for current node status that shows up to the left of the name when viewing a listing of all nodes.
* Support for creating server without having to assign a node and allocation manually. Simply select the checkbox or pass `auto_deploy=true` to the API to auto-select a node and allocation given a location.
* Support for setting IP Aliases through the panel on the node overview page. Also cleaned up allocation removal.
* Support for renaming files through the panel's file mananger.
* Support for renaming files through the panel's file manager.
### Changed
* Servers are now queued for deletion to allow for cancellation of deletion, as well as run in the background to speed up page loading.
* Switched to new graphing library to make graphs less... broken.
* Rebuild triggers are only sent to the node if there is actually something changed that requires a rebuild.
* Dependencies are now hard-coded into the `composer.json` file to prevent users installing slightly different versions with different features or bugs.
* Server related tasks now use the lowest priorty queue to prevent clogging the pipes when there are more important tasks to be run by the panel.
* Server related tasks now use the lowest priority queue to prevent clogging the pipes when there are more important tasks to be run by the panel.
* Dates displayed in the file manager are now more user friendly.
* Creating a user, server, or node now returns `HTTP/1.1 200` and a JSON element with the user/server/node's ID.
* Environment setting script is much more user friendly and does not require an excessive amount of clicking and typing.
@ -808,7 +808,7 @@ After nearly a month in the works, version `v0.5.0` is finally here! 🎉
* Switched to new graphing library to make graphs less... broken.
* Rebuild triggers are only sent to the node if there is actually something changed that requires a rebuild.
* Dependencies are now hard-coded into the `composer.json` file to prevent users installing slightly different versions with different features or bugs.
* Server related tasks now use the lowest priorty queue to prevent clogging the pipes when there are more important tasks to be run by the panel.
* Server related tasks now use the lowest priority queue to prevent clogging the pipes when there are more important tasks to be run by the panel.
* Decompressing files now shows a pop-over box that does not dismiss until it is complete.
* Dates displayed in the file manager are now more user friendly.
@ -868,7 +868,7 @@ After nearly a month in the works, version `v0.5.0` is finally here! 🎉
### Added
* Support for creating server without having to assign a node and allocation manually. Simply select the checkbox or pass `auto_deploy=true` to the API to auto-select a node and allocation given a location.
* Support for setting IP Aliases through the panel on the node overview page. Also cleaned up allocation removal.
* Support for renaming files through the panel's file mananger.
* Support for renaming files through the panel's file manager.
### Changed
* Prevent clicking server start button until server is completely off, not just stopping.

View file

@ -58,7 +58,7 @@ class AppSettingsCommand extends Command
* @var string
*/
protected $signature = 'p:environment:setup
{--new-salt : Wether or not to generate a new salt for Hashids.}
{--new-salt : Whether or not to generate a new salt for Hashids.}
{--author= : The email that services created on this instance should be linked to.}
{--url= : The URL that this Panel is running on.}
{--timezone= : The timezone to use for Panel times.}

View file

@ -59,6 +59,7 @@ class EmailSettingsCommand extends Command
/**
* Handle command execution.
* @throws \Pterodactyl\Exceptions\PterodactylException
*/
public function handle()
{

View file

@ -84,7 +84,7 @@ class InfoCommand extends Command
['Host', $this->config->get("database.connections.{$driver}.host")],
['Port', $this->config->get("database.connections.{$driver}.port")],
['Database', $this->config->get("database.connections.{$driver}.database")],
['Usernamne', $this->config->get("database.connections.{$driver}.username")],
['Username', $this->config->get("database.connections.{$driver}.username")],
], 'compact');
$this->output->title('Email Configuration');

View file

@ -31,8 +31,8 @@ class BulkPowerActionCommand extends Command
*/
protected $signature = 'p:server:bulk-power
{action : The action to perform (start, stop, restart, kill)}
{--servers= : A comma seperated list of servers.}
{--nodes= : A comma seperated list of nodes.}';
{--servers= : A comma separated list of servers.}
{--nodes= : A comma separated list of nodes.}';
/**
* @var string

View file

@ -59,7 +59,7 @@ interface AllocationRepositoryInterface extends RepositoryInterface
public function getAssignedAllocationIds(int $server): array;
/**
* Return a concated result set of node ips that already have at least one
* Return a concatenated result set of node ips that already have at least one
* server assigned to that IP. This allows for filtering out sets for
* dedicated allocation IPs.
*

View file

@ -62,7 +62,7 @@ interface ServerRepositoryInterface extends BaseRepositoryInterface
public function delete(): ResponseInterface;
/**
* Return detials on a specific server.
* Return details on a specific server.
*
* @return \Psr\Http\Message\ResponseInterface
*/

View file

@ -19,7 +19,7 @@ interface DatabaseRepositoryInterface extends RepositoryInterface
public function setConnection(string $connection);
/**
* Return the connection to execute statements aganist.
* Return the connection to execute statements against.
*
* @return string
*/

View file

@ -57,5 +57,5 @@ interface EggRepositoryInterface extends RepositoryInterface
* @param int $service
* @return bool
*/
public function isCopiableScript(int $copyFromId, int $service): bool;
public function isCopyableScript(int $copyFromId, int $service): bool;
}

View file

@ -29,7 +29,7 @@ interface RepositoryInterface
public function getBuilder();
/**
* Returns the colummns to be selected or returned by the query.
* Returns the columns to be selected or returned by the query.
*
* @return mixed
*/
@ -59,7 +59,7 @@ interface RepositoryInterface
public function withFreshModel();
/**
* Set wether or not the repository should return a fresh model
* Set whether or not the repository should return a fresh model
* when changes are committed.
*
* @param bool $fresh

View file

@ -119,7 +119,7 @@ interface ServerRepositoryInterface extends RepositoryInterface, SearchableInter
public function getByUuid(string $uuid): Server;
/**
* Return all of the servers that should have a power action performed aganist them.
* Return all of the servers that should have a power action performed against them.
*
* @param int[] $servers
* @param int[] $nodes

View file

@ -41,7 +41,7 @@ class EggRetrievalController extends Controller
}
/**
* Return a JSON array of Eggs and the SHA1 hash of thier configuration file.
* Return a JSON array of Eggs and the SHA1 hash of their configuration file.
*
* @return \Illuminate\Http\JsonResponse
*/

View file

@ -65,6 +65,7 @@ class ApiController extends Controller
* Render view allowing an admin to create a new application API key.
*
* @return \Illuminate\View\View
* @throws \ReflectionException
*/
public function create(): View
{

View file

@ -103,7 +103,6 @@ class LocationController extends Controller
* @return \Illuminate\Http\RedirectResponse
*
* @throws \Throwable
* @throws \Watson\Validating\ValidationException
*/
public function create(LocationFormRequest $request)
{
@ -121,7 +120,6 @@ class LocationController extends Controller
* @return \Illuminate\Http\RedirectResponse
*
* @throws \Throwable
* @throws \Watson\Validating\ValidationException
*/
public function update(LocationFormRequest $request, Location $location)
{

View file

@ -94,6 +94,7 @@ class EggVariableController extends Controller
*
* @return \Illuminate\Http\RedirectResponse
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Service\Egg\Variable\BadValidationRuleException
* @throws \Pterodactyl\Exceptions\Service\Egg\Variable\ReservedVariableNameException
*/
public function store(EggVariableFormRequest $request, Egg $egg): RedirectResponse

View file

@ -462,6 +462,7 @@ class ServersController extends Controller
*
* @param \Pterodactyl\Models\Server $server
* @return \Illuminate\Http\RedirectResponse
* @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException
*/
public function rebuildContainer(Server $server)
{
@ -540,7 +541,8 @@ class ServersController extends Controller
* @param \Pterodactyl\Models\Server $server
* @return \Illuminate\Http\RedirectResponse
*
* @throws \Pterodactyl\Exceptions\DisplayException
* @throws \Illuminate\Validation\ValidationException
* @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/

View file

@ -76,6 +76,8 @@ class AdvancedController extends Controller
/**
* @param \Pterodactyl\Http\Requests\Admin\Settings\AdvancedSettingsFormRequest $request
* @return \Illuminate\Http\RedirectResponse
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function update(AdvancedSettingsFormRequest $request): RedirectResponse
{

View file

@ -74,6 +74,8 @@ class IndexController extends Controller
*
* @param \Pterodactyl\Http\Requests\Admin\Settings\BaseSettingsFormRequest $request
* @return \Illuminate\Http\RedirectResponse
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function update(BaseSettingsFormRequest $request): RedirectResponse
{

View file

@ -83,7 +83,9 @@ class MailController extends Controller
* @param \Pterodactyl\Http\Requests\Admin\Settings\MailSettingsFormRequest $request
* @return \Illuminate\Http\RedirectResponse
*
* @throws \Pterodactyl\Exceptions\DisplayException
* @throws DisplayException
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
* @throws \Pterodactyl\Exceptions\Repository\RecordNotFoundException
*/
public function update(MailSettingsFormRequest $request): RedirectResponse
{

View file

@ -96,7 +96,7 @@ class SecurityController extends Controller
}
/**
* Verifies that 2FA token recieved is valid and will work on the account.
* Verifies that 2FA token received is valid and will work on the account.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response

View file

@ -101,7 +101,7 @@ class FileActionsController extends Controller
{
$server = $request->attributes->get('server');
$dirname = pathinfo($file, PATHINFO_DIRNAME);
$dirname = str_replace('\\', '/', pathinfo($file, PATHINFO_DIRNAME));
try {
$content = $this->repository->setServer($server)->setToken($request->attributes->get('server_token'))->getContent($file);
} catch (RequestException $exception) {

View file

@ -111,7 +111,7 @@ class Kernel extends HttpKernel
// Server specific middleware (used for authenticating access to resources)
//
// These are only used for individual server authentication, and not gloabl
// These are only used for individual server authentication, and not global
// actions from other resources. They are defined in the route files.
'server..database' => DatabaseBelongsToServer::class,
'server..subuser' => SubuserBelongsToServer::class,

View file

@ -10,7 +10,7 @@ class AuthenticateApplicationUser
{
/**
* Authenticate that the currently authenticated user is an administrator
* and should be allowed to proceede through the application API.
* and should be allowed to proceed through the application API.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next

View file

@ -25,7 +25,7 @@ class RequireTwoFactorAuthentication
private $alert;
/**
* The names of routes that should be accessable without 2FA enabled.
* The names of routes that should be accessible without 2FA enabled.
*
* @var array
*/

View file

@ -33,7 +33,7 @@ class AuthenticateAsSubuser
}
/**
* Determine if a subuser has permissions to access a server, if so set thier access token.
* Determine if a subuser has permissions to access a server, if so set their access token.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next

View file

@ -10,13 +10,15 @@ class StoreApplicationApiKeyRequest extends AdminFormRequest
{
/**
* @return array
* @throws \ReflectionException
* @throws \ReflectionException
*/
public function rules()
{
$modelRules = ApiKey::getCreateRules();
return collect(AdminAcl::getResourceList())->mapWithKeys(function ($resource) use ($modelRules) {
return [AdminAcl::COLUMN_IDENTIFER . $resource => $modelRules['r_' . $resource]];
return [AdminAcl::COLUMN_IDENTIFIER . $resource => $modelRules['r_' . $resource]];
})->merge(['memo' => $modelRules['memo']])->toArray();
}
@ -33,7 +35,7 @@ class StoreApplicationApiKeyRequest extends AdminFormRequest
public function getKeyPermissions(): array
{
return collect($this->validated())->filter(function ($value, $key) {
return substr($key, 0, strlen(AdminAcl::COLUMN_IDENTIFER)) === AdminAcl::COLUMN_IDENTIFER;
return substr($key, 0, strlen(AdminAcl::COLUMN_IDENTIFIER)) === AdminAcl::COLUMN_IDENTIFIER;
})->toArray();
}
}

View file

@ -8,7 +8,7 @@ use Pterodactyl\Http\Requests\Admin\AdminFormRequest;
class MailSettingsFormRequest extends AdminFormRequest
{
/**
* Return rules to validate mail settings POST data aganist.
* Return rules to validate mail settings POST data against.
*
* @return array
*/

View file

@ -38,7 +38,7 @@ abstract class ApplicationApiRequest extends FormRequest
/**
* Determine if the current user is authorized to perform
* the requested action aganist the API.
* the requested action against the API.
*
* @return bool
*

View file

@ -19,7 +19,7 @@ class StoreLocationRequest extends ApplicationApiRequest
protected $permission = AdminAcl::WRITE;
/**
* Rules to validate the request aganist.
* Rules to validate the request against.
*
* @return array
*/

View file

@ -20,7 +20,7 @@ class UpdateLocationRequest extends StoreLocationRequest
}
/**
* Rules to validate this request aganist.
* Rules to validate this request against.
*
* @return array
*/

View file

@ -7,7 +7,7 @@ use Pterodactyl\Models\Server;
class UpdateServerBuildConfigurationRequest extends ServerWriteRequest
{
/**
* Return the rules to validate this request aganist.
* Return the rules to validate this request against.
*
* @return array
*/

View file

@ -19,7 +19,7 @@ class UpdateServerStartupRequest extends ApplicationApiRequest
protected $permission = AdminAcl::WRITE;
/**
* Validation rules to run the input aganist.
* Validation rules to run the input against.
*
* @return array
*/

View file

@ -8,7 +8,7 @@ abstract class ClientApiRequest extends ApplicationApiRequest
{
/**
* Determine if the current user is authorized to perform
* the requested action aganist the API.
* the requested action against the API.
*
* @return bool
*/

View file

@ -17,7 +17,7 @@ class SendCommandRequest extends GetServerRequest
}
/**
* Rules to validate this request aganist.
* Rules to validate this request against.
*
* @return array
*/

View file

@ -18,7 +18,7 @@ class SendPowerRequest extends ClientApiRequest
}
/**
* Rules to validate this request aganist.
* Rules to validate this request against.
*
* @return array
*/

View file

@ -7,7 +7,7 @@ use Pterodactyl\Http\Requests\FrontendUserFormRequest;
class StoreAccountKeyRequest extends FrontendUserFormRequest
{
/**
* Rules to validate the request input aganist before storing
* Rules to validate the request input against before storing
* an account API key.
*
* @return array

View file

@ -19,7 +19,7 @@ class DeleteServerDatabaseRequest extends ServerFormRequest
}
/**
* Return the user permission to validate this request aganist.
* Return the user permission to validate this request against.
*
* @return string
*/
@ -29,7 +29,7 @@ class DeleteServerDatabaseRequest extends ServerFormRequest
}
/**
* Rules to validate this request aganist.
* Rules to validate this request against.
*
* @return array
*/

View file

@ -19,7 +19,7 @@ class StoreServerDatabaseRequest extends ServerFormRequest
}
/**
* Return the user permission to validate this request aganist.
* Return the user permission to validate this request against.
*
* @return string
*/
@ -29,7 +29,7 @@ class StoreServerDatabaseRequest extends ServerFormRequest
}
/**
* Rules to validate this request aganist.
* Rules to validate this request against.
*
* @return array
*/

View file

@ -12,7 +12,7 @@ namespace Pterodactyl\Http\Requests\Server;
class ScheduleCreationFormRequest extends ServerFormRequest
{
/**
* Permission to validate this request aganist.
* Permission to validate this request against.
*
* @return string
*/

View file

@ -8,7 +8,7 @@ use Pterodactyl\Http\Requests\FrontendUserFormRequest;
abstract class ServerFormRequest extends FrontendUserFormRequest
{
/**
* Return the user permission to validate this request aganist.
* Return the user permission to validate this request against.
*
* @return string
*/

View file

@ -7,7 +7,7 @@ use Pterodactyl\Http\Requests\Server\ServerFormRequest;
class SubuserStoreFormRequest extends ServerFormRequest
{
/**
* Return the user permission to validate this request aganist.
* Return the user permission to validate this request against.
*
* @return string
*/
@ -17,7 +17,7 @@ class SubuserStoreFormRequest extends ServerFormRequest
}
/**
* The rules to validate this request submission aganist.
* The rules to validate this request submission against.
*
* @return array
*/

View file

@ -7,7 +7,7 @@ use Pterodactyl\Http\Requests\Server\ServerFormRequest;
class SubuserUpdateFormRequest extends ServerFormRequest
{
/**
* Return the user permission to validate this request aganist.
* Return the user permission to validate this request against.
*
* @return string
*/
@ -17,7 +17,7 @@ class SubuserUpdateFormRequest extends ServerFormRequest
}
/**
* The rules to validate this request submission aganist.
* The rules to validate this request submission against.
*
* @return array
*/

View file

@ -20,7 +20,7 @@ use Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException;
class UpdateFileContentsFormRequest extends ServerFormRequest
{
/**
* Return the permission string to validate this request aganist.
* Return the permission string to validate this request against.
*
* @return string
*/

View file

@ -92,7 +92,7 @@ class RunTaskJob extends Job implements ShouldQueue
return;
}
// Perform the provided task aganist the daemon.
// Perform the provided task against the daemon.
switch ($task->action) {
case 'power':
$this->powerRepository->setServer($server)

View file

@ -95,7 +95,7 @@ class ApiKey extends Model implements CleansAttributes, ValidableContract
];
/**
* Rules to protect aganist invalid data entry to DB.
* Rules to protect against invalid data entry to DB.
*
* @var array
*/

View file

@ -90,7 +90,7 @@ class DatabaseHost extends Model implements CleansAttributes, ValidableContract
}
/**
* Gets the databases assocaited with this host.
* Gets the databases associated with this host.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/

View file

@ -82,6 +82,7 @@ class EggVariable extends Model implements CleansAttributes, ValidableContract
];
/**
* @param $value
* @return bool
*/
public function getRequiredAttribute($value)

View file

@ -53,7 +53,7 @@ class Location extends Model implements CleansAttributes, ValidableContract
];
/**
* Gets the nodes in a specificed location.
* Gets the nodes in a specified location.
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/

View file

@ -188,7 +188,7 @@ class User extends Model implements
}
/**
* Store the username as a lowecase string.
* Store the username as a lowercase string.
*
* @param string $value
*/
@ -198,7 +198,7 @@ class User extends Model implements
}
/**
* Return a concated result for the accounts full name.
* Return a concatenated result for the accounts full name.
*
* @return string
*/

View file

@ -17,8 +17,6 @@ class AuthServiceProvider extends ServiceProvider
/**
* Register any application authentication / authorization services.
*
* @param \Illuminate\Contracts\Auth\Access\Gate $gate
*/
public function boot()
{

View file

@ -27,7 +27,7 @@ class HashidsServiceProvider extends ServiceProvider
return new Hashids(
$config->get('hashids.salt', ''),
$config->get('hashids.length', 0),
$config->get('hashids.alphabet', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890')
$config->get('hashids.alphabet', 'abcdefghijkmlnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890')
);
});

View file

@ -12,6 +12,7 @@ class CommandRepository extends BaseRepository implements CommandRepositoryInter
*
* @param string $command
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function send(string $command): ResponseInterface
{

View file

@ -12,6 +12,7 @@ class ConfigurationRepository extends BaseRepository implements ConfigurationRep
*
* @param array $overrides
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(array $overrides = []): ResponseInterface
{

View file

@ -14,11 +14,11 @@ class FileRepository extends BaseRepository implements FileRepositoryInterface
* @param string $path
* @return \stdClass
*
* @throws \GuzzleHttp\Exception\RequestException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getFileStat(string $path): stdClass
{
$file = pathinfo($path);
$file = str_replace('\\', '/', pathinfo($path));
$file['dirname'] = in_array($file['dirname'], ['.', './', '/']) ? null : trim($file['dirname'], '/') . '/';
$response = $this->getHttpClient()->request('GET', sprintf(
@ -35,11 +35,11 @@ class FileRepository extends BaseRepository implements FileRepositoryInterface
* @param string $path
* @return string
*
* @throws \GuzzleHttp\Exception\RequestException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getContent(string $path): string
{
$file = pathinfo($path);
$file = str_replace('\\', '/', pathinfo($path));
$file['dirname'] = in_array($file['dirname'], ['.', './', '/']) ? null : trim($file['dirname'], '/') . '/';
$response = $this->getHttpClient()->request('GET', sprintf(
@ -57,11 +57,11 @@ class FileRepository extends BaseRepository implements FileRepositoryInterface
* @param string $content
* @return \Psr\Http\Message\ResponseInterface
*
* @throws \GuzzleHttp\Exception\RequestException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function putContent(string $path, string $content): ResponseInterface
{
$file = pathinfo($path);
$file = str_replace('\\', '/', pathinfo($path));
$file['dirname'] = in_array($file['dirname'], ['.', './', '/']) ? null : trim($file['dirname'], '/') . '/';
return $this->getHttpClient()->request('POST', 'server/file/save', [
@ -78,7 +78,7 @@ class FileRepository extends BaseRepository implements FileRepositoryInterface
* @param string $path
* @return array
*
* @throws \GuzzleHttp\Exception\RequestException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function getDirectory(string $path): array
{
@ -100,7 +100,7 @@ class FileRepository extends BaseRepository implements FileRepositoryInterface
array_push($files, [
'entry' => $value->name,
'directory' => trim($path, '/'),
'extension' => pathinfo($value->name, PATHINFO_EXTENSION),
'extension' => str_replace('\\', '/', pathinfo($value->name, PATHINFO_EXTENSION)),
'size' => human_readable($value->size),
'date' => strtotime($value->modified),
'mime' => $value->mime,

View file

@ -14,7 +14,8 @@ class PowerRepository extends BaseRepository implements PowerRepositoryInterface
* @param string $signal
* @return \Psr\Http\Message\ResponseInterface
*
* @throws \Pterodactyl\Exceptions\Repository\Daemon\InvalidPowerSignalException
* @throws InvalidPowerSignalException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function sendSignal(string $signal): ResponseInterface
{

View file

@ -15,7 +15,7 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
* @param array $overrides
* @return \Psr\Http\Message\ResponseInterface
*
* @throws \GuzzleHttp\Exception\RequestException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function create(array $structure, array $overrides = []): ResponseInterface
{
@ -33,6 +33,7 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
*
* @param array $data
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function update(array $data): ResponseInterface
{
@ -46,6 +47,7 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
*
* @param array|null $data
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function reinstall(array $data = null): ResponseInterface
{
@ -58,6 +60,7 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
* Mark a server as needing a container rebuild the next time the server is booted.
*
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function rebuild(): ResponseInterface
{
@ -68,6 +71,7 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
* Suspend a server on the daemon.
*
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function suspend(): ResponseInterface
{
@ -78,6 +82,7 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
* Un-suspend a server on the daemon.
*
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function unsuspend(): ResponseInterface
{
@ -88,6 +93,7 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
* Delete a server on the daemon.
*
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function delete(): ResponseInterface
{
@ -95,9 +101,10 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
}
/**
* Return detials on a specific server.
* Return details on a specific server.
*
* @return \Psr\Http\Message\ResponseInterface
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function details(): ResponseInterface
{
@ -110,7 +117,7 @@ class ServerRepository extends BaseRepository implements ServerRepositoryInterfa
* @param string|array $key
* @return \Psr\Http\Message\ResponseInterface
*
* @throws \GuzzleHttp\Exception\RequestException
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public function revokeAccessKey($key): ResponseInterface
{

View file

@ -97,7 +97,7 @@ class AllocationRepository extends EloquentRepository implements AllocationRepos
}
/**
* Return a concated result set of node ips that already have at least one
* Return a concatenated result set of node ips that already have at least one
* server assigned to that IP. This allows for filtering out sets for
* dedicated allocation IPs.
*

View file

@ -59,7 +59,7 @@ class DatabaseRepository extends EloquentRepository implements DatabaseRepositor
}
/**
* Return the connection to execute statements aganist.
* Return the connection to execute statements against.
*
* @return string
*/

View file

@ -92,7 +92,7 @@ class EggRepository extends EloquentRepository implements EggRepositoryInterface
* @param int $service
* @return bool
*/
public function isCopiableScript(int $copyFromId, int $service): bool
public function isCopyableScript(int $copyFromId, int $service): bool
{
return $this->getBuilder()->whereNull('copy_script_from')
->where('id', '=', $copyFromId)

View file

@ -265,7 +265,7 @@ class ServerRepository extends EloquentRepository implements ServerRepositoryInt
}
/**
* Return all of the servers that should have a power action performed aganist them.
* Return all of the servers that should have a power action performed against them.
*
* @param int[] $servers
* @param int[] $nodes

View file

@ -37,7 +37,7 @@ abstract class Repository implements RepositoryInterface
{
$this->app = $application;
$this->initalizeModel($this->model());
$this->initializeModel($this->model());
}
/**
@ -103,7 +103,7 @@ abstract class Repository implements RepositoryInterface
}
/**
* Set wether or not the repository should return a fresh model
* Set whether or not the repository should return a fresh model
* when changes are committed.
*
* @param bool $fresh
@ -123,7 +123,7 @@ abstract class Repository implements RepositoryInterface
* @param array $model
* @return mixed
*/
protected function initalizeModel(...$model)
protected function initializeModel(...$model)
{
switch (count($model)) {
case 1:
@ -131,7 +131,7 @@ abstract class Repository implements RepositoryInterface
case 2:
return $this->model = call_user_func([$this->app->make($model[0]), $model[1]]);
default:
throw new InvalidArgumentException('Model must be a FQCN or an array with a count of two.');
throw new InvalidArgumentException('Model must be a FQDN or an array with a count of two.');
}
}
}

View file

@ -9,9 +9,9 @@ class AdminAcl
{
/**
* Resource permission columns in the api_keys table begin
* with this identifer.
* with this identifier.
*/
const COLUMN_IDENTIFER = 'r_';
const COLUMN_IDENTIFIER = 'r_';
/**
* The different types of permissions available for API keys. This
@ -63,13 +63,14 @@ class AdminAcl
*/
public static function check(ApiKey $key, string $resource, int $action = self::READ)
{
return self::can(data_get($key, self::COLUMN_IDENTIFER . $resource, self::NONE), $action);
return self::can(data_get($key, self::COLUMN_IDENTIFIER . $resource, self::NONE), $action);
}
/**
* Return a list of all resource constants defined in this ACL.
*
* @return array
* @throws \ReflectionException
*/
public static function getResourceList(): array
{

View file

@ -51,7 +51,7 @@ class KeyCreationService
/**
* Create a new API key for the Panel using the permissions passed in the data request.
* This will automatically generate an identifer and an encrypted token that are
* This will automatically generate an identifier and an encrypted token that are
* stored in the database.
*
* @param array $data

View file

@ -88,7 +88,7 @@ class FindViableNodesService
* attempt to find all nodes in the defined locations that meet the disk and
* memory availability requirements. Any nodes not meeting those requirements
* are tossed out, as are any nodes marked as non-public, meaning automatic
* deployments should not be done aganist them.
* deployments should not be done against them.
*
* @return int[]
* @throws \Pterodactyl\Exceptions\Service\Deployment\NoViableNodeException

View file

@ -15,7 +15,7 @@ use Pterodactyl\Contracts\Repository\EggRepositoryInterface;
use Illuminate\Contracts\Config\Repository as ConfigRepository;
use Pterodactyl\Exceptions\Service\Egg\NoParentConfigurationFoundException;
// When a mommy and a daddy pterodactyl really like eachother...
// When a mommy and a daddy pterodactyl really like each other...
class EggCreationService
{
/**

View file

@ -47,7 +47,7 @@ class InstallScriptService
}
if (! is_null(array_get($data, 'copy_script_from'))) {
if (! $this->repository->isCopiableScript(array_get($data, 'copy_script_from'), $egg->nest_id)) {
if (! $this->repository->isCopyableScript(array_get($data, 'copy_script_from'), $egg->nest_id)) {
throw new InvalidCopyFromException(trans('exceptions.nest.egg.invalid_copy_id'));
}
}

View file

@ -24,7 +24,7 @@ class StartupCommandViewService
/**
* Generate a startup command for a server and return all of the user-viewable variables
* as well as thier assigned values.
* as well as their assigned values.
*
* @param int $server
* @return \Illuminate\Support\Collection

View file

@ -63,7 +63,7 @@ class VariableValidatorService
}
/**
* Validate all of the passed data aganist the given service option variables.
* Validate all of the passed data against the given service option variables.
*
* @param int $egg
* @param array $fields

View file

@ -52,7 +52,7 @@ class AuthenticateUsingPasswordService
}
/**
* Attempt to authenticate a provded username and password and determine if they
* Attempt to authenticate a provided username and password and determine if they
* have permission to access a given server. This function does not account for
* subusers currently. Only administrators and server owners can login to access
* their files at this time.

View file

@ -47,7 +47,7 @@ class UserUpdateService
/**
* Update the user model instance. If the user has been removed as an administrator
* revoke all of the authentication tokens that have beenn assigned to their account.
* revoke all of the authentication tokens that have been assigned to their account.
*
* @param \Pterodactyl\Models\User $user
* @param array $data

View file

@ -46,6 +46,7 @@ class AllocationTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Allocation $allocation
* @return \League\Fractal\Resource\Item|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeNode(Allocation $allocation)
{
@ -65,6 +66,7 @@ class AllocationTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Allocation $allocation
* @return \League\Fractal\Resource\Item|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeServer(Allocation $allocation)
{

View file

@ -55,6 +55,7 @@ class DatabaseHostTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\DatabaseHost $model
* @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeDatabases(DatabaseHost $model)
{

View file

@ -70,6 +70,7 @@ class EggTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Egg $model
* @return \League\Fractal\Resource\Item|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeNest(Egg $model)
{
@ -87,6 +88,7 @@ class EggTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Egg $model
* @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeServers(Egg $model)
{
@ -154,6 +156,7 @@ class EggTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Egg $model
* @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeVariables(Egg $model)
{

View file

@ -52,6 +52,7 @@ class NodeTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Node $node
* @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeAllocations(Node $node)
{
@ -71,6 +72,7 @@ class NodeTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Node $node
* @return \League\Fractal\Resource\Item|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeLocation(Node $node)
{
@ -90,6 +92,7 @@ class NodeTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Node $node
* @return \League\Fractal\Resource\Collection|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeServers(Node $node)
{

View file

@ -85,6 +85,7 @@ class ServerDatabaseTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\Database $model
* @return \League\Fractal\Resource\Item|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeHost(Database $model)
{

View file

@ -40,6 +40,7 @@ class ServerVariableTransformer extends BaseTransformer
*
* @param \Pterodactyl\Models\ServerVariable $variable
* @return \League\Fractal\Resource\Item|\League\Fractal\Resource\NullResource
* @throws \Pterodactyl\Exceptions\Transformer\InvalidTransformerLevelException
*/
public function includeParent(ServerVariable $variable)
{

View file

@ -98,14 +98,14 @@ return [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DATBASE', 0),
'database' => env('REDIS_DATABASE', 0),
],
'sessions' => [
'host' => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env('REDIS_DATBASE_SESSIONS', 1),
'database' => env('REDIS_DATABASE_SESSIONS', 1),
],
],
];

View file

@ -34,7 +34,7 @@ return [
/*
* Or, to trust ALL proxies, including those that
* are in a chain of fowarding, uncomment this:
* are in a chain of forwarding, uncomment this:
*/
// 'proxies' => '**',

View file

@ -44,7 +44,7 @@ var TwoFactorModal = (function () {
});
$('#open2fa').modal('show');
}).fail(function (jqXHR) {
alert('An error occured while attempting to load the 2FA setup modal. Please try again.');
alert('An error occurred while attempting to load the 2FA setup modal. Please try again.');
console.error(jqXHR);
});

View file

@ -72,7 +72,7 @@ class ActionsClass {
Files.list();
}).fail(jqXHR => {
console.error(jqXHR);
var error = 'An error occured while trying to process this request.';
var error = 'An error occurred while trying to process this request.';
if (typeof jqXHR.responseJSON !== 'undefined' && typeof jqXHR.responseJSON.error !== 'undefined') {
error = jqXHR.responseJSON.error;
}
@ -118,7 +118,7 @@ class ActionsClass {
swal.close();
}).fail(jqXHR => {
console.error(jqXHR);
var error = 'An error occured while trying to process this request.';
var error = 'An error occurred while trying to process this request.';
if (typeof jqXHR.responseJSON !== 'undefined' && typeof jqXHR.responseJSON.error !== 'undefined') {
error = jqXHR.responseJSON.error;
}
@ -198,7 +198,7 @@ class ActionsClass {
inputField.remove();
}).fail(jqXHR => {
console.error(jqXHR);
var error = 'An error occured while trying to process this request.';
var error = 'An error occurred while trying to process this request.';
if (typeof jqXHR.responseJSON !== 'undefined' && typeof jqXHR.responseJSON.error !== 'undefined') {
error = jqXHR.responseJSON.error;
}
@ -255,7 +255,7 @@ class ActionsClass {
Files.list();
}).fail(jqXHR => {
console.error(jqXHR);
var error = 'An error occured while trying to process this request.';
var error = 'An error occurred while trying to process this request.';
if (typeof jqXHR.responseJSON !== 'undefined' && typeof jqXHR.responseJSON.error !== 'undefined') {
error = jqXHR.responseJSON.error;
}
@ -315,7 +315,7 @@ class ActionsClass {
type: 'error',
title: 'Whoops!',
html: true,
text: 'An error occured while attempting to delete this file. Please try again.',
text: 'An error occurred while attempting to delete this file. Please try again.',
});
});
});
@ -433,7 +433,7 @@ class ActionsClass {
type: 'error',
title: 'Whoops!',
html: true,
text: 'An error occured while attempting to delete these files. Please try again.',
text: 'An error occurred while attempting to delete these files. Please try again.',
});
});
});
@ -476,7 +476,7 @@ class ActionsClass {
Files.list(compPath);
}).fail(jqXHR => {
console.error(jqXHR);
var error = 'An error occured while trying to process this request.';
var error = 'An error occurred while trying to process this request.';
if (typeof jqXHR.responseJSON !== 'undefined' && typeof jqXHR.responseJSON.error !== 'undefined') {
error = jqXHR.responseJSON.error;
}
@ -516,7 +516,7 @@ class ActionsClass {
});
}).fail(jqXHR => {
console.error(jqXHR);
var error = 'An error occured while trying to process this request.';
var error = 'An error occurred while trying to process this request.';
if (typeof jqXHR.responseJSON !== 'undefined' && typeof jqXHR.responseJSON.error !== 'undefined') {
error = jqXHR.responseJSON.error;
}

View file

@ -71,7 +71,7 @@ class FileManager {
swal({
type: 'error',
title: 'File Error',
text: jqXHR.responseJSON.errors[0].detail || 'An error occured while attempting to process this request. Please try again.',
text: jqXHR.responseJSON.errors[0].detail || 'An error occurred while attempting to process this request. Please try again.',
});
console.error(jqXHR);
});

View file

@ -54,7 +54,7 @@ $(document).ready(function () {
swal({
type: 'error',
title: 'Whoops!',
text: 'An error occured while attempting to delete this schedule.'
text: 'An error occurred while attempting to delete this schedule.'
});
});
});
@ -93,7 +93,7 @@ $(document).ready(function () {
swal({
type: 'error',
title: 'Whoops!',
text: 'An error occured while attempting to trigger this schedule.'
text: 'An error occurred while attempting to trigger this schedule.'
});
});
});
@ -136,7 +136,7 @@ $(document).ready(function () {
swal({
type: 'error',
title: 'Whoops!',
text: 'An error occured while attempting to toggle this schedule.'
text: 'An error occurred while attempting to toggle this schedule.'
});
});
});

View file

@ -220,7 +220,7 @@ return [
'new_email' => 'Neue Email Adresse',
'first_name' => 'Vornahme',
'last_name' => 'Nachname',
'update_identitity' => 'Account bearbeiten',
'update_identity' => 'Account bearbeiten',
'username_help' => 'Dein Username darf nicht bereits vergeben sein oder folgende Zeichen enthakten: :requirements.',
],
'security' => [

View file

@ -16,7 +16,7 @@ return [
'default_allocation_not_found' => 'The requested default allocation was not found in this server\'s allocations.',
],
'alerts' => [
'startup_changed' => 'The startup configuration for this server has been updated. If this server\'s nest or egg was changed a reinstall will be occuring now.',
'startup_changed' => 'The startup configuration for this server has been updated. If this server\'s nest or egg was changed a reinstall will be occurring now.',
'server_deleted' => 'Server has successfully been deleted from the system.',
'server_created' => 'Server was successfully created on the panel. Please allow the daemon a few minutes to completely install this server.',
'build_updated' => 'The build details for this server have been updated. Some changes may require a restart to take effect.',

View file

@ -31,7 +31,7 @@ return [
'index' => [
'list' => 'Your Keys',
'header' => 'Account API',
'header_sub' => 'Manage access keys that allow you to perform actions aganist the panel.',
'header_sub' => 'Manage access keys that allow you to perform actions against the panel.',
'create_new' => 'Create New API key',
'keypair_created' => 'An API key has been successfully generated and is listed below.',
],
@ -45,7 +45,7 @@ return [
],
'allowed_ips' => [
'title' => 'Allowed IPs',
'description' => 'Enter a line delimitated list of IPs that are allowed to access the API using this key. CIDR notation is allowed. Leave blank to allow any IP.',
'description' => 'Enter a line delimited list of IPs that are allowed to access the API using this key. CIDR notation is allowed. Leave blank to allow any IP.',
],
],
],
@ -62,7 +62,7 @@ return [
'new_email' => 'New Email Address',
'first_name' => 'First Name',
'last_name' => 'Last Name',
'update_identitity' => 'Update Identity',
'update_identity' => 'Update Identity',
'username_help' => 'Your username must be unique to your account, and may only contain the following characters: :requirements.',
],
'security' => [
@ -71,12 +71,12 @@ return [
'header_sub' => 'Control active sessions and 2-Factor Authentication.',
'sessions' => 'Active Sessions',
'2fa_header' => '2-Factor Authentication',
'2fa_token_help' => 'Enter the 2FA Token generated by your app (Google Authenticatior, Authy, etc.).',
'2fa_token_help' => 'Enter the 2FA Token generated by your app (Google Authenticator, Authy, etc.).',
'disable_2fa' => 'Disable 2-Factor Authentication',
'2fa_enabled' => '2-Factor Authentication is enabled on this account and will be required in order to login to the panel. If you would like to disable 2FA, simply enter a valid token below and submit the form.',
'2fa_disabled' => '2-Factor Authentication is disabled on your account! You should enable 2FA in order to add an extra level of protection on your account.',
'enable_2fa' => 'Enable 2-Factor Authentication',
'2fa_qr' => 'Confgure 2FA on Your Device',
'2fa_qr' => 'Configure 2FA on Your Device',
'2fa_checkpoint_help' => 'Use the 2FA application on your phone to take a picture of the QR code to the left, or manually enter the code under it. Once you have done so, generate a token and enter it below.',
'2fa_disable_error' => 'The 2FA token provided was not valid. Protection has not been disabled for this account.',
],

View file

@ -43,7 +43,7 @@ return [
'server' => [
'rebuild_failed' => 'Rebuild request for ":name" (#:id) on node ":node" failed with error: :message',
'power' => [
'confirm' => 'You are about to perform a :action aganist :count servers. Do you wish to continue?',
'confirm' => 'You are about to perform a :action against :count servers. Do you wish to continue?',
'action_failed' => 'Power action request for ":name" (#:id) on node ":node" failed with error: :message',
],
],
@ -89,7 +89,7 @@ return [
'using_redis' => 'You\'ve selected the Redis driver for one or more options, please provide valid connection information below. In most cases you can use the defaults provided unless you have modified your setup.',
'redis_host' => 'Redis Host',
'redis_password' => 'Redis Password',
'redis_pass_help' => 'By default a Redis server instance has no password as it is running locally and inaccessable to the outside world. If this is the case, simply hit enter without entering a value.',
'redis_pass_help' => 'By default a Redis server instance has no password as it is running locally and inaccessible to the outside world. If this is the case, simply hit enter without entering a value.',
'redis_port' => 'Redis Port',
'redis_pass_defined' => 'It seems a password is already defined for Redis, would you like to change it?',
],

View file

@ -220,7 +220,7 @@ return [
'new_email' => 'Nueva Dirección De Correo Electrónico',
'first_name' => 'Primer Nombre',
'last_name' => 'Apellido',
'update_identitity' => 'Actualización De La Identidad',
'update_identity' => 'Actualización De La Identidad',
'username_help' => 'Su nombre de usuario debe ser único a su cuenta, y sólo pueden contener los siguientes caracteres: :requirements.',
],
'security' => [

View file

@ -93,7 +93,7 @@
swal({
type: 'error',
title: 'Whoops!',
text: 'An error occured while attempting to revoke this key.'
text: 'An error occurred while attempting to revoke this key.'
});
});
});

View file

@ -37,13 +37,13 @@
<option value="{{ $nest->id }}" {{ old('nest_id') != $nest->id ?: 'selected' }}>{{ $nest->name }} &lt;{{ $nest->author }}&gt;</option>
@endforeach
</select>
<p class="text-muted small">Think of a Nest as a category. You can put multiple Eggs in a nest, but consider putting only Eggs that are related to eachother in each Nest.</p>
<p class="text-muted small">Think of a Nest as a category. You can put multiple Eggs in a nest, but consider putting only Eggs that are related to each other in each Nest.</p>
</div>
</div>
<div class="form-group">
<label for="pName" class="form-label">Name</label>
<input type="text" id="pName" name="name" value="{{ old('name') }}" class="form-control" />
<p class="text-muted small">A simple, human-readable name to use as an identifier for this Egg. This is what users will see as thier gameserver type.</p>
<p class="text-muted small">A simple, human-readable name to use as an identifier for this Egg. This is what users will see as their game server type.</p>
</div>
<div class="form-group">
<label for="pDescription" class="form-label">Description</label>
@ -60,7 +60,7 @@
<div class="form-group">
<label for="pStartup" class="control-label">Startup Command</label>
<textarea id="pStartup" name="startup" class="form-control" rows="14">{{ old('startup') }}</textarea>
<p class="text-muted small">The default statup command that should be used for new servers created with this Egg. You can change this per-server as needed.</p>
<p class="text-muted small">The default startup command that should be used for new servers created with this Egg. You can change this per-server as needed.</p>
</div>
</div>
</div>
@ -76,7 +76,7 @@
<div class="row">
<div class="col-xs-12">
<div class="alert alert-warning">
<p>All fields are required unless you select a seperate option from the 'Copy Settings From' dropdown, in which case fields may be left blank to use the values from that option.</p>
<p>All fields are required unless you select a separate option from the 'Copy Settings From' dropdown, in which case fields may be left blank to use the values from that option.</p>
</div>
</div>
<div class="col-sm-6">

View file

@ -41,7 +41,7 @@
@if(! is_null($egg->copyFrom))
<div class="box-body">
<div class="callout callout-warning no-margin">
This service option is copying installation scripts and containe options from <a href="{{ route('admin.nests.egg.view', $egg->copyFrom->id) }}">{{ $egg->copyFrom->name }}</a>. Any changes you make to this script will not apply unless you select "None" from the dropdown box below.
This service option is copying installation scripts and container options from <a href="{{ route('admin.nests.egg.view', $egg->copyFrom->id) }}">{{ $egg->copyFrom->name }}</a>. Any changes you make to this script will not apply unless you select "None" from the dropdown box below.
</div>
</div>
@endif

View file

@ -68,7 +68,7 @@
<input type="text" name="default_value" value="{{ $variable->default_value }}" class="form-control" />
</div>
<div class="col-xs-12">
<p class="text-muted small">This variable can be accessed in the statup command by using <code>{{ $variable->env_variable }}</code>.</p>
<p class="text-muted small">This variable can be accessed in the startup command by using <code>{{ $variable->env_variable }}</code>.</p>
</div>
</div>
<div class="form-group">
@ -121,7 +121,7 @@
<input type="text" name="default_value" class="form-control" value="{{ old('default_value') }}" />
</div>
<div class="col-xs-12">
<p class="text-muted small">This variable can be accessed in the statup command by entering <code>@{{environment variable value}}</code>.</p>
<p class="text-muted small">This variable can be accessed in the startup command by entering <code>@{{environment variable value}}</code>.</p>
</div>
</div>
<div class="form-group">

View file

@ -101,7 +101,7 @@
<div class="form-group">
<label for="pStartup" class="control-label">Startup Command <span class="field-required"></span></label>
<textarea id="pStartup" name="startup" class="form-control" rows="6">{{ $egg->startup }}</textarea>
<p class="text-muted small">The default statup command that should be used for new servers using this Egg.</p>
<p class="text-muted small">The default startup command that should be used for new servers using this Egg.</p>
</div>
</div>
</div>
@ -118,7 +118,7 @@
<div class="col-xs-12">
<div class="alert alert-warning">
<p>The following configuration options should not be edited unless you understand how this system works. If wrongly modified it is possible for the daemon to break.</p>
<p>All fields are required unless you select a seperate option from the 'Copy Settings From' dropdown, in which case fields may be left blank to use the values from that Egg.</p>
<p>All fields are required unless you select a separate option from the 'Copy Settings From' dropdown, in which case fields may be left blank to use the values from that Egg.</p>
</div>
</div>
<div class="col-sm-6">

View file

@ -21,7 +21,7 @@
<div class="row">
<div class="col-xs-12">
<div class="alert alert-danger">
Eggs are a powerful feature of Pterodactyl Panel that allow for extreme flexibility and configuration. Please note that while powerful, modifing an egg wrongly can very easily brick your servers and cause more problems. Please avoid editing our default eggs those provided by <code>support@pterodactyl.io</code> unless you are absolutely sure of what you are doing.
Eggs are a powerful feature of Pterodactyl Panel that allow for extreme flexibility and configuration. Please note that while powerful, modifying an egg wrongly can very easily brick your servers and cause more problems. Please avoid editing our default eggs those provided by <code>support@pterodactyl.io</code> unless you are absolutely sure of what you are doing.
</div>
</div>
</div>

View file

@ -31,7 +31,7 @@
<label class="control-label">Name</label>
<div>
<input type="text" name="name" class="form-control" value="{{ old('name') }}" />
<p class="text-muted"><small>This should be a descriptive category name that emcompasses all of the eggs within the nest.</small></p>
<p class="text-muted"><small>This should be a descriptive category name that encompasses all of the eggs within the nest.</small></p>
</div>
</div>
<div class="form-group">

View file

@ -28,7 +28,7 @@
<label class="control-label">Name <span class="field-required"></span></label>
<div>
<input type="text" name="name" class="form-control" value="{{ $nest->name }}" />
<p class="text-muted"><small>This should be a descriptive category name that emcompasses all of the options within the service.</small></p>
<p class="text-muted"><small>This should be a descriptive category name that encompasses all of the options within the service.</small></p>
</div>
</div>
<div class="form-group">

View file

@ -126,7 +126,7 @@
</div>
</div>
<div class="col-md-12">
<p class="text-muted small">Enter the total amount of memory avaliable for new servers. If you would like to allow overallocation of memory enter the percentage that you want to allow. To disable checking for overallocation enter <code>-1</code> into the field. Entering <code>0</code> will prevent creating new servers if it would put the node over the limit.</p>
<p class="text-muted small">Enter the total amount of memory available for new servers. If you would like to allow overallocation of memory enter the percentage that you want to allow. To disable checking for overallocation enter <code>-1</code> into the field. Entering <code>0</code> will prevent creating new servers if it would put the node over the limit.</p>
</div>
</div>
<div class="row">
@ -145,7 +145,7 @@
</div>
</div>
<div class="col-md-12">
<p class="text-muted small">Enter the total amount of disk space avaliable for new servers. If you would like to allow overallocation of disk space enter the percentage that you want to allow. To disable checking for overallocation enter <code>-1</code> into the field. Entering <code>0</code> will prevent creating new servers if it would put the node over the limit.</p>
<p class="text-muted small">Enter the total amount of disk space available for new servers. If you would like to allow overallocation of disk space enter the percentage that you want to allow. To disable checking for overallocation enter <code>-1</code> into the field. Entering <code>0</code> will prevent creating new servers if it would put the node over the limit.</p>
</div>
</div>
<div class="row">
@ -158,7 +158,7 @@
<input type="text" name="daemonSFTP" class="form-control" id="pDaemonSFTP" value="2022" />
</div>
<div class="col-md-12">
<p class="text-muted small">The daemon runs its own SFTP management container and does not use the SSHd process on the main physical server. <Strong>Do not use the same port that you have assigned for your physcial server's SSH process.</strong> If you will be running the daemon behind CloudFlare&reg; you should set the daemon port to <code>8443</code> to allow websocket proxying over SSL.</p>
<p class="text-muted small">The daemon runs its own SFTP management container and does not use the SSHd process on the main physical server. <Strong>Do not use the same port that you have assigned for your physical server's SSH process.</strong> If you will be running the daemon behind CloudFlare&reg; you should set the daemon port to <code>8443</code> to allow websocket proxying over SSL.</p>
</div>
</div>
</div>

View file

@ -76,7 +76,7 @@
<h3 class="box-title">Delete Node</h3>
</div>
<div class="box-body">
<p class="no-margin">Deleting a node is a irreversable action and will immediately remove this node from the panel. There must be no servers associated with this node in order to continue.</p>
<p class="no-margin">Deleting a node is a irreversible action and will immediately remove this node from the panel. There must be no servers associated with this node in order to continue.</p>
</div>
<div class="box-footer">
<form action="{{ route('admin.nodes.view.delete', $node->id) }}" method="POST">

View file

@ -189,7 +189,7 @@
</div>
<div class="row">
<div class="col-md-12">
<p class="text-muted"><small>The daemon runs its own SFTP management container and does not use the SSHd process on the main physical server. <Strong>Do not use the same port that you have assigned for your physcial server's SSH process.</strong></small></p>
<p class="text-muted"><small>The daemon runs its own SFTP management container and does not use the SSHd process on the main physical server. <Strong>Do not use the same port that you have assigned for your physical server's SSH process.</strong></small></p>
</div>
</div>
</div>

View file

@ -20,7 +20,7 @@
</optgroup>
@endforeach
</select>
<p class="text-muted small">The Egg that this pack is assocaited with. Only servers that are assigned this Egg will be able to access this pack.</p>
<p class="text-muted small">The Egg that this pack is associated with. Only servers that are assigned this Egg will be able to access this pack.</p>
</div>
</div>
<div class="row" style="margin-top:15px;">

View file

@ -62,7 +62,7 @@
</optgroup>
@endforeach
</select>
<p class="text-muted small">The option that this pack is assocaited with. Only servers that are assigned this option will be able to access this pack.</p>
<p class="text-muted small">The option that this pack is associated with. Only servers that are assigned this option will be able to access this pack.</p>
</div>
</div>
</div>

Some files were not shown because too many files have changed in this diff Show more