Fix unit tests

This commit is contained in:
Romain Neutron
2013-01-28 19:31:26 +01:00
parent 2fb0c60157
commit aa18c48306
43 changed files with 582 additions and 256 deletions

View File

@@ -238,7 +238,7 @@ class Export implements ControllerProviderInterface
$list = $download->prepare_export(
$app['phraseanet.user'],
$app['filesystem'],
$request->request->get('obj'),
(array) $request->request->get('obj'),
$request->request->get("type") == "title" ? : false,
$request->request->get('businessfields')
);
@@ -288,9 +288,9 @@ class Export implements ControllerProviderInterface
$receiver = new Receiver(null, trim($mail));
$mail = MailRecordsExport::create($app, $receiver, $emitter, $request->request->get('textmail'));
$mail->setUrl($url);
$mail->setEnddate($endDateObject);
$mail->setButtonUrl($url);
$mail->setExpiration($endDateObject);
try {
$app['notification.deliverer']->deliver($mail);
unset($remaingEmails[$key]);

View File

@@ -21,7 +21,6 @@ use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser;
use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser;
use Symfony\Component\Serializer\Serializer;
/**
* Upload controller collection
@@ -303,7 +302,7 @@ class Upload implements ControllerProviderInterface
foreach ($user->ACL()->get_granted_base(array('canaddrecord')) as $collection) {
$databox = $collection->get_databox();
if ( ! isset($collections[$databox->get_sbas_id()])) {
$collections[$databox->get_sbas_id()] = array(
'databox' => $databox,

View File

@@ -296,13 +296,13 @@ class Account implements ControllerProviderInterface
}
try {
$date = new DateTime('1 day');
$token = random::getUrlToken($app, \random::TYPE_EMAIL, $app['phraseanet.user']->get_id(), $date, $app['phraseanet.user']->get_email());
$date = new \DateTime('1 day');
$token = \random::getUrlToken($app, \random::TYPE_EMAIL, $app['phraseanet.user']->get_id(), $date, $app['phraseanet.user']->get_email());
$url = $app['phraseanet.registry']->get('GV_ServerName') . 'account/reset-email/?token=' . $token;
$receiver = Receiver::fromUser($app['phraseanet.user']);
$mail = MailRequestEmailUpdate::create($app, $receiver, null);
$mail->setUrl($url);
$mail->setButtonUrl($url);
$mail->setExpiration($date);
$app['notification.deliverer']->deliver($mail);

View File

@@ -287,17 +287,23 @@ class Login implements ControllerProviderInterface
\random::removeToken($app, $code);
if (\Swift_Validate::email($user->get_email())) {
if (count($user->ACL()->get_granted_base()) > 0) {
$mail = MailSuccessEmailConfirmationRegistered::create($app, Receiver::fromUser($user));
$app['notification.deliverer']->deliver($mail);
}
if (!\Swift_Validate::email($user->get_email())) {
return $app->redirect('/login/?redirect=prod&notice=invalid-email');
}
$user->set_mail_locked(false);
\random::removeToken($app, $code);
$user->set_mail_locked(false);
\random::removeToken($app, $code);
if (count($user->ACL()->get_granted_base()) > 0) {
$mail = MailSuccessEmailConfirmationRegistered::create($app, Receiver::fromUser($user));
$app['notification.deliverer']->deliver($mail);
return $app->redirect('/login/?redirect=prod&notice=confirm-ok');
} else {
$mail = MailSuccessEmailConfirmationUnregistered::create($app, Receiver::fromUser($user));
$app['notification.deliverer']->deliver($mail);
return $app->redirect('/login/?redirect=prod&notice=confirm-ok-wait');
}
}
@@ -328,13 +334,9 @@ class Login implements ControllerProviderInterface
$mail = MailRequestEmailConfirmation::create($app, Receiver::fromUser($user));
$mail->setButtonUrl($url);
$app['notification.deliverer']->deliver($mail);
try {
$app['notification.deliverer']->deliver($mail);
return $app->redirect($app['url_generator']->generate('login_forgot_password', array('sent' => 'ok')));
} catch (\Exception $e) {
return $app->redirect($app['url_generator']->generate('login_forgot_password', array('sent' => 'ok')));
}
return $app->redirect($app['url_generator']->generate('login_forgot_password', array('sent' => 'ok')));
}
}
@@ -632,82 +634,72 @@ class Login implements ControllerProviderInterface
}
}
try {
$user = \User_Adapter::create($app, $request->request->get('form_login'), $request->request->get("form_password"), $request->request->get("form_email"), false);
$user = \User_Adapter::create($app, $request->request->get('form_login'), $request->request->get("form_password"), $request->request->get("form_email"), false);
$user->set_gender($request->request->get('form_gender'))
->set_firstname($request->request->get('form_firstname'))
->set_lastname($request->request->get('form_lastname'))
->set_address($request->request->get('form_address'))
->set_zip($request->request->get('form_zip'))
->set_tel($request->request->get('form_phone'))
->set_fax($request->request->get('form_fax'))
->set_job($request->request->get('form_job'))
->set_company($request->request->get('form_company'))
->set_position($request->request->get('form_activity'))
->set_geonameid($request->request->get('form_geonameid'));
$user->set_gender($request->request->get('form_gender'))
->set_firstname($request->request->get('form_firstname'))
->set_lastname($request->request->get('form_lastname'))
->set_address($request->request->get('form_address'))
->set_zip($request->request->get('form_zip'))
->set_tel($request->request->get('form_phone'))
->set_fax($request->request->get('form_fax'))
->set_job($request->request->get('form_job'))
->set_company($request->request->get('form_company'))
->set_position($request->request->get('form_activity'))
->set_geonameid($request->request->get('form_geonameid'));
$demandOK = array();
$demandOK = array();
if (!!$app['phraseanet.registry']->get('GV_autoregister')) {
if (!!$app['phraseanet.registry']->get('GV_autoregister')) {
$template_user_id = \User_Adapter::get_usr_id_from_login($app, 'autoregister');
$template_user_id = \User_Adapter::get_usr_id_from_login($app, 'autoregister');
$template_user = \User_Adapter::getInstance($template_user_id, $app);
$template_user = \User_Adapter::getInstance($template_user_id, $app);
$base_ids = array();
$base_ids = array();
foreach (array_keys($inscOK) as $base_id) {
$base_ids[] = $base_id;
}
$user->ACL()->apply_model($template_user, $base_ids);
foreach (array_keys($inscOK) as $base_id) {
$base_ids[] = $base_id;
}
$autoReg = $user->ACL()->get_granted_base();
$appbox_register = new \appbox_register($app['phraseanet.appbox']);
foreach ($demands as $base_id) {
if (false === $inscOK[$base_id] || $user->ACL()->has_access_to_base($base_id)) {
continue;
}
$collection = \collection::get_from_base_id($app, $base_id);
$appbox_register->add_request($user, $collection);
unset($collection);
$demandOK[$base_id] = true;
}
$params = array(
'demand' => $demandOK,
'autoregister' => $autoReg,
'usr_id' => $user->get_id()
);
$app['events-manager']->trigger('__REGISTER_AUTOREGISTER__', $params);
$app['events-manager']->trigger('__REGISTER_APPROVAL__', $params);
$user->set_mail_locked(true);
try {
$expire = new \DateTime('+3 days');
$token = \random::getUrlToken($app, \random::TYPE_PASSWORD, $user->get_id(), $expire, $user->get_email());
$mail = MailRequestEmailConfirmation::create($app, Receiver::fromUser($user));
$mail->setButtonUrl($app['phraseanet.registry']->get('GV_ServerName') . "register-confirm/?code=" . $token);
$mail->setExpiration($expire);
$app['notification.deliverer']->deliver($mail);
return $app->redirect('/login/?notice=mail-sent');
} catch (\Exception $e) {
}
return $app->redirect(sprintf('/login/?usr=%d', $user->get_id()));
} catch (\Exception $e) {
return $app->redirect('/login/?error=unexpected');
$user->ACL()->apply_model($template_user, $base_ids);
}
$autoReg = $user->ACL()->get_granted_base();
$appbox_register = new \appbox_register($app['phraseanet.appbox']);
foreach ($demands as $base_id) {
if (false === $inscOK[$base_id] || $user->ACL()->has_access_to_base($base_id)) {
continue;
}
$collection = \collection::get_from_base_id($app, $base_id);
$appbox_register->add_request($user, $collection);
unset($collection);
$demandOK[$base_id] = true;
}
$params = array(
'demand' => $demandOK,
'autoregister' => $autoReg,
'usr_id' => $user->get_id()
);
$app['events-manager']->trigger('__REGISTER_AUTOREGISTER__', $params);
$app['events-manager']->trigger('__REGISTER_APPROVAL__', $params);
$user->set_mail_locked(true);
$expire = new \DateTime('+3 days');
$token = \random::getUrlToken($app, \random::TYPE_PASSWORD, $user->get_id(), $expire, $user->get_email());
$mail = MailRequestEmailConfirmation::create($app, Receiver::fromUser($user));
$mail->setButtonUrl($app['phraseanet.registry']->get('GV_ServerName') . "register-confirm/?code=" . $token);
$mail->setExpiration($expire);
$app['notification.deliverer']->deliver($mail);
return $app->redirect('/login/?notice=mail-sent');
}
/**

View File

@@ -3,6 +3,7 @@
namespace Alchemy\Phrasea\Core\Provider;
use Alchemy\Phrasea\Notification\Deliverer;
use Alchemy\Phrasea\Notification\Emitter;
use Silex\Application;
use Silex\ServiceProviderInterface;
@@ -10,8 +11,24 @@ class NotificationDelivererServiceProvider implements ServiceProviderInterface
{
public function register(Application $app)
{
$app['notification.default.emitter'] = $app->share(function (Application $app) {
return new Emitter(
$app['phraseanet.registry']->get('GV_defaulmailsenderaddr', 'no-reply@phraseanet.com'),
$app['phraseanet.registry']->get('GV_homeTitle', 'Phraseanet')
);
});
$app['notification.prefix'] = $app->share(function (Application $app) {
return $app['phraseanet.registry']->get('GV_email_prefix');
});
$app['notification.deliverer'] = $app->share(function($app) {
return new Deliverer($app['mailer'], $app['phraseanet.registry'], $app['dispatcher']);
return new Deliverer(
$app['mailer'],
$app['dispatcher'],
$app['notification.default.emitter'],
$app['notification.prefix']
);
});
}

View File

@@ -546,12 +546,8 @@ class Edit extends \Alchemy\Phrasea\Helper\Helper
$mailOldAddress = MailSuccessEmailUpdate::create($this->app, $oldReceiver, null, sprintf(_('You will now receive notifications at %s'), $new_email));
$mailNewAddress = MailSuccessEmailUpdate::create($this->app, $newReceiver, null, sprintf(_('You will no longer receive notifications at %s'), $old_email));
try {
$this->app['notification.deliverer']->deliver($mailOldAddress);
$this->app['notification.deliverer']->deliver($mailNewAddress);
} catch (\Exception $e) {
}
$this->app['notification.deliverer']->deliver($mailOldAddress);
$this->app['notification.deliverer']->deliver($mailNewAddress);
}
return $this;

View File

@@ -14,6 +14,7 @@ namespace Alchemy\Phrasea\Helper\User;
use Alchemy\Phrasea\Helper\Helper;
use Alchemy\Phrasea\Notification\Receiver;
use Alchemy\Phrasea\Notification\Mail\MailRequestPasswordSetup;
use Alchemy\Phrasea\Notification\Mail\MailSuccessEmailConfirmationUnregistered;
/**
*
@@ -183,7 +184,7 @@ class Manage extends Helper
if (false !== $urlToken) {
$mail = MailSuccessEmailConfirmationUnregistered::create($this->app, Receiver::fromUser($createdUser));
$mail->setUrl($this->app['url_generator']->generate('login_forgot_password', array('token' => $urlToken), true));
$mail->setButtonUrl($this->app['url_generator']->generate('login_forgot_password', array('token' => $urlToken), true));
$this->app['notification.deliverer']->deliver($mail);
}
}

View File

@@ -50,7 +50,10 @@ class Emitter implements EmitterInterface
public static function fromUser(\User_Adapter $user)
{
if (!\Swift_Validate::email($user->get_email())) {
throw new InvalidArgumentException(sprintf('User provided does not have a valid e-mail address'));
throw new InvalidArgumentException(sprintf(
'User provided does not have a valid e-mail address (%s)',
$user->get_email()
));
}
return new static($user->get_display_name(), $user->get_email());

View File

@@ -50,7 +50,10 @@ class Receiver implements ReceiverInterface
public static function fromUser(\User_Adapter $user)
{
if (!\Swift_Validate::email($user->get_email())) {
throw new InvalidArgumentException(sprintf('User provided does not have a valid e-mail address'));
throw new InvalidArgumentException(sprintf(
'User provided does not have a valid e-mail address (%s)',
$user->get_email()
));
}
return new static($user->get_display_name(), $user->get_email());

View File

@@ -36,7 +36,7 @@ class PhraseanetServiceProvider implements ServiceProviderInterface
$app['firewall'] = $app->share(function(SilexApplication $app) {
return new Firewall($app);
});
$app['events-manager'] = $app->share(function(SilexApplication $app) {
$events = new \eventsmanager_broker($app);
$events->start();