Fixes for portal domain

This commit is contained in:
David Bomba 2021-07-07 13:19:19 +10:00
parent a38aa296a0
commit b15041f60b
2 changed files with 72 additions and 2 deletions

View File

@ -67,8 +67,8 @@ class UpdateCompanyRequest extends Request
{
$input = $this->all();
// if(array_key_exists('portal_domain', $input) && strlen($input['portal_domain']) > 1)
// $input['portal_domain'] = str_replace("http:", "https:", $input['portal_domain']);
if(array_key_exists('portal_domain', $input) && strlen($input['portal_domain']) > 1)
$input['portal_domain'] = $this->addScheme($input['portal_domain']);
if (array_key_exists('settings', $input)) {
$input['settings'] = $this->filterSaveableSettings($input['settings']);
@ -105,4 +105,15 @@ class UpdateCompanyRequest extends Request
return $settings;
}
private function addScheme($url, $scheme = 'https://')
{
$url = str_replace("http://", "", $url);
$url = parse_url($url, PHP_URL_SCHEME) === null ? $scheme . $url : $url;
return rtrim($url, '/');
}
}

59
tests/Unit/UrlTest.php Normal file
View File

@ -0,0 +1,59 @@
<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2021. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://opensource.org/licenses/AAL
*/
namespace Tests\Unit;
use Tests\TestCase;
/**
* @test
*/
class UrlTest extends TestCase
{
public function setUp() :void
{
parent::setUp();
}
public function testNoScheme()
{
$url = 'google.com';
$this->assertEquals("https://google.com", $this->addScheme($url));
}
public function testNoSchemeAndTrailingSlash()
{
$url = 'google.com/';
$this->assertEquals("https://google.com", $this->addScheme($url));
}
public function testNoSchemeAndTrailingSlashAndHttp()
{
$url = 'http://google.com/';
$this->assertEquals("https://google.com", $this->addScheme($url));
}
private function addScheme($url, $scheme = 'https://')
{
$url = str_replace("http://", "", $url);
$url = parse_url($url, PHP_URL_SCHEME) === null ? $scheme . $url : $url;
return rtrim($url, '/');
}
}