Commit 82310a2e authored by Yassine Doghri's avatar Yassine Doghri
Browse files

fix(platforms): convert special characters to htmlentities to validate url

remove validate_url custom validator and replace with CI4's valid_url_strict
parent 67b6e30d
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -5,7 +5,6 @@ declare(strict_types=1);
namespace Config;

use App\Validation\FileRules as AppFileRules;
use App\Validation\Rules as AppRules;
use CodeIgniter\Config\BaseConfig;
use CodeIgniter\Validation\CreditCardRules;
use CodeIgniter\Validation\FileRules;
@@ -24,7 +23,6 @@ class Validation extends BaseConfig
        FormatRules::class,
        FileRules::class,
        CreditCardRules::class,
        AppRules::class,
        AppFileRules::class,
    ];

app/Validation/Rules.php

deleted100644 → 0
+0 −28
Original line number Diff line number Diff line
<?php

declare(strict_types=1);

/**
 * @copyright  2020 Ad Aures
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html AGPL3
 * @link       https://castopod.org/
 */

namespace App\Validation;

class Rules
{
    /**
     * Checks a URL to ensure it's formed correctly.
     */
    public function validate_url(string $str = null): bool
    {
        if ($str === null) {
            return false;
        }

        return filter_var($str, FILTER_VALIDATE_URL) !== false;
    }

    //--------------------------------------------------------------------
}
+1 −1
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ class PodcastImportController extends BaseController

        $rules = [
            'handle' => 'required|regex_match[/^[a-zA-Z0-9\_]{1,32}$/]',
            'imported_feed_url' => 'required|validate_url',
            'imported_feed_url' => 'required|valid_url_strict',
            'season_number' => 'is_natural_no_zero|permit_empty',
            'max_episodes' => 'is_natural_no_zero|permit_empty',
        ];
+1 −1
Original line number Diff line number Diff line
@@ -75,7 +75,7 @@ class PodcastPlatformController extends BaseController
                continue;
            }

            if (! $validation->check($podcastPlatformUrl, 'validate_url')) {
            if (! $validation->check(htmlentities($podcastPlatformUrl), 'valid_url_strict')) {
                continue;
            }

+0 −2
Original line number Diff line number Diff line
@@ -13,6 +13,4 @@ return [
        '{field} is either not an image, or it is not wide or tall enough.',
    'is_image_ratio' =>
        '{field} is either not an image or not of the right ratio.',
    'validate_url' =>
        'The {field} field must be a valid URL (eg. https://example.com/).',
];
Loading