Skip to content

Commit aec9349

Browse files
authored
[v0.4] Version release (#40)
## [0.4.0] - 2025-02-20 ### Added - Descriptions are now displayed for each setting when editing. - Automatic server renewal has been introduced. - Users can now upload an avatar in profile settings. - A configuration option has been added to specify the number of days after which suspended (unpaid) servers are removed. - SSO login support has been implemented for the Pterodactyl plugin. - An option to enable or disable SSO login for the Pterodactyl panel has been introduced. - Custom templates can now be created and uploaded. - Several buttons in the default template now feature icons. - A command for generating new templates has been added. - Hindi has been added as a supported language. ### Changed - The Settings tab has been redesigned and is now divided into five categories. - Settings are now displayed in a structured order. - JavaScript files controlling the panel’s behavior have been moved into dedicated JS files, making them dependent on the selected template. ### Fixed - Missing translations have been added.
1 parent df70dd1 commit aec9349

File tree

134 files changed

+3039
-497
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

134 files changed

+3039
-497
lines changed

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ Below are the currently supported versions of PteroCA with security updates:
66

77
| Version | Supported |
88
|---------|--------------------|
9+
| 0.4.x | :white_check_mark: |
910
| 0.3.x | :white_check_mark: |
1011
| 0.2.x | :white_check_mark: |
1112
| 0.1.x | :x: |
12-
| < 0.1 | :x: |
1313

1414

1515
## Reporting a Vulnerability

composer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "pteroca/panel",
33
"description": "PteroCA.com is a free, open-source client area and management panel designed specifically for Pterodactyl server users and hosting providers. The platform simplifies and automates server management with a user-friendly interface and robust billing features.",
4-
"version": "0.3.3",
4+
"version": "0.4.0",
55
"type": "project",
66
"license": "MIT",
77
"minimum-stability": "stable",
@@ -18,8 +18,10 @@
1818
"ext-iconv": "*",
1919
"doctrine/doctrine-migrations-bundle": "^3.3",
2020
"easycorp/easyadmin-bundle": "^4.8",
21+
"firebase/php-jwt": "^6.11",
2122
"lcobucci/jwt": "^5.3",
2223
"nyholm/psr7": "^1.8",
24+
"paragonie/sodium_compat": "^2.1",
2325
"rajentrivedi/tokenizer-x": "^1.0",
2426
"stripe/stripe-php": "^15.5",
2527
"symfony/cache": "^7.0",

composer.lock

Lines changed: 155 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20250125011948 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Add `context` column to `setting` table';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql('ALTER TABLE setting ADD context VARCHAR(255) DEFAULT NULL');
20+
21+
$this->addSql('UPDATE setting SET context = "general_settings" WHERE name IN ("site_url", "site_title", "site_locale", "pterodactyl_url", "pterodactyl_use_as_client_panel", "pterodactyl_api_key", "show_phpmyadmin_url", "phpmyadmin_url")');
22+
$this->addSql('UPDATE setting SET context = "email_settings" WHERE name IN ("smtp_server", "smtp_port", "smtp_username", "smtp_password", "smtp_from")');
23+
$this->addSql('UPDATE setting SET context = "payment_settings" WHERE name IN ("stripe_secret_key", "stripe_payment_methods", "internal_currency_name", "currency_name")');
24+
$this->addSql('UPDATE setting SET context = "theme_settings" WHERE name IN ("theme_default_primary_color", "theme_default_dark_primary_color", "customer_motd_enabled", "customer_motd_message", "customer_motd_title", "site_logo", "site_favicon")');
25+
$this->addSql('UPDATE setting SET context = "security_settings" WHERE name IN ("require_email_verification", "google_captcha_verification", "google_captcha_site_key", "google_captcha_secret_key", "terms_of_service")');
26+
}
27+
28+
public function down(Schema $schema): void
29+
{
30+
$this->addSql('ALTER TABLE setting DROP context');
31+
}
32+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20250126190537 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Add `auto_renewal` column to `server` table';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql('ALTER TABLE server ADD auto_renewal TINYINT(1) NOT NULL DEFAULT 0');
20+
}
21+
22+
public function down(Schema $schema): void
23+
{
24+
$this->addSql('ALTER TABLE server DROP auto_renewal');
25+
}
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20250127091507 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Add records to the `setting` table for the custom theme support';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql("INSERT INTO `setting` (`name`, `value`, `type`, `context`) VALUES ('current_theme', 'default', 'text', 'theme_settings')");
20+
}
21+
22+
public function down(Schema $schema): void
23+
{
24+
$this->addSql("DELETE FROM `setting` WHERE `name` = 'current_theme'");
25+
}
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20250204125527 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Add `avatar_path` column to `user` table';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql('ALTER TABLE user ADD avatar_path VARCHAR(255) DEFAULT NULL');
20+
}
21+
22+
public function down(Schema $schema): void
23+
{
24+
$this->addSql('ALTER TABLE user DROP avatar_path');
25+
}
26+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20250204135947 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Add new DELETE_SUSPENDED_SERVERS_DAYS_AFTER and DELETE_SUSPENDED_SERVERS_ENABLED setting';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql('INSERT INTO setting (name, value, type, context) VALUES (\'delete_suspended_servers_enabled\', \'1\', \'boolean\', \'general_settings\')');
20+
$this->addSql('INSERT INTO setting (name, value, type, context) VALUES (\'delete_suspended_servers_days_after\', \'30\', \'number\', \'general_settings\')');
21+
}
22+
23+
public function down(Schema $schema): void
24+
{
25+
$this->addSql('DELETE FROM setting WHERE name = \'delete_suspended_servers_enabled\'');
26+
$this->addSql('DELETE FROM setting WHERE name = \'delete_suspended_servers_days_after\'');
27+
}
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace DoctrineMigrations;
6+
7+
use Doctrine\DBAL\Schema\Schema;
8+
use Doctrine\Migrations\AbstractMigration;
9+
10+
final class Version20250211205333 extends AbstractMigration
11+
{
12+
public function getDescription(): string
13+
{
14+
return 'Add new PTERODACTYL_SSO_SECRET and PTERODACTYL_SSO_ENABLED settings';
15+
}
16+
17+
public function up(Schema $schema): void
18+
{
19+
$this->addSql('INSERT INTO setting (name, value, type, context) VALUES (\'pterodactyl_sso_enabled\', \'0\', \'boolean\', \'general_settings\')');
20+
$this->addSql('INSERT INTO setting (name, value, type, context) VALUES (\'pterodactyl_sso_secret\', \'\', \'secret\', \'general_settings\')');
21+
}
22+
23+
public function down(Schema $schema): void
24+
{
25+
$this->addSql('DELETE FROM setting WHERE name = \'pterodactyl_sso_enabled\'');
26+
$this->addSql('DELETE FROM setting WHERE name = \'pterodactyl_sso_secret\'');
27+
}
28+
}

0 commit comments

Comments
 (0)