Support of multiple instance

This commit is contained in:
Cengizhan Çalışkan 2017-03-19 18:40:34 +03:00
parent 045ba7e67e
commit 25b8840f2a
2 changed files with 6 additions and 3 deletions

View File

@ -47,6 +47,7 @@ class Configuration implements ConfigurationInterface
->arrayNode('background_images')->prototype('scalar')->end()->end()
->scalarNode('disabled')->defaultValue(false)->end()
->scalarNode('ignore_all_effects')->defaultValue(false)->end()
->scalarNode('session_key')->defaultValue('captcha')->end()
->end()
;

View File

@ -22,6 +22,8 @@ use Gregwar\CaptchaBundle\Generator\CaptchaGenerator;
*/
class CaptchaType extends AbstractType
{
const SESSION_KEY_PREFIX = '_captcha/';
/**
* @var SessionInterface
*/
@ -53,7 +55,7 @@ class CaptchaType extends AbstractType
{
$this->session = $session;
$this->generator = $generator;
$this->translator = $translator;
$this->translator = $translator;
$this->options = $options;
}
@ -65,7 +67,7 @@ class CaptchaType extends AbstractType
$validator = new CaptchaValidator(
$this->translator,
$this->session,
sprintf('gcb_%s', $builder->getForm()->getName()),
sprintf('%s%s', self::SESSION_KEY_PREFIX, $options['session_key']),
$options['invalid_message'],
$options['bypass_code'],
$options['humanity']
@ -83,7 +85,7 @@ class CaptchaType extends AbstractType
throw new \InvalidArgumentException('GregwarCaptcha: The reload option cannot be set without as_url, see the README for more information');
}
$sessionKey = sprintf('gcb_%s', $form->getName());
$sessionKey = sprintf('%s%s', self::SESSION_KEY_PREFIX, $options['session_key']);
$isHuman = false;
if ($options['humanity'] > 0) {