Commit Graph

360 Commits

Author SHA1 Message Date
Dane Everitt efda0dd009 Apply fixes from StyleCI 2016-12-14 21:56:25 +00:00
Dane Everitt fc38b09e1f
Merge branch 'develop' into feature/service-changes 2016-12-14 16:53:53 -05:00
spaceemotion a85ac87ae8 Refactor to use more laravel logic and improve compatibility with older PHP versions (#206)
* Fix @param namespaces for PHPDocs in ServerPolicy

* Reduce permission check duplication in ServerPolicy

This introduces a new checkPermission method to reduce code duplication when checking for permissions.

* Simplify logic to list accessible servers for the user

We can directly use the pluck function that laravel collections provide to simplify the logic.

* Fix pagination issue when databases/servers exceed 20

Laravels strips out the currently selected tab (or any GET query for that matter) by default when using pagination. the appends() methods helps with keeping that information.

* Refactor unnecessary array_merge calls

We can just append to the array instead of constantly merging a new copy.

* Fix accessing “API Access” on some versions of PHP

The “new” word is reserved and should not be used as a method name.

http://stackoverflow.com/questions/9575590/why-am-i-getting-an-unexpected-t-new-error-in-php

* Fix revoking API keys on older versions of php (5.6)

“string” was not a valid function argument type yet, so revoking keys results in an error on older installations.

* Fix issues with API due to methods named “list”

“list” is yet another reserved keyword in PHP and messes up older installations of PHP (5.6).
This renames all methods named “list” to “lists”. The API route names are left untouched (e.g. still called “api.admin.users.list”).

* Refactor and shorten some API logic

Used laravel collection methods where applicable to directly transform the values instead of converting back and forth.
This also removes some dead variables that were never used as well as getting rid of a n+1 problem in the Service API (loading service variables afterwards, not during the model creation).

* Return model save status in repositories where applicable

* Fix typo in ServicePolicy#powerStart

* Apply StyleCI corrections
2016-12-12 14:30:57 -05:00
Dane Everitt c1fb0a665f Apply fixes from StyleCI 2016-12-07 22:46:38 +00:00
Emmet Young f687fab9a2 API: ability to search for an allocation based on the assigned server id (#194) 2016-12-04 22:17:35 -05:00
Dane Everitt 9ae716ee42
show container ID for server in panel
Also shows the UID of the user to ease permissions setting

closes #160
2016-12-02 19:35:08 -05:00
Dane Everitt 2ac734d595
Update node config sent over API 2016-12-02 19:12:29 -05:00
Dane Everitt 259b220dfc
misc file cleanup 2016-12-02 18:45:08 -05:00
Dane Everitt 3cd0a8337f
Add ability to filter user list 2016-12-02 18:41:52 -05:00
Dane Everitt ed5b7559ec
Fixes potential for generated password to not meet own validation requirements 2016-12-01 19:16:40 -05:00
Dane Everitt 1eb1f96e71
Add support for updating the daemon's configuration file automatically. 2016-12-01 18:33:32 -05:00
Emmet Young a03add7e4f Allow API to set a custom ID for server creation. (#187)
* Allow API to set a custom ID for server creation.

Useful when dealing with billing systems such as WHMCS

* Correct API code changes based on feedback.
2016-11-30 11:01:22 -05:00
Jakob 03c6f986d2 fix api /servers/{id}/build
remove unrelated error thrown every time
2016-11-30 12:26:23 +01:00
Dane Everitt 75de060a55
Fix pack selector 2016-11-27 14:57:23 -05:00
Dane Everitt c4a4b84bd3
Add service pack reference to server and send to daemon 2016-11-27 14:50:10 -05:00
Dane Everitt 238f08f222
Add pack selection to view 2016-11-27 14:30:44 -05:00
Dane Everitt 9eb14614c2
Merge branch 'develop' into feature/service-changes 2016-11-27 14:01:13 -05:00
Dane Everitt f6275058d0
Support for hostnames in database connection field. 2016-11-26 20:27:36 -05:00
Dane Everitt 946512bac9
search for owner:<email> correctly. 2016-11-26 20:18:46 -05:00
Dane Everitt 90cd2b677e
Add version checking to daemon and panel
Also includes some buttons for users to get help from the panel.
2016-11-26 19:29:57 -05:00
Dane Everitt 1ad715f1a3
Improve database management for servers, fixes #181 2016-11-26 17:34:14 -05:00
Dane Everitt 723b608e0c
Implement node deletion properly, fixes #173 2016-11-26 16:29:13 -05:00
Dane Everitt 0e89ecb427
Handle node:<param> properly when doing server searches
Uses the node name rather than the node’s ID by default.
2016-11-26 16:19:25 -05:00
Dane Everitt fc2ce11a39
Add template, add files when new service is added. 2016-11-18 18:22:26 -05:00
Dane Everitt 5600f3201c
Add support for deleting service packs. 2016-11-18 17:31:57 -05:00
Dane Everitt d4729427aa
Support for uploading templates for installing packs 2016-11-16 17:22:22 -05:00
Dane Everitt e09659a88f
support for pack editing 2016-11-16 16:09:28 -05:00
Dane Everitt 09c2dcc1b6
Support for viewing and exporting packs 2016-11-15 23:12:47 -05:00
Dane Everitt a1bc6fa2d3
Push changes that support creations of service packs and basic listing 2016-11-15 20:20:32 -05:00
Dane Everitt 1f47eda3b3
Run 'pterodactyl:cleanservices' twice a day to prevent a huge file buildup 2016-11-09 17:59:57 -05:00
Dane Everitt cfd5e0e854
Implement base service file modification through panel 2016-11-09 17:58:14 -05:00
Dane Everitt 659c33f0e8
Fixes a bug that allows a user to bypass 2FA authentication requirements
This bug was reported to us by a user (@Ferry#1704) on Discord on
Monday, November 7th, 2016.

It was disclosed that it was possible to bypass the 2FA checkpoint by
clicking outside of the modal which would prompt the modal to close,
but not submit the form. The user could then press the login button
which would trigger an error. Due to this error being triggered the
authentication attempt was not cancelled. On the next page load the
application recognized the user as logged in and continued on to the
panel.

At no time was it possible to login without using the correct email
address and password.

As a result of this bug we have re-factored the Authentication code for
logins to address the persistent session. Previously accounts were
manually logged back out on 2FA failure. However, as this bug
demonstrated, causing a fatal error in the code would prevent the
logout code from firing, thus preserving their session state.

This commit modifies the code to use a non-persistent login to handle
2FA checking. In order for the session to be saved the application must
complete all portions of the login without any errors, at which point
the user is persistently authenticated using Auth::login().

This resolves the ability to cause an exception and bypass 2FA
verification.
2016-11-07 15:55:57 -05:00
Dane Everitt 48994c1354
Fix the other user bug... 2016-11-04 21:50:47 -04:00
Dane Everitt 4359252545
Fix a @schrej bug 2016-11-04 21:46:16 -04:00
Dane Everitt cd3f5ed6fe
Correct password setting for MySQL user 2016-11-04 20:47:40 -04:00
Dane Everitt 61e65294af
Fix bug preventing rendering of database hosts when not linked to a node. 2016-11-04 20:44:56 -04:00
Dane Everitt a55220da39
Fix missing environment variables relating to queues 2016-10-30 18:34:50 -04:00
Jakob e65dc5708d Validate password on reset according to rules (#158)
* move password rules to Models\User::PASSWORD_RULES

* validate new password according to rules on password reset

* add password requirements info to auth.passwords.reset view
2016-10-30 16:02:39 -04:00
Dane Everitt 6fd7c78f0c
Add server deletion to a queue.
This action allows servers to be deleted, but only be soft-deleted for
10 minutes. After that time period the server will be completely
removed from the database and daemon. This allows some safety if a
server is accidentally deleted.

Force deleting a server will still work. If the daemon is in-accessible
the server will fail to be deleted. When server is soft-deleted admins
can still view its information page in the admin CP, however the server
will be suspended and inaccessible on the front-end or though the
daemon.

Admins can manually delete the server ahead of the delete timer, or if
it failed to delete previously they can do an immediate retry.
2016-10-27 20:05:29 -04:00
Dane Everitt dbec99498d
run task manager tasks at lowest priority 2016-10-27 18:50:10 -04:00
Dane Everitt bb96039bf1
use low priority queue for tasks 2016-10-27 16:35:50 -04:00
Dane Everitt 55c9f0f2f2
Delete databases when we delete a server. 2016-10-23 19:21:57 -04:00
Dane Everitt 08b236ac1d
better port checking, don't send rebuild unless things are changed. 2016-10-23 19:07:29 -04:00
Dane Everitt 0b044b3cc6
fixes bug that would allow deleting the default allocation for a server. 2016-10-23 18:59:13 -04:00
Dane Everitt dda5d9aa01
Fix no error display if adding a server with an invalid email 2016-10-23 18:48:14 -04:00
Dane Everitt ad906e0680
FQDN support for allocations, and JS bug fix. 2016-10-21 17:33:26 -04:00
Dane Everitt 176d92176e
Run tasks every minute as needed
Clear logs every month (configurable) for old tasks logs.
2016-10-21 16:36:40 -04:00
Dane Everitt bef717b202
add typeahead support for owner email when adding new server
closes #144
pic: http://s3.pterodactyl.io/UpPSJ.png
2016-10-21 15:22:47 -04:00
Dane Everitt f24347d1bd
Remove old admin routes, fix display to non-admins
Complete!
2016-10-20 18:40:16 -04:00
Dane Everitt b1a9a59707
Update middleware to handle wildcards correctly. 2016-10-20 18:35:55 -04:00
Dane Everitt 0f4648b13a
Fixes adding api keys a little more 2016-10-20 18:29:34 -04:00
Dane Everitt 53ec2c55ec
Add front-end support for adding and deleting API keys. 2016-10-20 18:20:58 -04:00
Dane Everitt dfeed013ba
Server API obey's the subuser permissions as well 2016-10-20 17:04:58 -04:00
Dane Everitt 9fd8a087b8
Revert some changes that cause issues with other URLs 2016-10-20 16:48:37 -04:00
Dane Everitt 125856d92f
Support for server info and minor changes to API setup 2016-10-20 16:42:54 -04:00
Dane Everitt 5a03ce7e1a
Add support for controlling server power from API. 2016-10-20 13:39:39 -04:00
Dane Everitt 745c735b32
Add initial basic API changes
New route is `/api/me`
2016-10-14 20:22:23 -04:00
Dane Everitt 126df09152
Fix route handling 2016-10-14 17:17:35 -04:00
Dane Everitt 7cf7a5a961
Split account things into own controllers. 2016-10-14 17:15:36 -04:00
Dane Everitt 073ef638b8
fix wording in notification event 2016-10-14 16:25:57 -04:00
Dane Everitt 63058d8c8e
Super early base implementation of notifications from daemon 2016-10-14 16:20:24 -04:00
Dane Everitt c989dd0cc2
Send notification when server is created for user 2016-10-14 15:58:52 -04:00
Dane Everitt a115c71433
Change SFTP username to be name_uuidShort 2016-10-14 15:34:01 -04:00
Dane Everitt f65e41a1af
flags for setup scripts, closes #134 2016-10-12 19:02:18 -04:00
Dane Everitt 649b18c8d1
support for server filtering
closes #125
2016-10-12 17:12:27 -04:00
Dane Everitt 84a4c8b7f4
API enhancements, return node config, return 200 not 201 2016-10-12 15:42:23 -04:00
Dane Everitt c8a73fa608
Log the error output for API 2016-10-07 16:10:54 -04:00
Dane Everitt af68dbed8f
Add support for base API logging of all requests
ref #31
2016-10-07 16:06:09 -04:00
Dane Everitt 06422b2055
fix up API route return 2016-10-07 14:26:50 -04:00
Dane Everitt 9d55e93e9e
Fix auto-deploy not throwing proper exception 2016-10-07 14:26:37 -04:00
Dane Everitt 06756af994
add ?daemon=true option to API for servers 2016-10-06 23:56:32 -04:00
Dane Everitt fbfaec6b20
create server with user ID or email 2016-10-06 22:43:50 -04:00
Dane Everitt 9d10c2a757
Support custom user id though API, closes #115 2016-10-06 22:36:59 -04:00
Dane Everitt c347a6756c
Save set image to database 2016-10-06 22:32:54 -04:00
Dane Everitt a2fc511e7e
Add permissions for filemanager stuff to subusers 2016-10-06 20:29:21 -04:00
Dane Everitt 77198b48df
Support folders within folders for JS path 2016-10-06 17:27:30 -04:00
Dane Everitt 8330e26b39
Update routes to reflect daemon changes 2016-10-04 21:38:32 -04:00
Dane Everitt 4d922b6a0c
Clean up file adding and listing 2016-10-03 21:09:20 -04:00
Dane Everitt 81dc74a175
File adding support, editor enhancements, JS improved. 2016-10-03 20:22:28 -04:00
Dane Everitt dbd2900f0f
Merge branch 'develop' into feature/filemanager 2016-10-03 13:19:02 -04:00
Dominic Fitch-Jones b67813b260 Make sure that you can't delete your own account. (#110) 2016-10-02 21:27:25 -04:00
Dane Everitt fb4d122a2a
More updates to file manager
Not doing individual commits for this, tons of changes for tons of
different aspects across multiple files.
2016-10-01 23:09:55 -04:00
Dane Everitt 6098f31f9a
Better dropdown menu setup, more options
Still rough
2016-10-01 15:40:38 -04:00
Dane Everitt 71245cb531
Minor changes to support better dynamic JS loading 2016-09-30 20:53:08 -04:00
Dane Everitt 831399184f
clean up front-end port allocation handling 2016-09-30 18:21:02 -04:00
Dane Everitt bd7fd836ff
clean up node allocation 2016-09-30 17:12:36 -04:00
Dane Everitt 16222d1bd7
redirect if no locations 2016-09-30 16:05:39 -04:00
Dane Everitt 2e88c51ac7
If value is empty set to null 2016-09-30 16:01:36 -04:00
Dane Everitt a9d0b4a4fe
Add support for setting IP aliases though panel 2016-09-29 21:34:20 -04:00
Dane Everitt 723e34a784
redirect to allocation tab when created 2016-09-29 17:47:47 -04:00
Dane Everitt b2cd7cc5c9
Throw exception if no allocation is there. 2016-09-28 17:32:11 -04:00
Dane Everitt 30f58382bc
Add support for automatic node assignment 2016-09-27 21:01:46 -04:00
Jakob 2ec7fcc3ab Remove unnecessary brackets in RunTasks
fixes #92
2016-09-26 13:59:18 +01:00
Dane Everitt 4068332fb9 postmark uses smtp driver 2016-09-20 19:35:26 -04:00
Dane Everitt 4917105a99 Add email setup command to artisan 2016-09-20 19:33:32 -04:00
Dane Everitt d9f1a7faf7 allow setting variable options to "0", closes #87 2016-09-17 20:25:13 -04:00
Dane Everitt 812b869be8 add ability to change servers docker image 2016-09-17 20:14:36 -04:00
Dane Everitt fd8417b5de Fix a display bug with IP aliasing 2016-09-17 14:51:27 -04:00
Dane Everitt 7dd00d6d88 Fix startup executable display bug 2016-09-16 18:44:12 -04:00
Dane Everitt bcd4b35890 Startup not required, fix display executable bug 2016-09-16 18:39:36 -04:00
Dane Everitt c9420cdd7e Don't require executable or startup for services 2016-09-16 17:59:26 -04:00
Dane Everitt abaf29483b Only send updated data to daemon; makes better use of on-the-fly container updates
Now we only send information that would trigger a container rebuild if
it actually changes from current settings.
2016-09-14 18:36:33 -04:00
Dane Everitt 06c680ee52 Fix redirect on server delete 2016-09-14 18:36:33 -04:00
Dane Everitt fcae6b5f15 remove required default value, update descriptions in seeder 2016-09-14 18:36:33 -04:00
Dane Everitt c2d0a5adb3 Fix exception loading typo 2016-09-14 18:36:33 -04:00
Dane Everitt bea790d149 Don't require a default value 2016-09-14 18:36:33 -04:00
Dane Everitt 33ca221b99 Fix typo in exception handler 2016-09-07 18:25:11 -04:00
Dane Everitt 05f0f48caf Add seeders for services, cleanup environment setters 2016-09-07 17:48:20 -04:00
Dane Everitt 228d6b1b21 Clean up exception handling code, closes #81
Makes sure things get logged properly.
2016-09-07 16:12:06 -04:00
Dane Everitt e0bff4db8e closes #85, also fixes route names 2016-09-07 15:28:57 -04:00
Dane Everitt 9fb0cb420e Add subuser support to tasks
Also allow task creation…
2016-09-05 17:39:58 -04:00
Dane Everitt 9b4a0ed143 Add task toggle and delete 2016-09-05 17:13:22 -04:00
Dane Everitt 7529e961de Add back API (#80)
Re-implements the API after it was removed in the Laravel 5.3 upgrade.
2016-09-05 16:21:36 -04:00
Dane Everitt b02df8e610 Implement base notifications support (#77)
* initial implementation of notifications
* typehint UUID returns. Fixes that notifications bug
2016-09-05 12:00:56 -04:00
Dane Everitt b3ca8a3732 Fix password reset redirection path 2016-09-04 19:08:46 -04:00
Dane Everitt 5a07073e0a Fix a reading error when we added suspensions
Also remove excessie exception logging for these
2016-09-04 18:07:01 -04:00
Dane Everitt afb5011fbe Update to Laravel 5.3
[BREAKING] — REMOVES REMOTE API

A new API will need to be implemented properly using the new Laravel
Passport OAuth2 system. DingoAPI was becoming too unstable and
development wasn’t really moving along enough to continue to rely on it.
2016-09-03 17:09:00 -04:00
Dane Everitt 1ca07e665e Add support for viewing SFTP password in panel
requested in #74
closes #74
2016-09-02 19:26:48 -04:00
Dane Everitt 8e657a0bf0 Remove old 'active' column and replace some references with 'suspended' in place 2016-09-01 21:21:01 -04:00
Dane Everitt 38eae88bd0 Add support for suspension 2016-09-01 21:16:38 -04:00
Dane Everitt 3ca7e4d578 prevent daemon call until confirming DB has been updated
closes #71
2016-08-31 16:09:23 -04:00
Dane Everitt e8c175f385 Add IP Aliasing (#72)
* complete support for IP Alias's throughout panel

Includes a database change and probably better allocation handling
anyways

closes #37
2016-08-31 16:03:37 -04:00
Dane Everitt f1a3008a50 Fix display and subuser settings for databases 2016-08-17 17:36:06 -04:00
Dane Everitt 4d31004cf4 Suppress overly verbose error output to users 2016-08-16 19:20:58 -04:00
Dane Everitt 445b2f20eb closes #69 2016-08-16 19:06:03 -04:00
Dane Everitt 7c80588fd3 Allow IP if not using SSL 2016-08-16 18:45:22 -04:00
Dane Everitt 5233d6e87b Add database password change support and fix column name 2016-08-16 00:07:10 -04:00
Dane Everitt 67d9f9f4ab Improve scheduled task layout and data handling 2016-03-18 16:23:10 -04:00
Dane Everitt c1301c7190 Fix tasks to use proper cron syntax 2016-02-28 22:37:58 -05:00
Dane Everitt 51f4ea7d5d Minor queue fixes and add active option 2016-02-27 19:12:17 -05:00
Dane Everitt 1296d08dcb add basic scheduler and queue processing for tasks 2016-02-27 18:35:12 -05:00
Dane Everitt 84a7eec2e1 Fix all transaction try/catches, closes #57 2016-02-27 10:30:59 -05:00
Dane Everitt e7436aab2b Add active session management 2016-02-26 00:35:23 -05:00
Dane Everitt cad5b8c78d allow unlimited memory for server creation; closes #60 2016-02-21 01:18:30 -05:00
Dane Everitt f6be06164f fix user controller; closes #58, closes #59 2016-02-21 01:15:37 -05:00
Dane Everitt 48b9bc0c52 add support for variable creation and deletion 2016-02-21 00:38:03 -05:00
Dane Everitt dcf2f6fa0a fix up urls to follow a cleaner pattern 2016-02-21 00:07:03 -05:00
Dane Everitt dcfdb89e3c add support for deleting service option 2016-02-20 16:55:05 -05:00
Dane Everitt 1e9bf1c220 Add support for adding new service option 2016-02-20 16:45:13 -05:00
Dane Everitt 177bd4ec9d add ability to delete a service 2016-02-20 16:23:04 -05:00
Dane Everitt a50bb5da14 add ability to create new service 2016-02-20 16:02:49 -05:00
Dane Everitt e42547a1ff add support for editing service options 2016-02-20 15:59:37 -05:00
Dane Everitt ad5e253a07 Really basic initial implementation of service management 2016-02-15 15:21:28 -05:00
Dane Everitt 3266f220b9 should close #42; references #57 2016-02-14 21:49:00 -05:00
Dane Everitt 217762a2eb More complete implementation of database management in panel.
Still missing ability to change passwords for databases, but that will
come soon.
2016-02-14 21:43:20 -05:00
Dane Everitt a36f3dd875 Fix startup variable editing to allow admin full control 2016-02-13 17:36:03 -05:00
Dane Everitt a903ae313a Add per-service-option startup & executable
Also fixes display issue on front-end where users could see and edit
hidden settings
Fixes a bug in relation to #57
2016-02-13 17:29:52 -05:00
Dane Everitt 5678d643cd Very basic view of databases and database servers on the system 2016-02-13 00:18:32 -05:00
Dane Everitt 938df4023d Allow swap to be assigned as -1 2016-02-13 00:06:23 -05:00
Dane Everitt 7013d10987 Add basic support for per-server databases
Still missing ability to define database servers
2016-02-08 18:03:05 -05:00