486 Commits

Author SHA1 Message Date
EgoMaw
2a8ebb7bf4 Update email validation to be strict (#5583)
fixes #5576

---------

Co-authored-by: MrSoulPenguin <28676680+MrSoulPenguin@users.noreply.github.com>
2026-05-31 16:27:31 -04:00
Carlton
33695c642d Fix transfer status permission checks (#5573) 2026-03-26 16:53:41 -07:00
Dane Everitt
a81c3b4d52 Add support for stripe-style identifiers on existing models with UUIDs (#5548)
This is a partial implementation to begin moving towards stripe-style
identifiers for resources in the system. Any models with an existing
`uuid` column can easily be updated to return an identifier in the
format of `prfx_xyz` where `prfx` is a four character prefix, and `xyz`
is the UUID, encoded using base-32.

These are quite easy to use within the API layer because we just need to
do one quick transformation to extract the UUID for those models. This
PR implements that logic for servers in the `SubstituteClientBindings`
logic.

A future PR will need to come through and handle identifiers for models
that _don't_ currently use UUIDs for reference that we want to expose to
clients. In those cases it is easier to just generate base-32 encoded
UUID7s that get stored in the database and indexed. They follow the same
base approach, but you don't need to do any transformations in the code
(other than stripping the prefix, unless we decide to store the prefix).

There is also now a `PTERODACTYL_USE_SERVER_IDENTIFIERS` environment
variable, that when set to true, updates the front-end and API response
to use this new identifier in place of the `uuidShort` value.
2026-02-14 11:21:57 -08:00
Dane Everitt
1570ff2509 Don't render raw HTML returned by the alert bag (#5475)
ref: https://github.com/pterodactyl/panel/security/advisories/GHSA-mgr9-6c2j-jxrq
2025-12-26 18:27:23 -08:00
Dane Everitt
a215f6d534 Don't be strict about upload size, so long as it is a positive integer (#5458) 2025-12-24 16:45:48 -08:00
Dane Everitt
895adb6e6f Ensure that a node description can be set, add additional test coverage (#5457) 2025-12-24 16:43:00 -08:00
Dane Everitt
a264791fd4 Update PHP and JS dependencies to latest versions and modernize codebase (#5446) 2025-12-20 15:55:13 -08:00
Fallen_Breath
9b703fb40f fix: timezone issue in Schedule::getNextRunDate (#5381) 2025-11-08 23:32:06 -07:00
Matthew Penner
8ca098940a chore: update composer dependencies (#5198)
Signed-off-by: Matthew Penner <me@matthewp.io>
2024-10-21 19:18:20 -06:00
Daniel Barton
371c7a671d api: fix docker_image validation for local images (#5103) 2024-05-21 13:29:31 -06:00
Matthew Penner
f671046947 admin: tweaks to validation and rendering 2024-04-10 18:13:25 -06:00
Matthew Penner
1172d71d31 app: improve docker_image validation 2024-04-10 17:22:29 -06:00
Matthew Penner
1d38b4f0e2 Laravel 10 (#4706) 2023-02-23 12:30:16 -07:00
Matthew Penner
428311e854 database: fix mail settings migration 2022-12-12 15:47:48 -07:00
Lance Pioch
a4f6870518 server: track reinstall failures differently from initial install failures (#4531) 2022-11-21 13:53:54 -07:00
Boy132
032e4f2e31 Apply node maintenance mode to servers (#4421) 2022-11-06 16:02:30 -07:00
Boy132
f2095e815e Allow users to change the server description (#4420) 2022-10-31 10:20:53 -06:00
Lance Pioch
548affba84 Fix linting (#4504) 2022-10-29 17:58:55 -06:00
Matthew Penner
7266c66ebf un-type getRulesForUpdate; fixes #4463 2022-10-23 18:14:50 -06:00
Matthew Penner
cbcf62086f Upgrade to Laravel 9 (#4413)
Co-authored-by: DaneEveritt <dane@daneeveritt.com>
2022-10-14 10:59:20 -06:00
Matthew Penner
815e1e4c4d Ensure server is not in a conflicting state before initiating a transfer (#4403) 2022-10-04 19:57:24 -06:00
Matthew Penner
68e9100e57 admin(eggs): add force_outgoing_ip option (#4323)
Closes #3841
2022-09-25 13:24:54 -06:00
Matthew Penner
8e1a21563e server: add configuration for install notifications (#4331)
* server: track `installed_at`, only send install notification on first install
* server: add configuration for install notifications
2022-09-25 13:16:58 -06:00
DaneEveritt
f8c48214a5 Track file uploads on Wings, not the panel 2022-07-24 17:13:17 -04:00
DaneEveritt
43156e8d53 Improve error messaging for validation exceptions 2022-06-26 16:31:48 -04:00
DaneEveritt
0520014c0f Add support for tracking when an activity event is triggered from an API key 2022-06-18 12:07:44 -04:00
DaneEveritt
92c1c162af Code cleanup for facades 2022-06-18 12:07:32 -04:00
DaneEveritt
2f1c8ae91d Add basic server activity log view 2022-06-12 15:16:48 -04:00
DaneEveritt
d1da46c5aa Fix incorrect API definitions 2022-06-05 18:28:08 -04:00
DaneEveritt
a5521ecb79 Add support for returning transforming activity logs on the front-end 2022-05-29 20:34:48 -04:00
DaneEveritt
e15985ea39 Add support for automatically pruning activity logs 2022-05-29 19:45:00 -04:00
DaneEveritt
9b7af02690 Add activity logging to most of the endpoints 2022-05-29 19:26:28 -04:00
DaneEveritt
287fd60891 Log activity when modifying account details 2022-05-29 18:48:35 -04:00
DaneEveritt
0b2c0db170 Remove last references to audit logs 2022-05-29 18:20:54 -04:00
DaneEveritt
0621d8475d Return tests to passing now that we don't ignore a critical event... 2022-05-29 17:52:14 -04:00
DaneEveritt
09832cc558 Ensure we can properly create an activity log entry; always return soft-deleted models 2022-05-29 17:07:54 -04:00
DaneEveritt
2fc5a734f9 Update backup logic to use activity logs, not audit logs 2022-05-29 16:19:04 -04:00
DaneEveritt
cbecfff6da Add activity logging for files 2022-05-29 13:56:39 -04:00
DaneEveritt
0999ad7ff0 Add activity logging for authentication events 2022-05-28 17:03:58 -04:00
DaneEveritt
5bb66a00d8 Add new activity logging code to replace audit log 2022-05-28 15:36:26 -04:00
DaneEveritt
b051718afe Fix up API handling logic for keys and set a prefix on all keys 2022-05-22 19:03:51 -04:00
DaneEveritt
f7fc67344e Ensure tokens are found in the database using the expected logic 2022-05-22 16:05:58 -04:00
DaneEveritt
bd37978a98 Initial pass at implementing Laravel Sanctum for authorization on the API 2022-05-22 14:57:06 -04:00
DaneEveritt
e313dff674 Massively simplify API binding logic
Changes the API internals to use normal Laravel binding which automatically supports nested-models and can determine their relationships. This removes a lot of confusingly complex internal logic and replaces it with standard Laravel code.

This also removes a deprecated "getModel" method and fully replaces it with a "parameter" method that does stricter type-checking.
2022-05-22 14:10:01 -04:00
DaneEveritt
6554164252 Add test coverage for the SSH key endpoints 2022-05-14 18:08:48 -04:00
DaneEveritt
97280a62a2 Add support for storing SSH keys on user accounts 2022-05-14 17:31:53 -04:00
DaneEveritt
5705d7dbdd Run php-cs-fixer 2022-05-14 16:03:50 -04:00
DaneEveritt
c8faf64059 Support naming docker images on eggs; closes #4052
Bumps PTDL_v1 export images to PTDL_v2, updates the Minecraft specific eggs to use named images.
2022-05-07 17:45:22 -04:00
DaneEveritt
e88d24e0db Don't allow allocations to be deleted by users if no limit is defined; closes #3703 2022-05-07 15:05:28 -04:00
DaneEveritt
c751ce7f44 Allow more values for remote field when creating a database; closes #3842 2022-05-07 14:17:10 -04:00