diff --git a/lib/classes/Controller/Setup/Upgrader.class.php b/lib/classes/Controller/Setup/Upgrader.class.php index 9dc1a2f2fb..a3928baf45 100644 --- a/lib/classes/Controller/Setup/Upgrader.class.php +++ b/lib/classes/Controller/Setup/Upgrader.class.php @@ -49,6 +49,7 @@ class Controller_Setup_Upgrader implements ControllerProviderInterface 'locale' => Session_Handler::get_locale() , 'upgrade_status' => $upgrade_status , 'available_locales' => $app['available_languages'] + , 'bad_users' => User_Adapter::get_wrong_email_users(appbox::get_instance()) , 'version_number' => GV_version , 'version_name' => GV_version_name) ); diff --git a/lib/classes/Exception/Setup/FixBadEmailAddresses.class.php b/lib/classes/Exception/Setup/FixBadEmailAddresses.class.php new file mode 100644 index 0000000000..659d857471 --- /dev/null +++ b/lib/classes/Exception/Setup/FixBadEmailAddresses.class.php @@ -0,0 +1,21 @@ +appbox = $appbox; + + if(count(User_Adapter::get_wrong_email_users($appbox)) > 0) + { + throw new Exception_Setup_FixBadEmailAddresses(); + } + $this->write_lock(); return $this; diff --git a/lib/classes/module/console/systemUpgrade.class.php b/lib/classes/module/console/systemUpgrade.class.php index 48e68b864c..529d15c3c7 100644 --- a/lib/classes/module/console/systemUpgrade.class.php +++ b/lib/classes/module/console/systemUpgrade.class.php @@ -59,6 +59,12 @@ class module_console_systemUpgrade extends Command { $output->write('Upgrading...', true); $appbox = appbox::get_instance(); + + if(count(User_Adapter::get_wrong_email_users($appbox)) > 0) + { + return $output->writeln(sprintf('You have to fix your database before upgrade with the system:mailCheck command ')); + } + $upgrader = new Setup_Upgrade($appbox); $advices = $appbox->forceUpgrade($upgrader); } diff --git a/templates/web/setup/upgrader.twig b/templates/web/setup/upgrader.twig index 2d0211e217..d2169475c4 100644 --- a/templates/web/setup/upgrader.twig +++ b/templates/web/setup/upgrader.twig @@ -40,7 +40,6 @@ {% endif %} $(document).ready(function(){ - console.log('hello update_button'); $('.update_button').bind('click', function(){ $(this).attr('disabled','disbaled'); $('.upgrade_loader').show(); @@ -70,24 +69,36 @@ {% if not upgrade_status.active %} -

- {% trans 'Une mise a jour de l\'application est necessaire, il est vivement recommande de l\'effectuer en ligne de commande via la commande :' %} -

-

- - {{registry.get('GV_cli')}} {% if registry.get('GV_PHP_INI') %} -c {{registry.get('GV_PHP_INI')}}{% endif %} bin/upgrade.php - -

-

- {% trans 'Si toutefois vous n\'aviez pas acces à la console, suivez le lien suivant' %} -

-

-

- - -
- -

+ {% if bad_users|length > 0 %} +

+ {% trans 'Before any upgrade, you have to fix your database.' %} + {% trans 'Some users have the same email address. You can fix this problem with this script :' %} +

+

+ + {{registry.get('GV_cli')}} {% if registry.get('GV_PHP_INI') %} -c {{registry.get('GV_PHP_INI')}}{% endif %} bin/console system:mailCheck + +

+ {% else %} +

+ {% trans 'Une mise a jour de l\'application est necessaire, il est vivement recommande de l\'effectuer en ligne de commande via la commande :' %} +

+

+ + {{registry.get('GV_cli')}} {% if registry.get('GV_PHP_INI') %} -c {{registry.get('GV_PHP_INI')}}{% endif %} bin/console system:upgrade + +

+

+ {% trans 'Si toutefois vous n\'aviez pas acces à la console, suivez le lien suivant' %} +

+

+

+ + +
+ +

+ {% endif %} {% else %}

{% trans 'Progression de la mise a jour : ' %}