From a4280a6fba9937d9adab40c80e769e6df751b31e Mon Sep 17 00:00:00 2001 From: IceToast Date: Wed, 3 May 2023 15:17:13 +0200 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Path=20seperator=20re?= =?UTF-8?q?placement=20->=20be=20filesystem=20aware?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Helpers/ExtensionHelper.php | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/app/Helpers/ExtensionHelper.php b/app/Helpers/ExtensionHelper.php index 6b59c1e4..117e54e3 100644 --- a/app/Helpers/ExtensionHelper.php +++ b/app/Helpers/ExtensionHelper.php @@ -18,8 +18,9 @@ class ExtensionHelper foreach ($extensionNamespaces as $extensionNamespace) { $extensions = array_merge($extensions, glob($extensionNamespace . '/*', GLOB_ONLYDIR)); } + // remove base path from every extension but keep app/Extensions/... - $extensions = array_map(fn ($item) => str_replace('/', '\\', str_replace(app_path() . '/', 'App/', $item)), $extensions); + $extensions = array_map(fn ($item) => str_replace(app_path() . '/', 'App/', $item), $extensions); return $extensions; } @@ -33,7 +34,7 @@ class ExtensionHelper { $extensions = glob(app_path() . '/Extensions/' . $namespace . '/*', GLOB_ONLYDIR); // remove base path from every extension but keep app/Extensions/... - $extensions = array_map(fn ($item) => str_replace('/', '\\', str_replace(app_path() . '/', 'App/', $item)), $extensions); + $extensions = array_map(fn ($item) => str_replace(app_path() . '/', 'App/', $item), $extensions); return $extensions; } @@ -60,6 +61,9 @@ class ExtensionHelper public static function getAllExtensionClasses() { $extensions = self::getAllExtensions(); + + // replace all slashes with backslashes + $extensions = array_map(fn ($item) => str_replace('/', '\\', $item), $extensions); // add the ExtensionClass to the end of the namespace $extensions = array_map(fn ($item) => $item . '\\' . basename($item) . 'Extension', $extensions); // filter out non existing extension classes @@ -76,6 +80,9 @@ class ExtensionHelper public static function getAllExtensionClassesByNamespace(string $namespace) { $extensions = self::getAllExtensionsByNamespace($namespace); + + // replace all slashes with backslashes + $extensions = array_map(fn ($item) => str_replace('/', '\\', $item), $extensions); // add the ExtensionClass to the end of the namespace $extensions = array_map(fn ($item) => $item . '\\' . basename($item) . 'Extension', $extensions); // filter out non existing extension classes @@ -177,10 +184,13 @@ class ExtensionHelper { $extensions = self::getAllExtensions(); + $settings = []; foreach ($extensions as $extension) { - $extensionName = basename($extension); + + // replace all slashes with backslashes + $extension = str_replace('/', '\\', $extension); $settingsClass = $extension . '\\' . $extensionName . 'Settings'; if (class_exists($settingsClass)) { $settings[] = $settingsClass; @@ -193,6 +203,9 @@ class ExtensionHelper public static function getExtensionSettings(string $extensionName) { $extension = self::getExtension($extensionName); + // replace all slashes with backslashes + $extension = str_replace('/', '\\', $extension); + $settingClass = $extension . '\\' . $extensionName . 'Settings'; if (class_exists($settingClass)) { @@ -207,6 +220,6 @@ class ExtensionHelper */ private static function extensionNameToPath(string $extensionName) { - return app_path() . '/' . str_replace('\\', '/', str_replace('App\\', '', $extensionName)); + return app_path() . '/' . str_replace('App/', '', $extensionName); } } From 7754041532ca55f534ba17dd92bdff6519ce0b3c Mon Sep 17 00:00:00 2001 From: IceToast Date: Wed, 3 May 2023 15:17:35 +0200 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=F0=9F=90=9B=20hotfix=20migrations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../migrations/2023_03_04_135248_create_pay_pal_settings.php | 4 ++++ .../migrations/2023_03_04_181917_create_stripe_settings.php | 4 ++++ database/migrations/2023_04_03_231829_update_users_table.php | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/Extensions/PaymentGateways/PayPal/migrations/2023_03_04_135248_create_pay_pal_settings.php b/app/Extensions/PaymentGateways/PayPal/migrations/2023_03_04_135248_create_pay_pal_settings.php index 5792abec..db7d0bdd 100644 --- a/app/Extensions/PaymentGateways/PayPal/migrations/2023_03_04_135248_create_pay_pal_settings.php +++ b/app/Extensions/PaymentGateways/PayPal/migrations/2023_03_04_135248_create_pay_pal_settings.php @@ -77,6 +77,10 @@ class CreatePayPalSettings extends SettingsMigration // Always get the first value of the key. $old_value = DB::table('settings_old')->where('key', '=', $key)->get(['value', 'type'])->first(); + if (is_null($old_value)) { + return null; + } + // Handle the old values to return without it being a string in all cases. if ($old_value->type === "string" || $old_value->type === "text") { if (is_null($old_value->value)) { diff --git a/app/Extensions/PaymentGateways/Stripe/migrations/2023_03_04_181917_create_stripe_settings.php b/app/Extensions/PaymentGateways/Stripe/migrations/2023_03_04_181917_create_stripe_settings.php index a8145a7c..0ed72922 100644 --- a/app/Extensions/PaymentGateways/Stripe/migrations/2023_03_04_181917_create_stripe_settings.php +++ b/app/Extensions/PaymentGateways/Stripe/migrations/2023_03_04_181917_create_stripe_settings.php @@ -75,6 +75,10 @@ class CreateStripeSettings extends SettingsMigration // Always get the first value of the key. $old_value = DB::table('settings_old')->where('key', '=', $key)->get(['value', 'type'])->first(); + if (is_null($old_value)) { + return null; + } + // Handle the old values to return without it being a string in all cases. if ($old_value->type === "string" || $old_value->type === "text") { if (is_null($old_value->value)) { diff --git a/database/migrations/2023_04_03_231829_update_users_table.php b/database/migrations/2023_04_03_231829_update_users_table.php index 3caf98aa..20ca2607 100644 --- a/database/migrations/2023_04_03_231829_update_users_table.php +++ b/database/migrations/2023_04_03_231829_update_users_table.php @@ -26,7 +26,8 @@ return new class extends Migration public function down() { Schema::table('users', function (Blueprint $table) { - $table->integer('pterodactyl_id')->nullable->change(); + // make the column nullable again + $table->integer('pterodactyl_id')->nullable()->change(); }); } };