mirror of
https://github.com/shlinkio/shlink.git
synced 2024-11-27 16:26:37 +03:00
Added new app config param to allow disabling short URL visits tracking
This commit is contained in:
parent
ce9d6642d4
commit
5fd34e03fc
4 changed files with 38 additions and 6 deletions
|
@ -24,14 +24,21 @@ class ApplicationConfigCustomizer implements ConfigCustomizerInterface
|
|||
return;
|
||||
}
|
||||
|
||||
$validator = function ($value) {
|
||||
return $value;
|
||||
};
|
||||
$appConfig->setApp([
|
||||
'SECRET' => $io->ask(
|
||||
'Define a secret string that will be used to sign API tokens (leave empty to autogenerate one)',
|
||||
null,
|
||||
function ($value) {
|
||||
return $value;
|
||||
}
|
||||
$validator
|
||||
) ?: $this->generateRandomString(32),
|
||||
'DISABLE_TRACK_PARAM' => $io->ask(
|
||||
'Provide a parameter name that you will be able to use to disable tracking on specific request to '
|
||||
. 'short URLs (leave empty and this feature won\'t be enabled)',
|
||||
null,
|
||||
$validator
|
||||
),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -225,6 +225,7 @@ final class CustomizableAppConfig implements ArraySerializableInterface
|
|||
$config = [
|
||||
'app_options' => [
|
||||
'secret_key' => $this->app['SECRET'],
|
||||
'disable_track_param' => $this->app['DISABLE_TRACK_PARAM'],
|
||||
],
|
||||
'entity_manager' => [
|
||||
'connection' => [
|
||||
|
|
|
@ -34,7 +34,7 @@ class ApplicationConfigCustomizerTest extends TestCase
|
|||
*/
|
||||
public function configIsRequestedToTheUser()
|
||||
{
|
||||
$askSecret = $this->io->ask(Argument::cetera())->willReturn('the_secret');
|
||||
$ask = $this->io->ask(Argument::cetera())->willReturn('the_secret');
|
||||
$config = new CustomizableAppConfig();
|
||||
|
||||
$this->plugin->process($this->io->reveal(), $config);
|
||||
|
@ -42,8 +42,9 @@ class ApplicationConfigCustomizerTest extends TestCase
|
|||
$this->assertTrue($config->hasApp());
|
||||
$this->assertEquals([
|
||||
'SECRET' => 'the_secret',
|
||||
'DISABLE_TRACK_PARAM' => 'the_secret',
|
||||
], $config->getApp());
|
||||
$askSecret->shouldHaveBeenCalledTimes(1);
|
||||
$ask->shouldHaveBeenCalledTimes(2);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -62,8 +63,9 @@ class ApplicationConfigCustomizerTest extends TestCase
|
|||
|
||||
$this->assertEquals([
|
||||
'SECRET' => 'the_new_secret',
|
||||
'DISABLE_TRACK_PARAM' => 'the_new_secret',
|
||||
], $config->getApp());
|
||||
$ask->shouldHaveBeenCalledTimes(1);
|
||||
$ask->shouldHaveBeenCalledTimes(2);
|
||||
$confirm->shouldHaveBeenCalledTimes(1);
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,10 @@ class AppOptions extends AbstractOptions
|
|||
* @var string
|
||||
*/
|
||||
protected $secretKey = '';
|
||||
/**
|
||||
* @var string|null
|
||||
*/
|
||||
protected $disableTrackParam;
|
||||
|
||||
/**
|
||||
* AppOptions constructor.
|
||||
|
@ -86,6 +90,24 @@ class AppOptions extends AbstractOptions
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string|null
|
||||
*/
|
||||
public function getDisableTrackParam()
|
||||
{
|
||||
return $this->disableTrackParam;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $disableTrackParam
|
||||
* @return $this|self
|
||||
*/
|
||||
protected function setDisableTrackParam($disableTrackParam): self
|
||||
{
|
||||
$this->disableTrackParam = $disableTrackParam;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue