mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-09 19:13:26 +00:00
Fix tests
This commit is contained in:
@@ -61,7 +61,7 @@ class RegenerateSqliteDb extends Command
|
||||
|
||||
if (is_file($source)) {
|
||||
$renamed = true;
|
||||
$fs->rename($source, $target);
|
||||
$fs->rename($source, $target, true);
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -92,10 +92,11 @@ class RegenerateSqliteDb extends Command
|
||||
$this->insertLazaretFiles($this->container['EM'], $DI);
|
||||
$this->insertAuthFailures($this->container['EM'], $DI);
|
||||
|
||||
$fixtures['user']['test_phpunit'] = $DI['user']->get_id();
|
||||
$fixtures['user']['test_phpunit_not_admin'] = $DI['user_notAdmin']->get_id();
|
||||
$fixtures['user']['test_phpunit_alt1'] = $DI['user_alt1']->get_id();
|
||||
$fixtures['user']['test_phpunit_alt2'] = $DI['user_alt2']->get_id();
|
||||
$fixtures['user']['test_phpunit'] = $DI['user']->getId();
|
||||
$fixtures['user']['test_phpunit_not_admin'] = $DI['user_notAdmin']->getId();
|
||||
$fixtures['user']['test_phpunit_alt1'] = $DI['user_alt1']->getId();
|
||||
$fixtures['user']['test_phpunit_alt2'] = $DI['user_alt2']->getId();
|
||||
$fixtures['user']['user_guest'] = $DI['user_guest']->getId();
|
||||
|
||||
$fixtures['oauth']['user'] = $DI['app-user']->get_id();
|
||||
$fixtures['oauth']['user_notAdmin'] = $DI['app-user_notAdmin']->get_id();
|
||||
@@ -134,9 +135,7 @@ class RegenerateSqliteDb extends Command
|
||||
} catch (\Exception $e) {
|
||||
$output->writeln("<error>".$e->getMessage()."</error>");
|
||||
if ($renamed) {
|
||||
if (is_file($source)) {
|
||||
unlink($source);
|
||||
}
|
||||
$fs->remove($source);
|
||||
$fs->rename($target, $source);
|
||||
}
|
||||
throw $e;
|
||||
@@ -145,11 +144,6 @@ class RegenerateSqliteDb extends Command
|
||||
$fs->remove($target);
|
||||
$fs->dumpFile($json, json_encode($fixtures, defined('JSON_PRETTY_PRINT') ? JSON_PRETTY_PRINT : 0));
|
||||
|
||||
$this->container['manipulator.user']->createUser('test_phpunit', 'test_phpunit', 'noone@example.com', true);
|
||||
$this->container['manipulator.user']->createUser('test_phpunit_not_admin', 'test_phpunit_not_admin', 'noone_not_admin@example.com');
|
||||
$this->container['manipulator.user']->createUser('test_phpunit_alt1', 'test_phpunit_alt1', 'noonealt1@example.com');
|
||||
$this->container['manipulator.user']->createUser('test_phpunit_alt2', 'test_phpunit_alt2', 'noonealt2@example.com');
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -210,6 +204,7 @@ class RegenerateSqliteDb extends Command
|
||||
$DI['user_alt1'] = $this->getUserAlt1();
|
||||
$DI['user_alt2'] = $this->getUserAlt2();
|
||||
$DI['user_notAdmin'] = $this->getUserNotAdmin();
|
||||
$DI['user_guest'] = $this->getUserGuest();
|
||||
|
||||
$user1 = $this->insertOneUser('user1');
|
||||
$user2 = $this->insertOneUser('user2', 'user2@phraseanet.com');
|
||||
@@ -327,44 +322,53 @@ class RegenerateSqliteDb extends Command
|
||||
|
||||
private function getUser()
|
||||
{
|
||||
if (false === $usr_id = \User_Adapter::get_usr_id_from_login($this->container, 'test_phpunit')) {
|
||||
return \User_Adapter::create($this->container, 'test_phpunit', \random::generatePassword(), 'noone@example.com', false);
|
||||
if (null === $user = $this->container['manipulator.user']->getRepository()->findByLogin('test_phpunit')) {
|
||||
$user = $this->container['manipulator.user']->createUser('test_phpunit', \random::generatePassword(), 'noone@example.com', true);
|
||||
}
|
||||
|
||||
return \User_Adapter::getInstance($usr_id, $this->container);
|
||||
return $user;
|
||||
}
|
||||
|
||||
private function getUserAlt1()
|
||||
{
|
||||
if (false === $usr_id = \User_Adapter::get_usr_id_from_login($this->container, 'test_phpunit_alt1')) {
|
||||
return \User_Adapter::create($this->container, 'test_phpunit_alt1', \random::generatePassword(), 'noonealt1@example.com', false);
|
||||
if (null === $user = $this->container['manipulator.user']->getRepository()->findByLogin('test_phpunit_alt1')) {
|
||||
$user = $this->container['manipulator.user']->createUser('test_phpunit_alt1', \random::generatePassword(), 'noonealt1@example.com', false);
|
||||
}
|
||||
|
||||
return \User_Adapter::getInstance($usr_id, $this->container);
|
||||
return $user;
|
||||
}
|
||||
|
||||
private function getUserAlt2()
|
||||
{
|
||||
if (false === $usr_id = \User_Adapter::get_usr_id_from_login($this->container, 'test_phpunit_alt2')) {
|
||||
return \User_Adapter::create($this->container, 'test_phpunit_alt2', \random::generatePassword(), 'noonealt2@example.com', false);
|
||||
if (null === $user = $this->container['manipulator.user']->getRepository()->findByLogin('test_phpunit_alt2')) {
|
||||
$user = $this->container['manipulator.user']->createUser('test_phpunit_alt2', \random::generatePassword(), 'noonealt2@example.com', false);
|
||||
}
|
||||
|
||||
return \User_Adapter::getInstance($usr_id, $this->container);
|
||||
return $user;
|
||||
}
|
||||
|
||||
public function getUserNotAdmin()
|
||||
{
|
||||
if (false === $usr_id = \User_Adapter::get_usr_id_from_login($this->container, 'test_phpunit_not_admin')) {
|
||||
return \User_Adapter::create($this->container, 'test_phpunit_not_admin', \random::generatePassword(), 'noone_not_admin@example.com', false);
|
||||
if (null === $user = $this->container['manipulator.user']->getRepository()->findByLogin('test_phpunit_not_admin')) {
|
||||
$user = $this->container['manipulator.user']->createUser('test_phpunit_not_admin', \random::generatePassword(), 'noone_not_admin@example.com', false);
|
||||
}
|
||||
|
||||
return \User_Adapter::getInstance($usr_id, $this->container);
|
||||
return $user;
|
||||
}
|
||||
|
||||
public function getUserGuest()
|
||||
{
|
||||
if (null === $user = $this->container['manipulator.user']->getRepository()->findByLogin(User::USER_GUEST)) {
|
||||
$user = $this->container['manipulator.user']->createUser(User::USER_GUEST, User::USER_GUEST);
|
||||
}
|
||||
|
||||
return $user;
|
||||
}
|
||||
|
||||
private function insertTwoBasket(EntityManager $em, \Pimple $DI)
|
||||
{
|
||||
$basket1 = new Basket();
|
||||
$basket1->setOwner($this->getUser());
|
||||
$basket1->setUser($this->getUser());
|
||||
$basket1->setName('test');
|
||||
$basket1->setDescription('description test');
|
||||
|
||||
@@ -374,12 +378,12 @@ class RegenerateSqliteDb extends Command
|
||||
$element->setBasket($basket1);
|
||||
|
||||
$basket2 = new Basket();
|
||||
$basket2->setOwner($this->getUser());
|
||||
$basket2->setUser($this->getUser());
|
||||
$basket2->setName('test');
|
||||
$basket2->setDescription('description test');
|
||||
|
||||
$basket3 = new Basket();
|
||||
$basket3->setOwner($this->getUserAlt1());
|
||||
$basket3->setUser($this->getUserAlt1());
|
||||
$basket3->setName('test');
|
||||
$basket3->setDescription('description test');
|
||||
|
||||
@@ -391,7 +395,7 @@ class RegenerateSqliteDb extends Command
|
||||
$basket4 = new Basket();
|
||||
$basket4->setName('test');
|
||||
$basket4->setDescription('description');
|
||||
$basket4->setOwner($this->getUser());
|
||||
$basket4->setUser($this->getUser());
|
||||
|
||||
foreach ([$DI['record_1'], $DI['record_2']] as $record) {
|
||||
$basketElement = new BasketElement();
|
||||
@@ -495,7 +499,7 @@ class RegenerateSqliteDb extends Command
|
||||
|
||||
$user = $DI['user'];
|
||||
|
||||
$publisher->setUsrId($user->get_id());
|
||||
$publisher->setUser($user);
|
||||
$publisher->setIsOwner(true);
|
||||
$publisher->setFeed($feed);
|
||||
|
||||
@@ -518,7 +522,7 @@ class RegenerateSqliteDb extends Command
|
||||
|
||||
$user = $DI['user'];
|
||||
|
||||
$publisher->setUsrId($user->get_id());
|
||||
$publisher->setUser($user);
|
||||
$publisher->setIsOwner(true);
|
||||
$publisher->setFeed($feed);
|
||||
|
||||
@@ -541,7 +545,7 @@ class RegenerateSqliteDb extends Command
|
||||
|
||||
$user = $DI['user_alt1'];
|
||||
|
||||
$publisher->setUsrId($user->get_id());
|
||||
$publisher->setUser($user);
|
||||
$publisher->setIsOwner(true);
|
||||
$publisher->setFeed($feed);
|
||||
|
||||
@@ -585,7 +589,7 @@ class RegenerateSqliteDb extends Command
|
||||
$token = new FeedToken();
|
||||
$token->setValue($this->container['tokens']->generatePassword(12));
|
||||
$token->setFeed($feed);
|
||||
$token->setUsrId($DI['user']->get_id());
|
||||
$token->setUser($DI['user']);
|
||||
|
||||
$feed->addToken($token);
|
||||
|
||||
@@ -599,7 +603,7 @@ class RegenerateSqliteDb extends Command
|
||||
|
||||
$token = new AggregateToken();
|
||||
$token->setValue($this->container['tokens']->generatePassword(12));
|
||||
$token->setUsrId($user->get_id());
|
||||
$token->setUser($user);
|
||||
|
||||
$em->persist($token);
|
||||
}
|
||||
|
@@ -14,8 +14,6 @@ namespace Alchemy\Phrasea\Controller\Admin;
|
||||
use Alchemy\Phrasea\Helper\User as UserHelper;
|
||||
use Alchemy\Phrasea\Model\Entities\FtpCredential;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Doctrine\ORM\Query\ResultSetMapping;
|
||||
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
||||
use Silex\Application;
|
||||
use Silex\ControllerProviderInterface;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
@@ -245,7 +243,7 @@ class Users implements ControllerProviderInterface
|
||||
$datas[] = [
|
||||
'email' => $user->getEmail() ? : ''
|
||||
, 'login' => $user->getLogin() ? : ''
|
||||
, 'name' => $user->getDisplayName() ? : ''
|
||||
, 'name' => $user->getDisplayName($app['translator']) ? : ''
|
||||
, 'id' => $user->getId()
|
||||
];
|
||||
}
|
||||
@@ -364,34 +362,17 @@ class Users implements ControllerProviderInterface
|
||||
$basList = array_keys($app['acl']->get($app['authentication']->getUser())->get_granted_base(['canadmin']));
|
||||
$models = $app['manipulator.user']->getRepository()->findModelOf($app['authentication']->getUser());
|
||||
|
||||
$rsm = new ResultSetMappingBuilder($app['EM']);
|
||||
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
|
||||
$rsm->addScalarResult('date_demand', 'date_demand');
|
||||
$rsm->addScalarResult('base_demand', 'base_demand');
|
||||
|
||||
$selectClause = $rsm->generateSelectClause();
|
||||
|
||||
$query = $app['EM']->createNativeQuery("
|
||||
SELECT d.date_modif AS date_demand, d.base_id AS base_demand, " . $selectClause . "
|
||||
FROM (demand d INNER JOIN Users u ON d.usr_id=u.id
|
||||
AND d.en_cours=1
|
||||
AND u.deleted=0
|
||||
)
|
||||
WHERE (base_id='" . implode("' OR base_id='", $basList) . "')
|
||||
ORDER BY d.usr_id DESC, d.base_id ASC
|
||||
", $rsm);
|
||||
|
||||
$currentUsr = null;
|
||||
$table = ['users' => [], 'coll' => []];
|
||||
|
||||
foreach ($query->getResult() as $row) {
|
||||
foreach ($app['phraseanet.native-query']->getUsersRegistrationDemand($basList) as $row) {
|
||||
$user = $row[0];
|
||||
|
||||
if ($user->getId() !== $currentUsr) {
|
||||
$currentUsr = $user->getId();
|
||||
$table['users'][$currentUsr] = [
|
||||
'user' => $user,
|
||||
'date_demand' => new \DateTime($row['date_demand']),
|
||||
'date_demand' => $row['date_demand'],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -547,8 +528,8 @@ class Users implements ControllerProviderInterface
|
||||
|
||||
foreach ($done as $usr => $bases) {
|
||||
$acceptColl = $denyColl = [];
|
||||
if (null === $user = $app['manipulator.user']->getRepository()->find($usr)) {
|
||||
if (\Swift_Validate::email($user.getEmail())) {
|
||||
if (null !== $user = $app['manipulator.user']->getRepository()->find($usr)) {
|
||||
if (\Swift_Validate::email($user->getEmail())) {
|
||||
foreach ($bases as $bas => $isok) {
|
||||
if ($isok) {
|
||||
$acceptColl[] = \phrasea::bas_labels($bas, $app);
|
||||
@@ -565,7 +546,7 @@ class Users implements ControllerProviderInterface
|
||||
$message .= "\n" . $app->trans('login::register:email: Vous avez ete refuse sur les collections suivantes : ') . implode(', ', $denyColl) . "\n";
|
||||
}
|
||||
|
||||
$receiver = new Receiver(null, $row['usr_mail']);
|
||||
$receiver = new Receiver(null, $user->getEmail());
|
||||
$mail = MailSuccessEmailUpdate::create($app, $receiver, null, $message);
|
||||
|
||||
$app['notification.deliverer']->deliver($mail);
|
||||
@@ -710,22 +691,8 @@ class Users implements ControllerProviderInterface
|
||||
]);
|
||||
}
|
||||
|
||||
$rsm = new ResultSetMappingBuilder($app['EM']);
|
||||
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
|
||||
|
||||
$selectClause = $rsm->generateSelectClause();
|
||||
|
||||
$query = $app['EM']->createNativeQuery("
|
||||
SELECT " . $selectClause . "
|
||||
FROM Users u
|
||||
INNER JOIN basusr b ON (b.usr_id=u.id)
|
||||
WHERE u.model_of = :user_id
|
||||
AND b.base_id IN (" . implode(', ', array_keys($app['acl']->get($app['authentication']->getUser())->get_granted_base(['manage']))) . ")
|
||||
AND u.deleted='0'
|
||||
GROUP BY u.id"
|
||||
);
|
||||
$query->setParameter(':user_id', $app['authentication']->getUser()->getId());
|
||||
$models = $query->getResult();
|
||||
$basList = array_keys($app['acl']->get($app['authentication']->getUser())->get_granted_base(['manage']));
|
||||
$models = $app['phraseanet.native-query']->getModelForUser($app['authentication']->getUser(), $basList);
|
||||
|
||||
return $app['twig']->render('/admin/user/import/view.html.twig', [
|
||||
'nb_user_to_add' => $nbUsrToAdd,
|
||||
|
@@ -248,7 +248,7 @@ class Edit implements ControllerProviderInterface
|
||||
|
||||
$query = $request->query->get('query');
|
||||
|
||||
$results = $VC->find($query, $app['authentication']->getUser(), $databox);
|
||||
$results = $VC->find($query, $app['authentication']->getUser(), $app['translator'], $databox);
|
||||
|
||||
$list = [];
|
||||
|
||||
|
@@ -232,7 +232,7 @@ class Export implements ControllerProviderInterface
|
||||
|
||||
$url = $app->url('prepare_download', ['token' => $token, 'anonymous']);
|
||||
|
||||
$emitter = new Emitter($app['authentication']->getUser()->getDisplayName(), $app['authentication']->getUser()->getEmail());
|
||||
$emitter = new Emitter($app['authentication']->getUser()->getDisplayName($app['translator']), $app['authentication']->getUser()->getEmail());
|
||||
|
||||
foreach ($destMails as $key => $mail) {
|
||||
try {
|
||||
|
@@ -29,9 +29,9 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
|
||||
class Push implements ControllerProviderInterface
|
||||
{
|
||||
protected function getUserFormatter()
|
||||
protected function getUserFormatter(Application $app)
|
||||
{
|
||||
return function (User $user) {
|
||||
return function (User $user) use ($app) {
|
||||
$subtitle = array_filter([$user->getJob(), $user->getCompany()]);
|
||||
|
||||
return [
|
||||
@@ -40,7 +40,7 @@ class Push implements ControllerProviderInterface
|
||||
, 'firstname' => $user->getFirstName()
|
||||
, 'lastname' => $user->getLastName()
|
||||
, 'email' => $user->getEmail()
|
||||
, 'display_name' => $user->getDisplayName()
|
||||
, 'display_name' => $user->getDisplayName($app['translator'])
|
||||
, 'subtitle' => implode(', ', $subtitle)
|
||||
];
|
||||
};
|
||||
@@ -48,7 +48,7 @@ class Push implements ControllerProviderInterface
|
||||
|
||||
protected function getListFormatter($app)
|
||||
{
|
||||
$userFormatter = $this->getUserFormatter();
|
||||
$userFormatter = $this->getUserFormatter($app);
|
||||
|
||||
return function (UsrList $List) use ($userFormatter, $app) {
|
||||
$entries = [];
|
||||
@@ -109,7 +109,7 @@ class Push implements ControllerProviderInterface
|
||||
$app['firewall']->requireRight('push');
|
||||
});
|
||||
|
||||
$userFormatter = $this->getUserFormatter();
|
||||
$userFormatter = $this->getUserFormatter($app);
|
||||
|
||||
$listFormatter = $this->getListFormatter($app);
|
||||
|
||||
@@ -162,7 +162,7 @@ class Push implements ControllerProviderInterface
|
||||
try {
|
||||
$pusher = new RecordHelper\Push($app, $app['request']);
|
||||
|
||||
$push_name = $request->request->get('name', $app->trans('Push from %user%', ['%user%' => $app['authentication']->getUser()->getDisplayName()]));
|
||||
$push_name = $request->request->get('name', $app->trans('Push from %user%', ['%user%' => $app['authentication']->getUser()->getDisplayName($app['translator'])]));
|
||||
$push_description = $request->request->get('push_description');
|
||||
|
||||
$receivers = $request->request->get('participants');
|
||||
@@ -234,7 +234,7 @@ class Push implements ControllerProviderInterface
|
||||
, 'from_email' => $app['authentication']->getUser()->getEmail()
|
||||
, 'to' => $user_receiver->getId()
|
||||
, 'to_email' => $user_receiver->getEmail()
|
||||
, 'to_name' => $user_receiver->getDisplayName()
|
||||
, 'to_name' => $user_receiver->getDisplayName($app['translator'])
|
||||
, 'url' => $url
|
||||
, 'accuse' => $receipt
|
||||
, 'message' => $request->request->get('message')
|
||||
@@ -278,7 +278,7 @@ class Push implements ControllerProviderInterface
|
||||
try {
|
||||
$pusher = new RecordHelper\Push($app, $app['request']);
|
||||
|
||||
$validation_name = $request->request->get('name', $app->trans('Validation from %user%', ['%user%' => $app['authentication']->getUser()->getDisplayName()]));
|
||||
$validation_name = $request->request->get('name', $app->trans('Validation from %user%', ['%user%' => $app['authentication']->getUser()->getDisplayName($app['translator'])]));
|
||||
$validation_description = $request->request->get('validation_description');
|
||||
|
||||
$participants = $request->request->get('participants');
|
||||
@@ -429,7 +429,7 @@ class Push implements ControllerProviderInterface
|
||||
'from_email' => $app['authentication']->getUser()->getEmail(),
|
||||
'to' => $participant_user->getId(),
|
||||
'to_email' => $participant_user->getEmail(),
|
||||
'to_name' => $participant_user->getDisplayName(),
|
||||
'to_name' => $participant_user->getDisplayName($app['translator']),
|
||||
'url' => $url,
|
||||
'accuse' => $receipt,
|
||||
'message' => $request->request->get('message'),
|
||||
|
@@ -91,24 +91,24 @@ class UsrLists implements ControllerProviderInterface
|
||||
|
||||
foreach ($list->getOwners() as $owner) {
|
||||
$owners[] = [
|
||||
'usr_id' => $owner->getUser($app)->getId(),
|
||||
'display_name' => $owner->getUser($app)->getDisplayName(),
|
||||
'position' => $owner->getUser($app)->getActivity(),
|
||||
'job' => $owner->getUser($app)->getJob(),
|
||||
'company' => $owner->getUser($app)->getCompany(),
|
||||
'email' => $owner->getUser($app)->getEmail(),
|
||||
'usr_id' => $owner->getUser()->getId(),
|
||||
'display_name' => $owner->getUser()->getDisplayName($app['translator']),
|
||||
'position' => $owner->getUser()->getActivity(),
|
||||
'job' => $owner->getUser()->getJob(),
|
||||
'company' => $owner->getUser()->getCompany(),
|
||||
'email' => $owner->getUser()->getEmail(),
|
||||
'role' => $owner->getRole()
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($list->getEntries() as $entry) {
|
||||
$entries[] = [
|
||||
'usr_id' => $owner->getUser($app)->getId(),
|
||||
'display_name' => $owner->getUser($app)->getDisplayName(),
|
||||
'position' => $owner->getUser($app)->getActivity(),
|
||||
'job' => $owner->getUser($app)->getJob(),
|
||||
'company' => $owner->getUser($app)->getCompany(),
|
||||
'email' => $owner->getUser($app)->getEmail(),
|
||||
'usr_id' => $entry->getUser()->getId(),
|
||||
'display_name' => $entry->getUser()->getDisplayName($app['translator']),
|
||||
'position' => $entry->getUser()->getActivity(),
|
||||
'job' => $entry->getUser()->getJob(),
|
||||
'company' => $entry->getUser()->getCompany(),
|
||||
'email' => $entry->getUser()->getEmail(),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -202,24 +202,24 @@ class UsrLists implements ControllerProviderInterface
|
||||
|
||||
foreach ($list->getOwners() as $owner) {
|
||||
$owners[] = [
|
||||
'usr_id' => $owner->getUser($app)->getId(),
|
||||
'display_name' => $owner->getUser($app)->getDisplayName(),
|
||||
'position' => $owner->getUser($app)->getActivity(),
|
||||
'job' => $owner->getUser($app)->getJob(),
|
||||
'company' => $owner->getUser($app)->getCompany(),
|
||||
'email' => $owner->getUser($app)->getEmail(),
|
||||
'role' => $owner->getRole($app)
|
||||
'usr_id' => $owner->getUser()->getId(),
|
||||
'display_name' => $owner->getUser()->getDisplayName($app['translator']),
|
||||
'position' => $owner->getUser()->getActivity(),
|
||||
'job' => $owner->getUser()->getJob(),
|
||||
'company' => $owner->getUser()->getCompany(),
|
||||
'email' => $owner->getUser()->getEmail(),
|
||||
'role' => $owner->getRole()
|
||||
];
|
||||
}
|
||||
|
||||
foreach ($list->getEntries() as $entry) {
|
||||
$entries[] = [
|
||||
'usr_id' => $entry->getUser($app)->getId(),
|
||||
'display_name' => $entry->getUser($app)->getDisplayName(),
|
||||
'position' => $entry->getUser($app)->getActivity(),
|
||||
'job' => $entry->getUser($app)->getJob(),
|
||||
'company' => $entry->getUser($app)->getCompany(),
|
||||
'email' => $entry->getUser($app)->getEmail(),
|
||||
'usr_id' => $entry->getUser()->getId(),
|
||||
'display_name' => $entry->getUser()->getDisplayName($app['translator']),
|
||||
'position' => $entry->getUser()->getActivity(),
|
||||
'job' => $entry->getUser()->getJob(),
|
||||
'company' => $entry->getUser()->getCompany(),
|
||||
'email' => $entry->getUser()->getEmail(),
|
||||
];
|
||||
}
|
||||
|
||||
|
@@ -143,7 +143,7 @@ class Account implements ControllerProviderInterface
|
||||
$url = $app->url('account_reset_email', ['token' => $token]);
|
||||
|
||||
try {
|
||||
$receiver = Receiver::fromUser($app['authentication']->getUser());
|
||||
$receiver = Receiver::fromUser($app['authentication']->getUser(), $app['translator']);
|
||||
} catch (InvalidArgumentException $e) {
|
||||
$app->addFlash('error', $app->trans('phraseanet::erreur: echec du serveur de mail'));
|
||||
|
||||
@@ -331,11 +331,9 @@ class Account implements ControllerProviderInterface
|
||||
$demands = (array) $request->request->get('demand', []);
|
||||
|
||||
if (0 !== count($demands)) {
|
||||
$register = new \appbox_register($app['phraseanet.appbox']);
|
||||
|
||||
foreach ($demands as $baseId) {
|
||||
try {
|
||||
$register->add_request($app['authentication']->getUser(), \collection::get_from_base_id($app, $baseId));
|
||||
$app['phraseanet.appbox-register']->add_request($app['authentication']->getUser(), \collection::get_from_base_id($app, $baseId));
|
||||
$app->addFlash('success', $app->trans('login::notification: Vos demandes ont ete prises en compte'));
|
||||
} catch (\Exception $e) {
|
||||
|
||||
@@ -412,11 +410,7 @@ class Account implements ControllerProviderInterface
|
||||
|
||||
foreach ($app['events-manager']->list_notifications_available($app['authentication']->getUser()->getId()) as $notifications) {
|
||||
foreach ($notifications as $notification) {
|
||||
if (isset($requestedNotifications[$notification['id']])) {
|
||||
$app['authentication']->getUser()->set_notification_preference($app, $notification['id'], '1');
|
||||
} else {
|
||||
$app['authentication']->getUser()->set_notification_preference($app, $notification['id'], '0');
|
||||
}
|
||||
$app['manipulator.user']->setNotificationSetting($app['authentication']->getUser(), $notification['id'], isset($requestedNotifications[$notification['id']]));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -410,15 +410,13 @@ class Login implements ControllerProviderInterface
|
||||
|
||||
$autoReg = $app['acl']->get($user)->get_granted_base();
|
||||
|
||||
$appbox_register = new \appbox_register($app['phraseanet.appbox']);
|
||||
|
||||
foreach ($inscOK as $base_id => $autorisation) {
|
||||
if (false === $autorisation || $app['acl']->get($user)->has_access_to_base($base_id)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$collection = \collection::get_from_base_id($app, $base_id);
|
||||
$appbox_register->add_request($user, $collection);
|
||||
$app['phraseanet.appbox-register']->add_request($user, $collection);
|
||||
$demandOK[$base_id] = true;
|
||||
}
|
||||
|
||||
@@ -524,7 +522,7 @@ class Login implements ControllerProviderInterface
|
||||
*/
|
||||
private function sendAccountUnlockEmail(PhraseaApplication $app, User $user)
|
||||
{
|
||||
$receiver = Receiver::fromUser($user);
|
||||
$receiver = Receiver::fromUser($user, $app['translator']);
|
||||
|
||||
$expire = new \DateTime('+3 days');
|
||||
$token = $app['tokens']->getUrlToken(\random::TYPE_PASSWORD, $user->getId(), $expire, $user->getEmail());
|
||||
@@ -559,9 +557,7 @@ class Login implements ControllerProviderInterface
|
||||
return $app->redirectPath('homepage');
|
||||
}
|
||||
|
||||
try {
|
||||
$user = $app['manipulator.user']->getRepository()->find((int) $datas['usr_id']);
|
||||
} catch (\Exception $e) {
|
||||
if (null === $user = $app['manipulator.user']->getRepository()->find((int) $datas['usr_id'])) {
|
||||
$app->addFlash('error', _('Invalid unlock link.'));
|
||||
|
||||
return $app->redirectPath('homepage');
|
||||
@@ -577,7 +573,7 @@ class Login implements ControllerProviderInterface
|
||||
$user->setMailLocked(false);
|
||||
|
||||
try {
|
||||
$receiver = Receiver::fromUser($user);
|
||||
$receiver = Receiver::fromUser($user, $app['translator']);
|
||||
} catch (InvalidArgumentException $e) {
|
||||
$app->addFlash('success', $app->trans('Account has been unlocked, you can now login.'));
|
||||
|
||||
@@ -662,14 +658,12 @@ class Login implements ControllerProviderInterface
|
||||
if ($form->isValid()) {
|
||||
$data = $form->getData();
|
||||
|
||||
try {
|
||||
$user = $app['manipulator.user']->getRepository()->findByEmail($data['email']);
|
||||
} catch (\Exception $e) {
|
||||
if (null === $user = $app['manipulator.user']->getRepository()->findByEmail($data['email'])) {
|
||||
throw new FormProcessingException(_('phraseanet::erreur: Le compte n\'a pas ete trouve'));
|
||||
}
|
||||
|
||||
try {
|
||||
$receiver = Receiver::fromUser($user);
|
||||
$receiver = Receiver::fromUser($user, $app['translator']);
|
||||
} catch (InvalidArgumentException $e) {
|
||||
throw new FormProcessingException($app->trans('Invalid email address'));
|
||||
}
|
||||
|
@@ -55,7 +55,7 @@ class RSSFeeds implements ControllerProviderInterface
|
||||
$page = $page < 1 ? 1 : $page;
|
||||
|
||||
return $app['feed.formatter-strategy']($format)
|
||||
->createResponse($app, $token->getFeed(), $page, $app['manipulator.user']->getRepository()->find($token->getUsrId()));
|
||||
->createResponse($app, $token->getFeed(), $page, $token->getUser());
|
||||
})
|
||||
->bind('feed_user')
|
||||
->assert('id', '\d+')
|
||||
|
@@ -101,14 +101,14 @@ class DisplaySettingService
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getUserNotificationSetting(User $user, $name, $default = false)
|
||||
public function getUserNotificationSetting(User $user, $name, $default = true)
|
||||
{
|
||||
if (false === $user->getNotificationSettings()->containsKey($name)) {
|
||||
|
||||
return $default;
|
||||
}
|
||||
|
||||
return $user->getUserNotificationSetting()->get($name)->getValue();
|
||||
return $user->getNotificationSettings()->get($name)->getValue();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -12,6 +12,7 @@
|
||||
namespace Alchemy\Phrasea\Core\Provider;
|
||||
|
||||
use Alchemy\Phrasea\Authentication\ACLProvider;
|
||||
use Alchemy\Phrasea\Model\NativeQueryProvider;
|
||||
use Alchemy\Phrasea\Security\Firewall;
|
||||
use Silex\Application as SilexApplication;
|
||||
use Silex\ServiceProviderInterface;
|
||||
@@ -38,6 +39,14 @@ class PhraseanetServiceProvider implements ServiceProviderInterface
|
||||
$app['acl'] = $app->share(function (SilexApplication $app) {
|
||||
return new ACLProvider($app);
|
||||
});
|
||||
|
||||
$app['phraseanet.native-query'] = $app->share(function ($app) {
|
||||
return new NativeQueryProvider($app['EM']);
|
||||
});
|
||||
|
||||
$app['phraseanet.appbox-register'] = $app->share(function ($app) {
|
||||
return new \appbox_register($app['phraseanet.appbox']);
|
||||
});
|
||||
}
|
||||
|
||||
public function boot(SilexApplication $app)
|
||||
|
@@ -30,8 +30,8 @@ class Prod extends Helper
|
||||
return $search_datas;
|
||||
}
|
||||
|
||||
$searchSet = json_decode($this->app['authentication']->getUser()->getPrefs('search'), true);
|
||||
$saveSettings = $this->app['authentication']->getUser()->getPrefs('advanced_search_reload');
|
||||
$searchSet = json_decode($this->app['settings']->getUserSetting($this->app['authentication']->getUser(), 'search'), true);
|
||||
$saveSettings = $this->app['settings']->getUserSetting($this->app['authentication']->getUser(), 'advanced_search_reload');
|
||||
|
||||
foreach ($this->app['acl']->get($this->app['authentication']->getUser())->get_granted_sbas() as $databox) {
|
||||
$sbas_id = $databox->get_sbas_id();
|
||||
|
@@ -154,7 +154,7 @@ class Manage extends Helper
|
||||
|
||||
$receiver = null;
|
||||
try {
|
||||
$receiver = Receiver::fromUser($createdUser);
|
||||
$receiver = Receiver::fromUser($createdUser, $this->app['translator']);
|
||||
} catch (InvalidArgumentException $e) {
|
||||
|
||||
}
|
||||
|
@@ -234,7 +234,7 @@ class Basket
|
||||
public function getPusher(Application $app)
|
||||
{
|
||||
if ($this->getPusherId()) {
|
||||
return $this->pusher = $app['EM']->find('Alchemy\Phrasea\Model\Entities\User', $this->getPusherId());
|
||||
return $app['manipulator.user']->getRepository()->find($this->getPusherId());
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -268,9 +268,9 @@ class ValidationSession
|
||||
}
|
||||
} else {
|
||||
if ($this->getParticipant($user, $app)->getCanSeeOthers()) {
|
||||
return $app->trans('Processus de validation recu de %user% et concernant %n% utilisateurs', ['%user%' => $this->getInitiator($app)->getDisplayName(), '%n%' => count($this->getParticipants()) - 1]);
|
||||
return $app->trans('Processus de validation recu de %user% et concernant %n% utilisateurs', ['%user%' => $this->getInitiator($app)->getDisplayName($app['translator']), '%n%' => count($this->getParticipants()) - 1]);
|
||||
} else {
|
||||
return $app->trans('Processus de validation recu de %user%', ['%user%' => $this->getInitiator($app)->getDisplayName()]);
|
||||
return $app->trans('Processus de validation recu de %user%', ['%user%' => $this->getInitiator($app)->getDisplayName($app['translator'])]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -288,6 +288,6 @@ class ValidationSession
|
||||
}
|
||||
}
|
||||
|
||||
throw new NotFoundHttpException('Participant not found' . $user->get_email());
|
||||
throw new NotFoundHttpException('Participant not found' . $user->getEmail());
|
||||
}
|
||||
}
|
||||
|
@@ -14,6 +14,7 @@ namespace Alchemy\Phrasea\Model\Manager;
|
||||
use Doctrine\Common\Persistence\ObjectManager;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Alchemy\Phrasea\Model\Entities\UserSetting;
|
||||
use Doctrine\ORM\UnitOfWork AS UOW;
|
||||
|
||||
class UserManager
|
||||
{
|
||||
@@ -159,6 +160,21 @@ class UserManager
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes user orders.
|
||||
*
|
||||
* @param User $user
|
||||
*/
|
||||
private function cleanUserSessions(User $user)
|
||||
{
|
||||
$sessions = $this->objectManager->getRepository('Alchemy\Phrasea\Model\Entities\Session')
|
||||
->findByUser(['user' => $user->getId()]);
|
||||
|
||||
foreach ($sessions as $session) {
|
||||
$this->objectManager->remove($session);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes user providers.
|
||||
*
|
||||
@@ -196,6 +212,7 @@ class UserManager
|
||||
$this->cleanOrders($user);
|
||||
$this->cleanFtpExports($user);
|
||||
$this->cleanAuthProvider($user);
|
||||
$this->cleanUserSessions($user);
|
||||
}
|
||||
|
||||
/**
|
||||
|
94
lib/Alchemy/Phrasea/Model/NativeQueryProvider.php
Normal file
94
lib/Alchemy/Phrasea/Model/NativeQueryProvider.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/*
|
||||
* This file is part of Phraseanet
|
||||
*
|
||||
* (c) 2005-2013 Alchemy
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Alchemy\Phrasea\Model;
|
||||
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Doctrine\ORM\Query\ResultSetMapping;
|
||||
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
|
||||
class NativeQueryProvider
|
||||
{
|
||||
private $em;
|
||||
|
||||
public function __construct(EntityManager $em)
|
||||
{
|
||||
$this->em = $em;
|
||||
}
|
||||
|
||||
public function getUsersRegistrationDemand(array $basList)
|
||||
{
|
||||
$rsm = new ResultSetMappingBuilder($this->em);
|
||||
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
|
||||
$rsm->addScalarResult('date_demand', 'date_demand');
|
||||
$rsm->addScalarResult('base_demand', 'base_demand');
|
||||
|
||||
$selectClause = $rsm->generateSelectClause();
|
||||
|
||||
return $this->em->createNativeQuery("
|
||||
SELECT d.date_modif AS date_demand, d.base_id AS base_demand, " . $selectClause . "
|
||||
FROM (demand d INNER JOIN Users u ON d.usr_id=u.id
|
||||
AND d.en_cours=1
|
||||
AND u.deleted=0
|
||||
)
|
||||
WHERE (base_id='" . implode("' OR base_id='", $basList) . "')
|
||||
ORDER BY d.usr_id DESC, d.base_id ASC
|
||||
", $rsm)
|
||||
->getResult();
|
||||
}
|
||||
|
||||
public function getModelForUser(User $user, array $basList)
|
||||
{
|
||||
debug_print_backtrace(10);
|
||||
echo __METHOD__;
|
||||
exit;
|
||||
$rsm = new ResultSetMappingBuilder($this->em);
|
||||
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
|
||||
|
||||
$selectClause = $rsm->generateSelectClause();
|
||||
|
||||
$query = $this->em->createNativeQuery("
|
||||
SELECT " . $selectClause . "
|
||||
FROM Users u
|
||||
INNER JOIN basusr b ON (b.usr_id=u.id)
|
||||
WHERE u.model_of = :user_id
|
||||
AND b.base_id IN (" . implode(', ', $basList) . ")
|
||||
AND u.deleted='0'
|
||||
GROUP BY u.id", $rsm);
|
||||
|
||||
$query->setParameter(':user_id', $user->getId());
|
||||
|
||||
return $query->getResult();
|
||||
}
|
||||
|
||||
public function getAdminsOfBases(array $basList)
|
||||
{
|
||||
debug_print_backtrace(10);
|
||||
echo __METHOD__;
|
||||
exit;
|
||||
$rsm = new ResultSetMappingBuilder($this->em);
|
||||
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
|
||||
$rsm->addScalarResult('base_id', 'base_id');
|
||||
$selectClause = $rsm->generateSelectClause();
|
||||
|
||||
$query = $this->em->createNativeQuery('
|
||||
SELECT b.base_id, '.$selectClause.' FROM Users u, basusr b
|
||||
WHERE u.id = b.usr_id
|
||||
AND b.base_id IN (' . implode(', ', $basList) . ')
|
||||
AND u.model_of IS NULL
|
||||
AND b.actif="1"
|
||||
AND b.canadmin="1"
|
||||
AND u.deleted="0"', $rsm
|
||||
);
|
||||
|
||||
return $query->getResults();
|
||||
}
|
||||
}
|
@@ -56,7 +56,7 @@ class OrderRepository extends EntityRepository
|
||||
}
|
||||
|
||||
if ($sort === 'user') {
|
||||
$qb->orderBy('o.userId', 'ASC');
|
||||
$qb->orderBy('o.user', 'ASC');
|
||||
} elseif ($sort === 'usage') {
|
||||
$qb->orderBy('o.orderUsage', 'ASC');
|
||||
} else {
|
||||
|
@@ -12,6 +12,7 @@
|
||||
namespace Alchemy\Phrasea\Model\Repositories;
|
||||
|
||||
use Doctrine\ORM\EntityRepository;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
|
||||
/**
|
||||
* SessionRepository
|
||||
@@ -21,15 +22,4 @@ use Doctrine\ORM\EntityRepository;
|
||||
*/
|
||||
class SessionRepository extends EntityRepository
|
||||
{
|
||||
public function findByUser(\User_Adapter $user)
|
||||
{
|
||||
$dql = 'SELECT s
|
||||
FROM Phraseanet:Session s
|
||||
WHERE s.usr_id = :usr_id';
|
||||
|
||||
$query = $this->_em->createQuery($dql);
|
||||
$query->setParameters(['usr_id' => $user->get_id()]);
|
||||
|
||||
return $query->getResult();
|
||||
}
|
||||
}
|
||||
|
@@ -13,6 +13,7 @@ namespace Alchemy\Phrasea\Notification;
|
||||
|
||||
use Alchemy\Phrasea\Exception\InvalidArgumentException;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Symfony\Component\Translation\TranslatorInterface;
|
||||
|
||||
class Emitter implements EmitterInterface
|
||||
{
|
||||
@@ -54,8 +55,8 @@ class Emitter implements EmitterInterface
|
||||
*
|
||||
* @throws InvalidArgumentException In case no valid email is found for user
|
||||
*/
|
||||
public static function fromUser(User $user)
|
||||
public static function fromUser(User $user, TranslatorInterface $translator)
|
||||
{
|
||||
return new static($user->getDisplayName(), $user->getEmail());
|
||||
return new static($user->getDisplayName($translator), $user->getEmail());
|
||||
}
|
||||
}
|
||||
|
@@ -46,7 +46,7 @@ class MailInfoNewOrder extends AbstractMail
|
||||
throw new LogicException('You must set a user before calling getMessage()');
|
||||
}
|
||||
|
||||
return $this->app->trans('%user% has ordered documents', ['%user%' => $this->user->getDisplayName()]);
|
||||
return $this->app->trans('%user% has ordered documents', ['%user%' => $this->user->getDisplayName($this->app['translator'])]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -62,7 +62,7 @@ class MailInfoOrderCancelled extends AbstractMail
|
||||
}
|
||||
|
||||
return $this->app->trans('%user% a refuse %quantity% elements de votre commande', [
|
||||
'%user%' => $this->deliverer->getDisplayName(),
|
||||
'%user%' => $this->deliverer->getDisplayName($this->app['translator']),
|
||||
'%quantity%' => $this->quantity,
|
||||
]);
|
||||
}
|
||||
|
@@ -63,7 +63,7 @@ class MailInfoOrderDelivered extends AbstractMail
|
||||
throw new LogicException('You must set a deliverer before calling getMessage');
|
||||
}
|
||||
|
||||
return $this->app->trans('%user% vous a delivre votre commande, consultez la en ligne a l\'adresse suivante', ['%user%' => $this->deliverer->getDisplayName()]);
|
||||
return $this->app->trans('%user% vous a delivre votre commande, consultez la en ligne a l\'adresse suivante', ['%user%' => $this->deliverer->getDisplayName($this->app['translator'])]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -62,7 +62,7 @@ class MailInfoPushReceived extends AbstractMailWithLink
|
||||
}
|
||||
|
||||
return
|
||||
$this->app->trans('You just received a push containing %quantity% documents from %user%', ['%quantity%' => count($this->basket->getElements()), '%user%' => $this->pusher->getDisplayName()])
|
||||
$this->app->trans('You just received a push containing %quantity% documents from %user%', ['%quantity%' => count($this->basket->getElements()), '%user%' => $this->pusher->getDisplayName($this->app['translator'])])
|
||||
. "\n" . $this->message;
|
||||
}
|
||||
|
||||
|
@@ -54,7 +54,7 @@ class MailInfoValidationDone extends AbstractMailWithLink
|
||||
}
|
||||
|
||||
return $this->app->trans('push::mail:: Rapport de validation de %user% pour %title%', [
|
||||
'%user%' => $this->user->getDisplayName(),
|
||||
'%user%' => $this->user->getDisplayName($this->app['translator']),
|
||||
'%title%' => $this->title,
|
||||
]);
|
||||
}
|
||||
@@ -69,7 +69,7 @@ class MailInfoValidationDone extends AbstractMailWithLink
|
||||
}
|
||||
|
||||
return $this->app->trans('%user% has just sent its validation report, you can now see it', [
|
||||
'%user%' => $this->user->getDisplayName(),
|
||||
'%user%' => $this->user->getDisplayName($this->app['translator']),
|
||||
]);
|
||||
}
|
||||
|
||||
|
@@ -60,7 +60,7 @@ class MailInfoValidationRequest extends AbstractMailWithLink
|
||||
throw new LogicException('You must set a title before calling getSubject');
|
||||
}
|
||||
|
||||
return $this->app->trans("Validation request from %user% for '%title%'", ['%user%' => $this->user->getDisplayName(), '%title%' => $this->title]);
|
||||
return $this->app->trans("Validation request from %user% for '%title%'", ['%user%' => $this->user->getDisplayName($this->app['translator']), '%title%' => $this->title]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -13,6 +13,7 @@ namespace Alchemy\Phrasea\Notification;
|
||||
|
||||
use Alchemy\Phrasea\Exception\InvalidArgumentException;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Symfony\Component\Translation\TranslatorInterface;
|
||||
|
||||
class Receiver implements ReceiverInterface
|
||||
{
|
||||
@@ -54,8 +55,8 @@ class Receiver implements ReceiverInterface
|
||||
*
|
||||
* @throws InvalidArgumentException In case no valid email is found for user
|
||||
*/
|
||||
public static function fromUser(User $user)
|
||||
public static function fromUser(User $user, TranslatorInterface $translator)
|
||||
{
|
||||
return new static($user->getDisplayName(), $user->getEmail());
|
||||
return new static($user->getDisplayName($translator), $user->getEmail());
|
||||
}
|
||||
}
|
||||
|
@@ -48,7 +48,7 @@ class PhraseaEngineSubscriber implements EventSubscriberInterface
|
||||
$initialized = false;
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$user = \User_Adapter::getInstance($row['usr_id'], $this->app);
|
||||
$user = $this->app['manipulator.user']->getRepository()->find($row['usr_id']);
|
||||
$this->app['acl']->get($user)->inject_rights();
|
||||
if (null !== $row['session_id']) {
|
||||
if (!$initialized) {
|
||||
|
@@ -34,6 +34,7 @@ class Installer
|
||||
$this->createAB();
|
||||
$this->populateRegistryData($serverName, $dataPath, $binaryData);
|
||||
$user = $this->createUser($email, $password);
|
||||
$this->createDefaultUsers();
|
||||
if (null !== $dbConn) {
|
||||
$this->createDB($dbConn, $template);
|
||||
}
|
||||
|
@@ -12,6 +12,7 @@
|
||||
namespace Alchemy\Phrasea\Vocabulary\ControlProvider;
|
||||
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Symfony\Component\Translation\TranslatorInterface;
|
||||
|
||||
interface ControlProviderInterface
|
||||
{
|
||||
@@ -51,9 +52,10 @@ interface ControlProviderInterface
|
||||
*
|
||||
* @param string $query A scalar quaery
|
||||
* @param User $for_user The user doing the query
|
||||
* @param TranslatorInterface $translator
|
||||
* @param \databox $on_databox The databox where vocabulary should be requested
|
||||
*
|
||||
* @return Doctrine\Common\Collections\ArrayCollection
|
||||
*/
|
||||
public function find($query, User $for_user, \databox $on_databox);
|
||||
public function find($query, User $for_user, TranslatorInterface $translator, \databox $on_databox);
|
||||
}
|
||||
|
@@ -15,6 +15,7 @@ use Alchemy\Phrasea\Application;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Alchemy\Phrasea\Vocabulary\Term;
|
||||
use Symfony\Component\Translation\TranslatorInterface;
|
||||
|
||||
class UserProvider implements ControlProviderInterface
|
||||
{
|
||||
@@ -50,7 +51,7 @@ class UserProvider implements ControlProviderInterface
|
||||
* @param \databox $on_databox
|
||||
* @return \Doctrine\Common\Collections\ArrayCollection
|
||||
*/
|
||||
public function find($query, User $for_user, \databox $on_databox = null)
|
||||
public function find($query, User $for_user, TranslatorInterface $translator ,\databox $on_databox = null)
|
||||
{
|
||||
$user_query = new \User_Query($this->app);
|
||||
|
||||
@@ -68,7 +69,7 @@ class UserProvider implements ControlProviderInterface
|
||||
|
||||
foreach ($users as $user) {
|
||||
$results->add(
|
||||
new Term($user->getDisplayName(), '', $this, $user->getId())
|
||||
new Term($user->getDisplayName($translator), '', $this, $user->getId())
|
||||
);
|
||||
}
|
||||
|
||||
@@ -98,7 +99,7 @@ class UserProvider implements ControlProviderInterface
|
||||
throw new \Exception('User unknown');
|
||||
}
|
||||
|
||||
return $user->getDisplayName();
|
||||
return $user->getDisplayName($this->app['translator']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -114,11 +114,6 @@ class ACL implements cache_cacheableInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_app(Application $app)
|
||||
{
|
||||
$this->app = $app;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if a hd grant has been received for a record
|
||||
*
|
||||
@@ -195,7 +190,6 @@ class ACL implements cache_cacheableInterface
|
||||
*/
|
||||
public function has_preview_grant(record_Interface $record)
|
||||
{
|
||||
|
||||
$this->load_hd_grant();
|
||||
|
||||
$key = $record->get_serialize_key();
|
||||
@@ -757,7 +751,11 @@ class ACL implements cache_cacheableInterface
|
||||
|
||||
public function set_admin($boolean)
|
||||
{
|
||||
$this->app['manipulator.user']->promote($this->user);
|
||||
if ($boolean) {
|
||||
$this->app['manipulator.user']->promote($this->user);
|
||||
} else {
|
||||
$this->app['manipulator.user']->demote($this->user);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
@@ -1374,7 +1374,7 @@ class API_V1_adapter extends API_V1_Abstract
|
||||
$choices[] = [
|
||||
'validation_user' => [
|
||||
'usr_id' => $user->getId(),
|
||||
'usr_name' => $user->getDisplayName(),
|
||||
'usr_name' => $user->getDisplayName($this->app['translator']),
|
||||
'confirmed' => $participant->getIsConfirmed(),
|
||||
'can_agree' => $participant->getCanAgree(),
|
||||
'can_see_others' => $participant->getCanSeeOthers(),
|
||||
@@ -1818,7 +1818,7 @@ class API_V1_adapter extends API_V1_Abstract
|
||||
|
||||
$users[] = [
|
||||
'usr_id' => $user->getId(),
|
||||
'usr_name' => $user->getDisplayName(),
|
||||
'usr_name' => $user->getDisplayName($this->app['translator']),
|
||||
'confirmed' => $participant->getIsConfirmed(),
|
||||
'can_agree' => $participant->getCanAgree(),
|
||||
'can_see_others' => $participant->getCanSeeOthers(),
|
||||
|
@@ -1,917 +0,0 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Phraseanet
|
||||
*
|
||||
* (c) 2005-2014 Alchemy
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
use Alchemy\Phrasea\Application;
|
||||
|
||||
use Alchemy\Geonames\Exception\ExceptionInterface as GeonamesExceptionInterface;
|
||||
use Alchemy\Phrasea\Model\Entities\FtpCredential;
|
||||
|
||||
class User_Adapter implements User_Interface, cache_cacheableInterface
|
||||
{
|
||||
/**
|
||||
*
|
||||
* @var ACL
|
||||
*/
|
||||
protected $ACL;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var Array
|
||||
*/
|
||||
public static $locales = [
|
||||
'ar' => 'العربية'
|
||||
, 'de' => 'Deutsch'
|
||||
, 'nl' => 'Dutch'
|
||||
, 'en' => 'English'
|
||||
, 'es' => 'Español'
|
||||
, 'fr' => 'Français'
|
||||
];
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $_instance = [];
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_prefs = [];
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $_updated_prefs = [];
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public static $def_values = array(
|
||||
'view' => 'thumbs',
|
||||
'images_per_page' => 20,
|
||||
'images_size' => 120,
|
||||
'editing_images_size' => 134,
|
||||
'editing_top_box' => '180px',
|
||||
'editing_right_box' => '400px',
|
||||
'editing_left_box' => '710px',
|
||||
'basket_sort_field' => 'name',
|
||||
'basket_sort_order' => 'ASC',
|
||||
'warning_on_delete_story' => 'true',
|
||||
'client_basket_status' => '1',
|
||||
'css' => '000000',
|
||||
'advanced_search_reload' => '1',
|
||||
'start_page_query' => 'last',
|
||||
'start_page' => 'QUERY',
|
||||
'rollover_thumbnail' => 'caption',
|
||||
'technical_display' => '1',
|
||||
'doctype_display' => '1',
|
||||
'bask_val_order' => 'nat',
|
||||
'basket_caption_display' => '0',
|
||||
'basket_status_display' => '0',
|
||||
'basket_title_display' => '0'
|
||||
];
|
||||
|
||||
/**
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected static $available_values = [
|
||||
'view' => ['thumbs', 'list'],
|
||||
'basket_sort_field' => ['name', 'date'],
|
||||
'basket_sort_order' => ['ASC', 'DESC'],
|
||||
'start_page' => ['PUBLI', 'QUERY', 'LAST_QUERY', 'HELP'],
|
||||
'technical_display' => ['0', '1', 'group'],
|
||||
'rollover_thumbnail' => ['caption', 'preview'],
|
||||
'bask_val_order' => ['nat', 'asc', 'desc']
|
||||
];
|
||||
|
||||
/**
|
||||
*
|
||||
* @var Application
|
||||
*/
|
||||
protected $app;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $id;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $email;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $login;
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $locale;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $firstname;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $lastname;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $address;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $city;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $geonameid;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $zip;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $gender;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $tel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $lastModel;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $creationdate;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var DateTime
|
||||
*/
|
||||
protected $modificationdate;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $fax;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $job;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $position;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $company;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $ldap_created;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $is_guest;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $mail_locked;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var FtpCredential
|
||||
*/
|
||||
protected $ftpCredential;
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $mail_notifications;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $country;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var boolean
|
||||
*/
|
||||
protected $is_template;
|
||||
|
||||
/**
|
||||
*
|
||||
* @var User_Adapter
|
||||
*/
|
||||
protected $template_owner;
|
||||
|
||||
protected $password;
|
||||
|
||||
protected $preferences_loaded = false;
|
||||
protected $notifications_preferences_loaded = false;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param Integer $id
|
||||
* @param Application $app
|
||||
*
|
||||
* @return User_Adapter
|
||||
*/
|
||||
public function __construct($id, Application $app)
|
||||
{
|
||||
|
||||
$this->app = $app;
|
||||
$this->load($id);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public static function unsetInstances()
|
||||
{
|
||||
foreach (self::$_instance as $id => $user) {
|
||||
self::unsetInstance($id);
|
||||
}
|
||||
}
|
||||
|
||||
public static function unsetInstance($id)
|
||||
{
|
||||
if (isset(self::$_instance[$id])) {
|
||||
self::$_instance[$id] = null;
|
||||
unset(self::$_instance[$id]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param type $id
|
||||
* @param Application $app
|
||||
* @return User_Adapter
|
||||
*/
|
||||
public static function getInstance($id, Application $app)
|
||||
{
|
||||
if (is_int((int) $id) && (int) $id > 0) {
|
||||
$id = (int) $id;
|
||||
} else
|
||||
throw new Exception('Invalid usr_id');
|
||||
|
||||
if (!isset(self::$_instance[$id])) {
|
||||
try {
|
||||
self::$_instance[$id] = $app['phraseanet.appbox']->get_data_from_cache('_user_' . $id);
|
||||
self::$_instance[$id]->set_app($app);
|
||||
} catch (Exception $e) {
|
||||
self::$_instance[$id] = new self($id, $app);
|
||||
$app['phraseanet.appbox']->set_data_to_cache(self::$_instance[$id], '_user_' . $id);
|
||||
}
|
||||
} else {
|
||||
self::$_instance[$id]->set_app($app);
|
||||
}
|
||||
|
||||
return array_key_exists($id, self::$_instance) ? self::$_instance[$id] : false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param type $pasword
|
||||
* @return User_Adapter
|
||||
*/
|
||||
public function set_password($pasword)
|
||||
{
|
||||
$sql = 'UPDATE usr SET usr_password = :password, salted_password = "1"
|
||||
WHERE usr_id = :usr_id';
|
||||
|
||||
$password = $this->app['auth.password-encoder']->encodePassword($pasword, $this->get_nonce());
|
||||
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':password' => $password, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$this->password = $password;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param string $email
|
||||
* @return User_Adapter
|
||||
*/
|
||||
public function set_email($email)
|
||||
{
|
||||
if (trim($email) == '') {
|
||||
$email = null;
|
||||
}
|
||||
|
||||
$test_user = User_Adapter::get_usr_id_from_email($this->app, $email);
|
||||
|
||||
if ($test_user && $test_user != $this->get_id()) {
|
||||
throw new Exception_InvalidArgument($this->app->trans('A user already exists with email addres %email%', ['%email%' => $email]));
|
||||
}
|
||||
|
||||
$sql = 'UPDATE usr SET usr_mail = :new_email WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':new_email' => $email, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->email = $email;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param bollean $boolean
|
||||
* @return User_Adapter
|
||||
*/
|
||||
public function set_mail_notifications($boolean)
|
||||
{
|
||||
$value = $boolean ? '1' : '0';
|
||||
$sql = 'UPDATE usr SET mail_notifications = :mail_notifications WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':mail_notifications' => $value, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->mail_notifications = !!$boolean;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param boolean $boolean
|
||||
* @return User_Adapter
|
||||
*/
|
||||
public function set_ldap_created($boolean)
|
||||
{
|
||||
$value = $boolean ? '1' : '0';
|
||||
$sql = 'UPDATE usr SET ldap_created = :ldap_created WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':ldap_created' => $value, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->ldap_created = $boolean;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_firstname($firstname)
|
||||
{
|
||||
$sql = 'UPDATE usr SET usr_prenom = :usr_prenom WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_prenom' => $firstname, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->firstname = $firstname;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_lastname($lastname)
|
||||
{
|
||||
$sql = 'UPDATE usr SET usr_nom = :usr_nom WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_nom' => $lastname, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->lastname = $lastname;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_address($address)
|
||||
{
|
||||
$sql = 'UPDATE usr SET adresse = :adresse WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':adresse' => $address, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->address = $address;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_city($city)
|
||||
{
|
||||
$sql = 'UPDATE usr SET ville = :city WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':city' => $city, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->city = $city;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_geonameid($geonameid)
|
||||
{
|
||||
$country_code = null;
|
||||
|
||||
try {
|
||||
$country = $this->app['geonames.connector']
|
||||
->geoname($this->geonameid)
|
||||
->get('country');
|
||||
|
||||
if (isset($country['code'])) {
|
||||
$country_code = $country['code'];
|
||||
}
|
||||
} catch (GeonamesExceptionInterface $e) {
|
||||
|
||||
}
|
||||
|
||||
$sql = 'UPDATE usr SET geonameid = :geonameid, pays=:country_code WHERE usr_id = :usr_id';
|
||||
|
||||
$datas = [
|
||||
':geonameid' => $geonameid,
|
||||
':usr_id' => $this->get_id(),
|
||||
':country_code' => $country_code
|
||||
];
|
||||
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute($datas);
|
||||
$stmt->closeCursor();
|
||||
$this->geonameid = $geonameid;
|
||||
$this->country = $country_code;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_zip($zip)
|
||||
{
|
||||
$sql = 'UPDATE usr SET cpostal = :cpostal WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':cpostal' => $zip, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->zip = $zip;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_gender($gender)
|
||||
{
|
||||
$sql = 'UPDATE usr SET usr_sexe = :usr_sexe WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_sexe' => $gender, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->gender = $gender;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_tel($tel)
|
||||
{
|
||||
$sql = 'UPDATE usr SET tel = :tel WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':tel' => $tel, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->tel = $tel;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_fax($fax)
|
||||
{
|
||||
$sql = 'UPDATE usr SET fax = :fax WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':fax' => $fax, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->fax = $fax;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_job($job)
|
||||
{
|
||||
$sql = 'UPDATE usr SET fonction = :fonction WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':fonction' => $job, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->job = $job;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_position($position)
|
||||
{
|
||||
$sql = 'UPDATE usr SET activite = :activite WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':activite' => $position, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->position = $position;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_company($company)
|
||||
{
|
||||
$sql = 'UPDATE usr SET societe = :company WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':company' => $company, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->company = $company;
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_template(User_Adapter $owner)
|
||||
{
|
||||
$this->is_template = true;
|
||||
$this->template_owner = $owner;
|
||||
|
||||
if ($owner->get_id() == $this->get_id())
|
||||
throw new Exception_InvalidArgument ();
|
||||
|
||||
$sql = 'UPDATE usr SET model_of = :owner_id WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':owner_id' => $owner->get_id(), ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$this
|
||||
->set_city('')
|
||||
->set_company('')
|
||||
->set_email(null)
|
||||
->set_fax('')
|
||||
->set_firstname('')
|
||||
->set_gender('')
|
||||
->set_geonameid('')
|
||||
->set_job('')
|
||||
->set_lastname('')
|
||||
->set_mail_locked(false)
|
||||
->set_mail_notifications(true)
|
||||
->set_position('')
|
||||
->set_zip('')
|
||||
->set_tel('');
|
||||
|
||||
$this->ftpCredential = new FtpCredential();
|
||||
$this->ftpCredential->setUsrId($this->get_id());
|
||||
$this->app['EM']->persist($this->ftpCredential);
|
||||
$this->app['EM']->flush();
|
||||
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
/**
|
||||
* @todo close all open session
|
||||
* @return type
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$repo = $this->app['EM']->getRepository('Phraseanet:UsrAuthProvider');
|
||||
foreach ($repo->findByUser($this) as $provider) {
|
||||
$this->app['EM']->remove($provider);
|
||||
}
|
||||
|
||||
$repo = $this->app['EM']->getRepository('Phraseanet:FtpExport');
|
||||
foreach ($repo->findByUser($this) as $export) {
|
||||
$this->app['EM']->remove($export);
|
||||
}
|
||||
|
||||
$repo = $this->app['EM']->getRepository('Phraseanet:Order');
|
||||
foreach ($repo->findByUser($this) as $order) {
|
||||
$this->app['EM']->remove($order);
|
||||
}
|
||||
|
||||
$repo = $this->app['EM']->getRepository('Phraseanet:Session');
|
||||
|
||||
foreach ($repo->findByUser($this) as $session) {
|
||||
$this->app['EM']->remove($session);
|
||||
}
|
||||
|
||||
$this->app['EM']->flush();
|
||||
|
||||
$sql = 'UPDATE usr SET usr_login = :usr_login , usr_mail = null
|
||||
WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_login' => '(#deleted_' . $this->get_login() . '_' . $this->get_id(), ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'DELETE FROM basusr WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'DELETE FROM sbasusr WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'DELETE FROM dsel WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'DELETE FROM edit_presets WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'DELETE FROM tokens WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = 'DELETE FROM usr_settings WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
unset(self::$_instance[$this->get_id()]);
|
||||
|
||||
return;
|
||||
}
|
||||
public function get_mail_notifications()
|
||||
{
|
||||
return $this->mail_notifications;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param <type> $id
|
||||
* @return user
|
||||
*/
|
||||
public function load($id)
|
||||
{
|
||||
$sql = 'SELECT usr_id, ldap_created, create_db, usr_login, usr_password, usr_nom, activite,
|
||||
usr_prenom, usr_sexe as gender, usr_mail, adresse, usr_creationdate, usr_modificationdate,
|
||||
ville, cpostal, tel, fax, fonction, societe, geonameid, lastModel, invite,
|
||||
mail_notifications, mail_locked, model_of, locale
|
||||
FROM usr WHERE usr_id= :id ';
|
||||
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':id' => $id]);
|
||||
|
||||
$row = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
if (!$row) {
|
||||
throw new \Exception('User unknown');
|
||||
}
|
||||
|
||||
$this->id = (int) $row['usr_id'];
|
||||
$this->email = $row['usr_mail'];
|
||||
$this->login = $row['usr_login'];
|
||||
$this->password = $row['usr_password'];
|
||||
|
||||
$this->ldap_created = $row['ldap_created'];
|
||||
|
||||
$this->mail_notifications = $row['mail_notifications'];
|
||||
|
||||
$this->mail_locked = !!$row['mail_locked'];
|
||||
|
||||
$this->firstname = $row['usr_prenom'];
|
||||
$this->lastname = $row['usr_nom'];
|
||||
$this->address = $row['adresse'];
|
||||
$this->city = $row['ville'];
|
||||
$this->geonameid = $row['geonameid'];
|
||||
$this->zip = $row['cpostal'];
|
||||
$this->gender = $row['gender'];
|
||||
$this->tel = $row['tel'];
|
||||
$this->locale = $row['locale'];
|
||||
$this->fax = $row['fax'];
|
||||
$this->job = $row['fonction'];
|
||||
$this->position = $row['activite'];
|
||||
$this->company = $row['societe'];
|
||||
$this->creationdate = new DateTime($row['usr_creationdate']);
|
||||
$this->modificationdate = new DateTime($row['usr_modificationdate']);
|
||||
$this->applied_template = $row['lastModel'];
|
||||
|
||||
$this->country = $this->get_country();
|
||||
|
||||
$this->is_guest = ($row['invite'] == '1');
|
||||
|
||||
if ($row['model_of'] > 0) {
|
||||
$this->is_template = true;
|
||||
$this->template_owner = self::getInstance($row['model_of'], $this->app);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_last_template(User_Interface $template)
|
||||
{
|
||||
$sql = 'UPDATE usr SET lastModel = :template_id WHERE usr_id = :usr_id';
|
||||
|
||||
$params = [
|
||||
':usr_id' => $this->get_id()
|
||||
, ':template_id' => $template->get_login()
|
||||
];
|
||||
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->closeCursor();
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_mail_locked($boolean)
|
||||
{
|
||||
$sql = 'UPDATE usr SET mail_locked = :mail_locked WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_id' => $this->get_id(), ':mail_locked' => ($boolean ? '1' : '0')]);
|
||||
$stmt->closeCursor();
|
||||
$this->mail_locked = !!$boolean;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function get_notifications_preference(Application $app, $notification_id)
|
||||
{
|
||||
if (!$this->notifications_preferences_loaded)
|
||||
$this->load_notifications_preferences($app);
|
||||
|
||||
return isset($this->_prefs['notification_' . $notification_id]) ? $this->_prefs['notification_' . $notification_id] : '0';
|
||||
}
|
||||
|
||||
public function set_notification_preference(Application $app, $notification_id, $value)
|
||||
{
|
||||
if (!$this->notifications_preferences_loaded)
|
||||
$this->load_notifications_preferences($app);
|
||||
|
||||
$prop = 'notification_' . $notification_id;
|
||||
$value = $value ? '1' : '0';
|
||||
|
||||
$this->setPrefs($prop, $value);
|
||||
|
||||
return ;
|
||||
}
|
||||
|
||||
public function get_cache_key($option = null)
|
||||
{
|
||||
return '_user_' . $this->get_id() . ($option ? '_' . $option : '');
|
||||
}
|
||||
|
||||
public function delete_data_from_cache($option = null)
|
||||
{
|
||||
$this->app['phraseanet.appbox']->delete_data_from_cache($this->get_cache_key($option));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function get_data_from_cache($option = null)
|
||||
{
|
||||
$this->app['phraseanet.appbox']->get_data_from_cache($this->get_cache_key($option));
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function set_data_to_cache($value, $option = null, $duration = 0)
|
||||
{
|
||||
$this->app['phraseanet.appbox']->set_data_to_cache($value, $this->get_cache_key($option), $duration);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setPrefs($prop, $value)
|
||||
{
|
||||
$this->load_preferences();
|
||||
if (isset($this->_prefs[$prop]) && $this->_prefs[$prop] === $value) {
|
||||
return $this->_prefs[$prop];
|
||||
}
|
||||
|
||||
$ok = true;
|
||||
|
||||
if (isset(self::$available_values[$prop])) {
|
||||
$ok = false;
|
||||
if (in_array($value, self::$available_values[$prop]))
|
||||
$ok = true;
|
||||
}
|
||||
|
||||
if ($ok) {
|
||||
$this->_prefs[$prop] = $value;
|
||||
$this->update_pref($prop, $value);
|
||||
}
|
||||
|
||||
return $this->_prefs[$prop];
|
||||
}
|
||||
|
||||
public function getPrefs($prop, $default = null)
|
||||
{
|
||||
$this->load_preferences();
|
||||
|
||||
return array_key_exists($prop, $this->_prefs) ? $this->_prefs[$prop] : $default;
|
||||
}
|
||||
|
||||
public static function set_sys_admins(Application $app, $admins)
|
||||
{
|
||||
try {
|
||||
$sql = "UPDATE usr SET create_db='0' WHERE create_db='1' AND usr_id != :usr_id";
|
||||
$stmt = $app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':usr_id' => $app['authentication']->getUser()->getId()]);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$sql = "UPDATE usr SET create_db='1' WHERE usr_id IN (" . implode(',', $admins) . ")";
|
||||
$stmt = $app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute();
|
||||
$stmt->closeCursor();
|
||||
|
||||
return true;
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public function get_locale()
|
||||
{
|
||||
return $this->locale ?: $this->app['conf']->get(['languages', 'default'], 'en');
|
||||
}
|
||||
|
||||
public function set_locale($locale)
|
||||
{
|
||||
if (!array_key_exists($locale, $this->app['locales.available'])) {
|
||||
throw new \InvalidArgumentException(sprintf('Locale %s is not recognized', $locale));
|
||||
}
|
||||
|
||||
$sql = 'UPDATE usr SET locale = :locale WHERE usr_id = :usr_id';
|
||||
$stmt = $this->app['phraseanet.appbox']->get_connection()->prepare($sql);
|
||||
$stmt->execute([':locale' => $locale, ':usr_id' => $this->get_id()]);
|
||||
$stmt->closeCursor();
|
||||
$this->delete_data_from_cache();
|
||||
|
||||
$this->locale = $locale;
|
||||
|
||||
return $this->locale;
|
||||
}
|
||||
|
||||
public function __sleep()
|
||||
{
|
||||
$vars = [];
|
||||
foreach ($this as $key => $value) {
|
||||
if (in_array($key, ['ACL', 'app']))
|
||||
continue;
|
||||
$vars[] = $key;
|
||||
}
|
||||
|
||||
return $vars;
|
||||
}
|
||||
|
||||
public static function purge()
|
||||
{
|
||||
self::$_instance = [];
|
||||
}
|
||||
}
|
@@ -144,19 +144,6 @@ abstract class base implements cache_cacheableInterface
|
||||
return $this->connection;
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces the connection
|
||||
*
|
||||
* @param \connection_pdo $connection
|
||||
* @return \base
|
||||
*/
|
||||
public function set_connection(\connection_pdo $connection)
|
||||
{
|
||||
$this->connection = $connection;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function get_cache()
|
||||
{
|
||||
return $this->app['cache'];
|
||||
|
@@ -12,7 +12,6 @@
|
||||
use Alchemy\Phrasea\Notification\Receiver;
|
||||
use Alchemy\Phrasea\Notification\Mail\MailInfoSomebodyAutoregistered;
|
||||
use Alchemy\Phrasea\Model\Entities\User;
|
||||
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
||||
|
||||
class eventsmanager_notify_autoregister extends eventsmanager_notifyAbstract
|
||||
{
|
||||
@@ -50,23 +49,8 @@ class eventsmanager_notify_autoregister extends eventsmanager_notifyAbstract
|
||||
|
||||
$mailColl = [];
|
||||
|
||||
$rsm = new ResultSetMappingBuilder($this->app['EM']);
|
||||
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
|
||||
$rsm->addScalarResult('base_id', 'base_id');
|
||||
$selectClause = $rsm->generateSelectClause();
|
||||
|
||||
$query = $this->app['EM']->createNativeQuery('
|
||||
SELECT b.base_id, '.$selectClause.' FROM Users u, basusr b
|
||||
WHERE u.id = b.usr_id
|
||||
AND b.base_id IN (' . implode(', ', array_keys($base_ids)) . ')
|
||||
AND u.model_of IS NULL
|
||||
AND b.actif="1"
|
||||
AND b.canadmin="1"
|
||||
AND u.deleted="0"', $rsm
|
||||
);
|
||||
|
||||
try {
|
||||
$rs = $query->getResult();
|
||||
$rs = $this->app['phraseanet.native-query']->getAdminsOfBases(array_keys($base_ids));
|
||||
|
||||
foreach ($rs as $row) {
|
||||
$user = $row[0];
|
||||
@@ -145,7 +129,7 @@ class eventsmanager_notify_autoregister extends eventsmanager_notifyAbstract
|
||||
}
|
||||
|
||||
$ret = [
|
||||
'text' => $this->app->trans('%user% s\'est enregistre sur une ou plusieurs %before_link% scollections %after_link%', ['%user%' => $user->getDisplayName(), '%before_link%' => '<a href="/admin/?section=users" target="_blank">', '%after_link%' => '</a>'])
|
||||
'text' => $this->app->trans('%user% s\'est enregistre sur une ou plusieurs %before_link% scollections %after_link%', ['%user%' => $user->getDisplayName($this->app['translator']), '%before_link%' => '<a href="/admin/?section=users" target="_blank">', '%after_link%' => '</a>'])
|
||||
, 'class' => ''
|
||||
];
|
||||
|
||||
@@ -179,15 +163,16 @@ class eventsmanager_notify_autoregister extends eventsmanager_notifyAbstract
|
||||
*/
|
||||
public function mail(User $to, User $registeredUser)
|
||||
{
|
||||
$body .= sprintf("Login : %s\n", $registeredUser->get_login());
|
||||
$body .= sprintf("%s : %s\n", _('admin::compte-utilisateur nom'), $registeredUser->get_firstname());
|
||||
$body .= sprintf("%s : %s\n", _('admin::compte-utilisateur prenom'), $registeredUser->get_lastname());
|
||||
$body .= sprintf("%s : %s\n", _('admin::compte-utilisateur email'), $registeredUser->get_email());
|
||||
$body .= sprintf("%s/%s\n", $registeredUser->get_job(), $registeredUser->get_company());
|
||||
$body = '';
|
||||
$body .= sprintf("Login : %s\n", $registeredUser->getLogin());
|
||||
$body .= sprintf("%s : %s\n", _('admin::compte-utilisateur nom'), $registeredUser->getFirstName());
|
||||
$body .= sprintf("%s : %s\n", _('admin::compte-utilisateur prenom'), $registeredUser->getLastName());
|
||||
$body .= sprintf("%s : %s\n", _('admin::compte-utilisateur email'), $registeredUser->getEmail());
|
||||
$body .= sprintf("%s/%s\n", $registeredUser->get_job(), $registeredUser->getCompany());
|
||||
|
||||
$readyToSend = false;
|
||||
try {
|
||||
$receiver = Receiver::fromUser($to);
|
||||
$receiver = Receiver::fromUser($to, $this->app['translator']);
|
||||
$readyToSend = true;
|
||||
} catch (Exception $e) {
|
||||
|
||||
|
@@ -81,7 +81,7 @@ class eventsmanager_notify_bridgeuploadfail extends eventsmanager_notifyAbstract
|
||||
try {
|
||||
$user = $this->app['manipulator.user']->getRepository()->find($params['usr_id']);
|
||||
$account = Bridge_Account::load_account($this->app, $params['account_id']);
|
||||
$receiver = Receiver::fromUser($user);
|
||||
$receiver = Receiver::fromUser($user, $this->app['translator']);
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
|
||||
|
@@ -97,7 +97,7 @@ class eventsmanager_notify_feed extends eventsmanager_notifyAbstract
|
||||
|
||||
$url = $this->app->url('lightbox', ['LOG' => $token]);
|
||||
|
||||
$receiver = Receiver::fromUser($user_to_notif);
|
||||
$receiver = Receiver::fromUser($user_to_notif, $this->app['translator']);
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
|
||||
|
@@ -102,7 +102,7 @@ class eventsmanager_notify_order extends eventsmanager_notifyAbstract
|
||||
if ($this->shouldSendNotificationFor($user->getId())) {
|
||||
$readyToSend = false;
|
||||
try {
|
||||
$receiver = Receiver::fromUser($user);
|
||||
$receiver = Receiver::fromUser($user, $this->app['translator']);
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
continue;
|
||||
@@ -140,7 +140,7 @@ class eventsmanager_notify_order extends eventsmanager_notifyAbstract
|
||||
return [];
|
||||
}
|
||||
|
||||
$sender = $user->getDisplayName();
|
||||
$sender = $user->getDisplayName($this->app['translator']);
|
||||
|
||||
$ret = [
|
||||
'text' => $this->app->trans('%user% a passe une %opening_link% commande %end_link%', [
|
||||
|
@@ -95,8 +95,8 @@ class eventsmanager_notify_orderdeliver extends eventsmanager_notifyAbstract
|
||||
$user_from = $this->app['manipulator.user']->getRepository()->find($params['from']);
|
||||
$user_to = $this->app['manipulator.user']->getRepository()->find($params['to']);
|
||||
|
||||
$receiver = Receiver::fromUser($user_to);
|
||||
$emitter = Emitter::fromUser($user_from);
|
||||
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
|
||||
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
|
||||
|
||||
$repository = $this->app['EM']->getRepository('Phraseanet:Basket');
|
||||
$basket = $repository->find($params['ssel_id']);
|
||||
@@ -148,7 +148,7 @@ class eventsmanager_notify_orderdeliver extends eventsmanager_notifyAbstract
|
||||
return [];
|
||||
}
|
||||
|
||||
$sender = $user->getDisplayName();
|
||||
$sender = $user->getDisplayName($this->app['translator']);
|
||||
|
||||
try {
|
||||
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
|
||||
|
@@ -78,8 +78,8 @@ class eventsmanager_notify_ordernotdelivered extends eventsmanager_notifyAbstrac
|
||||
$user_from = $this->app['manipulator.user']->getRepository()->find($params['from']);
|
||||
$user_to = $this->app['manipulator.user']->getRepository()->find($params['to']);
|
||||
|
||||
$receiver = Receiver::fromUser($user_to);
|
||||
$emitter = Emitter::fromUser($user_from);
|
||||
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
|
||||
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
|
||||
|
||||
$readyToSend = true;
|
||||
} catch (Exception $e) {
|
||||
@@ -111,7 +111,7 @@ class eventsmanager_notify_ordernotdelivered extends eventsmanager_notifyAbstrac
|
||||
return [];
|
||||
}
|
||||
|
||||
$sender = $user->getDisplayName();
|
||||
$sender = $user->getDisplayName($this->app['translator']);
|
||||
|
||||
$ret = [
|
||||
'text' => $this->app->trans('%user% a refuse la livraison de %quantity% document(s) pour votre commande', ['%user%' => $sender, '%quantity%' => $n])
|
||||
|
@@ -86,8 +86,8 @@ class eventsmanager_notify_push extends eventsmanager_notifyAbstract
|
||||
$user_from = $this->app['manipulator.user']->getRepository()->find($params['from']);
|
||||
$user_to = $this->app['manipulator.user']->getRepository()->find($params['to']);
|
||||
|
||||
$receiver = Receiver::fromUser($user_to);
|
||||
$emitter = Emitter::fromUser($user_from);
|
||||
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
|
||||
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
|
||||
@@ -123,7 +123,7 @@ class eventsmanager_notify_push extends eventsmanager_notifyAbstract
|
||||
return [];
|
||||
}
|
||||
|
||||
$sender = $user->getDisplayName();
|
||||
$sender = $user->getDisplayName($this->app['translator']);
|
||||
|
||||
$ret = [
|
||||
'text' => $this->app->trans('%user% vous a envoye un %before_link% panier %after_link%', ['%user%' => $sender, '%before_link%' => '<a href="#" onclick="openPreview(\'BASK\',1,\''
|
||||
|
@@ -10,7 +10,6 @@
|
||||
*/
|
||||
|
||||
use Alchemy\Phrasea\Notification\Receiver;
|
||||
use Doctrine\ORM\Query\ResultSetMappingBuilder;
|
||||
use Alchemy\Phrasea\Notification\Mail\MailInfoUserRegistered;
|
||||
|
||||
class eventsmanager_notify_register extends eventsmanager_notifyAbstract
|
||||
@@ -53,23 +52,10 @@ class eventsmanager_notify_register extends eventsmanager_notifyAbstract
|
||||
|
||||
$mailColl = [];
|
||||
|
||||
$rsm = new ResultSetMappingBuilder($this->app['EM']);
|
||||
$rsm->addRootEntityFromClassMetadata('Alchemy\Phrasea\Model\Entities\User', 'u');
|
||||
$rsm->addScalarResult('base_id', 'base_id');
|
||||
$selectClause = $rsm->generateSelectClause();
|
||||
|
||||
$query = $this->app['EM']->createNativeQuery('
|
||||
SELECT b.base_id, '.$selectClause.' FROM Users u, basusr b
|
||||
WHERE u.id = b.usr_id
|
||||
AND b.base_id IN (' . implode(', ', array_keys($base_ids)) . ')
|
||||
AND u.model_of IS NULL
|
||||
AND b.actif="1"
|
||||
AND b.canadmin="1"
|
||||
AND u.deleted="0"',
|
||||
$rsm);
|
||||
|
||||
try {
|
||||
foreach ($query->getResult() as $row) {
|
||||
$rs = $this->app['phraseanet.native-query']->getAdminsOfBases(array_keys($base_ids));
|
||||
|
||||
foreach ($rs as $row) {
|
||||
$user = $row[0];
|
||||
|
||||
if (!isset($mailColl[$user->getId()])) {
|
||||
@@ -117,7 +103,7 @@ class eventsmanager_notify_register extends eventsmanager_notifyAbstract
|
||||
$readyToSend = false;
|
||||
try {
|
||||
$admin_user = $this->app['manipulator.user']->getRepository()->find($usr_id);
|
||||
$receiver = Receiver::fromUser($admin_user);
|
||||
$receiver = Receiver::fromUser($admin_user, $this->app['translator']);
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
continue;
|
||||
@@ -155,7 +141,7 @@ class eventsmanager_notify_register extends eventsmanager_notifyAbstract
|
||||
return [];
|
||||
}
|
||||
|
||||
$sender = $user->getDisplayName();
|
||||
$sender = $user->getDisplayName($this->app['translator']);
|
||||
|
||||
$ret = [
|
||||
'text' => $this->app->trans('%user% demande votre approbation sur une ou plusieurs %before_link% collections %after_link%', ['%user%' => $sender, '%before_link%' => '<a href="' . $this->app->url('admin', ['section' => 'registrations']) . '" target="_blank">', '%after_link%' => '</a>'])
|
||||
|
@@ -74,7 +74,7 @@ class eventsmanager_notify_uploadquarantine extends eventsmanager_notifyAbstract
|
||||
//Sender
|
||||
if (null !== $user = $lazaretFile->getSession()->getUser()) {
|
||||
$sender = $domXML->createElement('sender');
|
||||
$sender->appendChild($domXML->createTextNode($user->getDisplayName()));
|
||||
$sender->appendChild($domXML->createTextNode($user->getDisplayName($this->app['translator'])));
|
||||
$root->appendChild($sender);
|
||||
|
||||
$this->notifyUser($user, $datas);
|
||||
@@ -109,7 +109,7 @@ class eventsmanager_notify_uploadquarantine extends eventsmanager_notifyAbstract
|
||||
if ($this->shouldSendNotificationFor($user->getId())) {
|
||||
$readyToSend = false;
|
||||
try {
|
||||
$receiver = Receiver::fromUser($user);
|
||||
$receiver = Receiver::fromUser($user, $this->app['translator']);
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
|
||||
|
@@ -101,8 +101,8 @@ class eventsmanager_notify_validate extends eventsmanager_notifyAbstract
|
||||
->find($params['ssel_id']);
|
||||
$title = $basket->getName();
|
||||
|
||||
$receiver = Receiver::fromUser($user_to);
|
||||
$emitter = Emitter::fromUser($user_from);
|
||||
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
|
||||
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
|
||||
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
@@ -141,7 +141,7 @@ class eventsmanager_notify_validate extends eventsmanager_notifyAbstract
|
||||
return [];
|
||||
}
|
||||
|
||||
$sender = $user->getDisplayName();
|
||||
$sender = $user->getDisplayName($this->app['translator']);
|
||||
|
||||
try {
|
||||
$basket = $this->app['converter.basket']->convert($ssel_id);
|
||||
|
@@ -96,8 +96,8 @@ class eventsmanager_notify_validationdone extends eventsmanager_notifyAbstract
|
||||
->find($params['ssel_id']);
|
||||
$title = $basket->getName();
|
||||
|
||||
$receiver = Receiver::fromUser($user_to);
|
||||
$emitter = Emitter::fromUser($user_from);
|
||||
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
|
||||
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
|
||||
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
@@ -135,7 +135,7 @@ class eventsmanager_notify_validationdone extends eventsmanager_notifyAbstract
|
||||
return [];
|
||||
}
|
||||
|
||||
$sender = $registered_user->getDisplayName();
|
||||
$sender = $registered_user->getDisplayName($this->app['translator']);
|
||||
|
||||
try {
|
||||
$repository = $this->app['EM']->getRepository('Alchemy\Phrasea\Model\Entities\Basket');
|
||||
|
@@ -102,8 +102,8 @@ class eventsmanager_notify_validationreminder extends eventsmanager_notifyAbstra
|
||||
->find($params['ssel_id']);
|
||||
$title = $basket->getName();
|
||||
|
||||
$receiver = Receiver::fromUser($user_to);
|
||||
$emitter = Emitter::fromUser($user_from);
|
||||
$receiver = Receiver::fromUser($user_to, $this->app['translator']);
|
||||
$emitter = Emitter::fromUser($user_from, $this->app['translator']);
|
||||
|
||||
$readyToSend = true;
|
||||
} catch (\Exception $e) {
|
||||
@@ -140,7 +140,7 @@ class eventsmanager_notify_validationreminder extends eventsmanager_notifyAbstra
|
||||
return [];
|
||||
}
|
||||
|
||||
$sender = $user->getDisplayName();
|
||||
$sender = $user->getDisplayName($this->app['translator']);
|
||||
|
||||
try {
|
||||
$basket = $this->app['converter.basket']->convert($ssel_id);
|
||||
|
@@ -50,7 +50,7 @@ class module_console_checkExtension extends Command
|
||||
$output->writeln(
|
||||
sprintf(
|
||||
"\nWill do the check with user <info>%s</info> (%s)\n"
|
||||
, $TestUser->getDisplayName()
|
||||
, $TestUser->getDisplayName($this->container['translator'])
|
||||
, $TestUser->getEmail()
|
||||
)
|
||||
);
|
||||
|
@@ -295,7 +295,7 @@ class module_report_activity extends module_report
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
$login = $this->app['manipulator.user']->getRepository()->find($usr)->getDisplayName();
|
||||
$login = $this->app['manipulator.user']->getRepository()->find($usr)->getDisplayName($this->app['translator']);
|
||||
|
||||
$this->setChamp($rs);
|
||||
|
||||
|
@@ -78,7 +78,7 @@ class module_report_add extends module_report
|
||||
$caption = $value;
|
||||
if ($field == "getter") {
|
||||
if (null !== $user = $this->app['manipulator.user']->getRepository()->find($value)) {
|
||||
$caption = $user->getDisplayName();
|
||||
$caption = $user->getDisplayName($this->app['translator']);
|
||||
}
|
||||
} elseif ($field == 'date')
|
||||
$caption = $this->app['date-formatter']->getPrettyString(new DateTime($value));
|
||||
|
@@ -78,7 +78,7 @@ class module_report_edit extends module_report
|
||||
$caption = $value;
|
||||
if ($field == "getter") {
|
||||
if (null !== $user = $this->app['manipulator.user']->getRepository()->find($value)) {
|
||||
$caption = $user->getDisplayName();
|
||||
$caption = $user->getDisplayName($this->app['translator']);
|
||||
}
|
||||
} elseif ($field == 'date') {
|
||||
$caption = $this->app['date-formatter']->getPrettyString(new DateTime($value));
|
||||
|
@@ -79,7 +79,7 @@ class module_report_push extends module_report
|
||||
$caption = $value;
|
||||
if ($field == "getter") {
|
||||
if (null !== $user = $this->app['manipulator.user']->getRepository()->find($value)) {
|
||||
$caption = $user->getDisplayName();
|
||||
$caption = $user->getDisplayName($this->app['translator']);
|
||||
}
|
||||
} elseif ($field == 'date') {
|
||||
$caption = $this->app['date-formatter']->getPrettyString(new DateTime($value));
|
||||
|
@@ -79,7 +79,7 @@ class module_report_sent extends module_report
|
||||
$caption = $value;
|
||||
if ($field == "getter") {
|
||||
if (null !== $user = $this->app['manipulator.user']->getRepository()->find($value)) {
|
||||
$caption = $user->getDisplayName();
|
||||
$caption = $user->getDisplayName($this->app['translator']);
|
||||
}
|
||||
} elseif ($field == 'date') {
|
||||
$caption = $this->app['date-formatter']->getPrettyString(new DateTime($value));
|
||||
|
@@ -79,7 +79,7 @@ class module_report_validate extends module_report
|
||||
$caption = $value;
|
||||
if ($field == "getter") {
|
||||
if (null !== $user = $this->app['manipulator.user']->getRepository()->find($value)) {
|
||||
$caption = $user->getDisplayName();
|
||||
$caption = $user->getDisplayName($this->app['translator']);
|
||||
}
|
||||
} elseif ($field == 'date') {
|
||||
$caption = $this->app['date-formatter']->getPrettyString(new DateTime($value));
|
||||
|
@@ -100,7 +100,7 @@ class patch_320alpha4b implements patchInterface
|
||||
|
||||
$entry = new FeedEntry();
|
||||
$entry->setAuthorEmail($user->getEmail());
|
||||
$entry->setAuthorName($user->getDisplayName());
|
||||
$entry->setAuthorName($user->getDisplayName($app['translator']));
|
||||
$entry->setFeed($feed);
|
||||
$entry->setPublisher($publishers->first());
|
||||
$entry->setTitle($row['name']);
|
||||
@@ -188,11 +188,11 @@ class patch_320alpha4b implements patchInterface
|
||||
|
||||
if ( ! array_key_exists($user_key, self::$feeds) || ! isset(self::$feeds[$user_key][$feed_key])) {
|
||||
if ($homelink == '1')
|
||||
$title = $user->getDisplayName() . ' - ' . 'homelink Feed';
|
||||
$title = $user->getDisplayName($app['translator']) . ' - ' . 'homelink Feed';
|
||||
elseif ($pub_restrict == '1')
|
||||
$title = $user->getDisplayName() . ' - ' . 'private Feed';
|
||||
$title = $user->getDisplayName($app['translator']) . ' - ' . 'private Feed';
|
||||
else
|
||||
$title = $user->getDisplayName() . ' - ' . 'public Feed';
|
||||
$title = $user->getDisplayName($app['translator']) . ' - ' . 'public Feed';
|
||||
|
||||
$feed = new Feed();
|
||||
$publisher = new FeedPublisher();
|
||||
|
@@ -1728,14 +1728,12 @@ class record_adapter implements record_Interface, cache_cacheableInterface
|
||||
ON (g.rid_parent = r.record_id)
|
||||
WHERE rid_child = :record_id';
|
||||
|
||||
$params = array(
|
||||
':GV_site' => $this->app['conf']->get(['main', 'key'])
|
||||
, ':usr_id' => $this->app['authentication']->getUser()->get_id()
|
||||
, ':record_id' => $this->get_record_id()
|
||||
];
|
||||
|
||||
$stmt = $this->get_databox()->get_connection()->prepare($sql);
|
||||
$stmt->execute($params);
|
||||
$stmt->execute([
|
||||
':site' => $this->app['conf']->get(['main', 'key']),
|
||||
':usr_id' => $this->app['authentication']->getUser()->getId(),
|
||||
':record_id' => $this->get_record_id(),
|
||||
]);
|
||||
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt->closeCursor();
|
||||
|
||||
|
@@ -54,7 +54,7 @@ class record_orderElement extends record_adapter
|
||||
if ($this->order_master_id) {
|
||||
$user = $this->app['manipulator.user']->getRepository()->find($this->order_master_id);
|
||||
|
||||
return $user->getDisplayName();
|
||||
return $user->getDisplayName($this->app['translator']);
|
||||
}
|
||||
|
||||
return '';
|
||||
|
@@ -39,7 +39,7 @@ class set_exportftp extends set_export
|
||||
|
||||
$text_mail_receiver = "Bonjour,\n"
|
||||
. "L'utilisateur "
|
||||
. $this->app['authentication']->getUser()->getDisplayName() . " (login : " . $this->app['authentication']->getUser()->getLogin() . ") "
|
||||
. $this->app['authentication']->getUser()->getDisplayName($this->app['translator']) . " (login : " . $this->app['authentication']->getUser()->getLogin() . ") "
|
||||
. "a fait un transfert FTP sur le serveur ayant comme adresse \""
|
||||
. $host . "\" avec le login \"" . $login . "\" "
|
||||
. "et pour repertoire de destination \""
|
||||
|
@@ -55,7 +55,7 @@
|
||||
</div>
|
||||
{% else %}
|
||||
{% if app['authentication'].getUser() is not none %}
|
||||
{% set username = '<b>' ~ app['authentication'].getUser().getDisplayName() ~ '</b>' %}
|
||||
{% set username = '<b>' ~ app['authentication'].getUser().getDisplayName(app['translator']) ~ '</b>' %}
|
||||
<div id="hello-box" class="span6 offset3">
|
||||
<p class="login_hello">
|
||||
{% trans with {'%username%' : username} %}Hello %username%{% endtrans %}
|
||||
|
@@ -38,7 +38,7 @@
|
||||
</div>
|
||||
|
||||
{% if app['authentication'].getUser() is not none %}
|
||||
{% set username = '<b>' ~ app['authentication'].getUser().getDisplayName() ~ '</b>' %}
|
||||
{% set username = '<b>' ~ app['authentication'].getUser().getDisplayName(app['translator']) ~ '</b>' %}
|
||||
<div id="hello-box" class="span6 offset3">
|
||||
<p class="login_hello">
|
||||
{% trans with {'%username%' : username} %}Hello %username%{% endtrans %}
|
||||
|
@@ -7,7 +7,7 @@
|
||||
<img style="vertical-align:middle;"
|
||||
src="/skins/lightbox/{% if validationDatas.getAgreement() == true %}agree.png{% else %}disagree.png{% endif %}" />
|
||||
{% endif %}
|
||||
{{ validationDatas.getParticipant().getUser().getDisplayName() }}
|
||||
{{ validationDatas.getParticipant().getUser().getDisplayName(app['translator']) }}
|
||||
</h3>
|
||||
{% if validationDatas.getNote() != '' %}
|
||||
<p style="text-align:left;">{{ 'validation:: note' | trans }} : {{ validationDatas.getNote()|nl2br }}</p>
|
||||
|
@@ -25,7 +25,7 @@
|
||||
</a>
|
||||
{% if application.get_creator() is not none %}
|
||||
<small>
|
||||
{% set user_name = application.get_creator().getDisplayName() %}
|
||||
{% set user_name = application.get_creator().getDisplayName(app['translator']) %}
|
||||
{% trans with {'%user_name%' : user_name} %}par %user_name%{% endtrans %}
|
||||
</small>
|
||||
{% endif%}
|
||||
|
@@ -44,7 +44,7 @@
|
||||
<li>
|
||||
<label for="adm_{{ user.getId() }}" class="checkbox">
|
||||
<input name="admins[]" type="checkbox" value="{{ user.getId() }}" id="adm_{{ user.getId() }}" checked />
|
||||
{{ user.getDisplayName() }}
|
||||
{{ user.getDisplayName(app['translator']) }}
|
||||
</label>
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
@@ -10,7 +10,7 @@
|
||||
<td colspan="2" style="height: 10px;"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><strong>{{ 'admin::compte-utilisateur nom' | trans }} : </strong>{{ user.getDisplayName() }}</td>
|
||||
<td colspan="2"><strong>{{ 'admin::compte-utilisateur nom' | trans }} : </strong>{{ user.getDisplayName(app['translator']) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2"><strong>{{ 'admin::compte-utilisateur societe' | trans }} : </strong>{{ user.getCompany() }}</td>
|
||||
@@ -102,9 +102,9 @@
|
||||
<tr title="{{ _self.tooltip_connected_users(row) | e }}" class="{% if loop.index is odd %}odd{% else %}even{% endif %} usrTips" id="TREXP_{{ row.getId()}}">
|
||||
|
||||
{% if row.getId() == app['session'].get('session_id') %}
|
||||
<td style="color:#ff0000"><i>{{ row.getUser().getDisplayName() }}</i></td>
|
||||
<td style="color:#ff0000"><i>{{ row.getUser().getDisplayName(app['translator']) }}</i></td>
|
||||
{% else %}
|
||||
<td>{{ row.getUser().getDisplayName() }}</td>
|
||||
<td>{{ row.getUser().getDisplayName(app['translator']) }}</td>
|
||||
{% endif %}
|
||||
|
||||
<td>
|
||||
|
@@ -98,11 +98,11 @@
|
||||
<fieldset>
|
||||
<legend>{{ 'setup:: administrateurs de l\'application' | trans }}</legend>
|
||||
<ul class="unstyled">
|
||||
{% for usr_id, usr_login in admins %}
|
||||
{% for user in admins %}
|
||||
<li>
|
||||
<label class="checkbox" for="adm_{{ usr_id }}">
|
||||
<input type="checkbox" id="adm_{{ usr_id }}" name="admins[]" value="{{ usr_id }}" checked />
|
||||
{{ usr_login }}
|
||||
<label class="checkbox" for="adm_{{ user.getId() }}">
|
||||
<input type="checkbox" id="adm_{{ user.getId() }}" name="admins[]" value="{{ user.getId() }}" checked />
|
||||
{{ user.getLogin() }}
|
||||
</label>
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
@@ -118,7 +118,7 @@
|
||||
{{ 'Reglages:: reglages d inscitpition automatisee' | trans }}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% set display_name = main_user.getDisplayName() %}
|
||||
{% set display_name = main_user.getDisplayName(app['translator']) %}
|
||||
{% trans with {'%display_name%' : display_name} %}Edition des droits de %display_name%{% endtrans %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
@@ -131,7 +131,7 @@
|
||||
<select name="template">
|
||||
<option value="">{{ 'boutton::choisir' | trans }}</option>
|
||||
{% for template in templates %}
|
||||
<option value="{{ template.getId() }}">{{ template.getDisplayName() }}</option>
|
||||
<option value="{{ template.getId() }}">{{ template.getDisplayName(app['translator']) }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<button class="btn" type='button' id='reset_rights'>{{ 'Delete all users rights' | trans }}</button>
|
||||
|
@@ -143,7 +143,7 @@
|
||||
{{ publisher.getUser().getId() }}
|
||||
</td>
|
||||
<td valign="center" align="left">
|
||||
{{ publisher.getUser().getDisplayName() }}
|
||||
{{ publisher.getUser().getDisplayName(app['translator']) }}
|
||||
</td>
|
||||
<td valign="center" align="left">
|
||||
{{ publisher.getUser().getEmail() }}
|
||||
|
@@ -60,7 +60,7 @@
|
||||
<select name="template_chooser" class="input-medium">
|
||||
<option value="">{{ 'boutton::choisir' | trans }}</option>
|
||||
{% for template in templates %}
|
||||
<option value="{{ template.getId() }}">{{ template.getDisplayName() }}</option>
|
||||
<option value="{{ template.getId() }}">{{ template.getDisplayName(app['translator']) }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<button type="submit" class="btn">{{ 'boutton::appliquer' | trans }}</button>
|
||||
@@ -149,7 +149,7 @@
|
||||
</td>
|
||||
{% if usr.getLastModel() is not none %}
|
||||
<td>
|
||||
{{ usr.getLastModel().getDisplayName()}}
|
||||
{{ usr.getLastModel().getDisplayName(app['translator'])}}
|
||||
</td>
|
||||
{% endif %}
|
||||
<td>
|
||||
|
@@ -55,7 +55,7 @@
|
||||
</div>
|
||||
{% else %}
|
||||
{% if user is not none %}
|
||||
{% set username = '<b>' ~ app['authentication'].getUser().getDisplayName() ~ '</b>' %}
|
||||
{% set username = '<b>' ~ app['authentication'].getUser().getDisplayName(app['translator']) ~ '</b>' %}
|
||||
<div id="hello-box" class="span6 offset3">
|
||||
<p class="login_hello">
|
||||
{% trans with {'%username%' : username} %}Hello %username%{% endtrans %}
|
||||
|
@@ -38,7 +38,7 @@
|
||||
</div>
|
||||
|
||||
{% if user is not none %}
|
||||
{% set username = '<b>' ~ app['authentication'].getUser().getDisplayName() ~ '</b>' %}
|
||||
{% set username = '<b>' ~ app['authentication'].getUser().getDisplayName(app['translator']) ~ '</b>' %}
|
||||
<div id="hello-box" class="span6 offset3">
|
||||
<p class="login_hello">
|
||||
{% trans with {'%username%' : username} %}Hello %username%{% endtrans %}
|
||||
|
@@ -60,7 +60,7 @@
|
||||
</div>
|
||||
<div class="divexterne" style="height:270px;overflow-x:hidden;overflow-y:auto;position:relative">
|
||||
{% if selected_basket is not none and selected_basket.getPusher(app) is not none %}
|
||||
{% set pusher_name = selected_basket.getPusher(app).getDisplayName() %}
|
||||
{% set pusher_name = selected_basket.getPusher(app).getDisplayName(app['translator']) %}
|
||||
<div class="txtPushClient">
|
||||
{% trans with {'%pusher_name%' : pusher_name} %}paniers:: panier emis par %pusher_name%{% endtrans %}
|
||||
</div>
|
||||
|
@@ -145,7 +145,7 @@
|
||||
{% endif %}
|
||||
{{ _self.choose_title('download', choose_export_title, default_export_title) }}
|
||||
|
||||
{% if app['phraseanet.registry'].get('GV_requireTOUValidationForExport') == true %}
|
||||
{% if app['conf'].get(['registry', 'actions', 'tou-validation-required-for-export']) == true %}
|
||||
<div class="well-small">
|
||||
<label for="TOU_acceptDL" class="checkbox">
|
||||
<input type="checkbox" name="TOU_accept" id="TOU_acceptDL" value="1" />
|
||||
@@ -226,7 +226,7 @@
|
||||
{% endif %}
|
||||
{{ _self.choose_title('sendmail', choose_export_title, default_export_title) }}
|
||||
|
||||
{% if app['phraseanet.registry'].get('GV_requireTOUValidationForExport') == true %}
|
||||
{% if app['conf'].get(['registry', 'actions', 'tou-validation-required-for-export']) == true %}
|
||||
<div class="well-small">
|
||||
<label for="TOU_acceptMail" class="checkbox">
|
||||
<input type="checkbox" name="TOU_accept" id="TOU_acceptMail" value="1" />
|
||||
@@ -379,7 +379,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if app['phraseanet.registry'].get('GV_requireTOUValidationForExport') == true %}
|
||||
{% if app['conf'].get(['registry', 'actions', 'tou-validation-required-for-export']) == true %}
|
||||
<div class="well-small">
|
||||
<label for="TOU_acceptOrder" class="checkbox">
|
||||
<input type="checkbox" name="TOU_accept" id="TOU_acceptOrder" value="1" />
|
||||
@@ -460,7 +460,7 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if app['phraseanet.registry'].get('GV_requireTOUValidationForExport') == true %}
|
||||
{% if app['conf'].get(['registry', 'actions', 'tou-validation-required-for-export']) == true %}
|
||||
<div class="well-small">
|
||||
<label for="TOU_acceptFTP" class="checkbox">
|
||||
<input type="checkbox" name="TOU_accept" id="TOU_acceptFTP" value="1" />
|
||||
@@ -636,7 +636,7 @@
|
||||
}
|
||||
});
|
||||
|
||||
{% set max_download = app['phraseanet.registry'].get('GV_download_max', 120) %}
|
||||
{% set max_download = app['conf'].get(['registry', 'actions', 'download-max-size'], 120) %}
|
||||
{% set alert_too_big_one %}
|
||||
{% trans with {'%max_download%' : max_download} %}You can not directly download more than %max_download% Mo ; time to package all documents is too long{% endtrans %}
|
||||
{% endset %}
|
||||
|
@@ -27,7 +27,7 @@
|
||||
{% set classuser = 'disagree' %}
|
||||
{% endif %}
|
||||
{% set participant = validation_data.getParticipant().getUser() %}
|
||||
<li class="{% if participant.getId() == app['authentication'].getUser().getId() %}me{% endif %} {{classuser}} userchoice">{{participant.getDisplayName()}}</li>
|
||||
<li class="{% if participant.getId() == app['authentication'].getUser().getId() %}me{% endif %} {{classuser}} userchoice">{{participant.getDisplayName(app['translator'])}}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
@@ -25,7 +25,7 @@
|
||||
{% set classuser = 'disagree' %}
|
||||
{% endif %}
|
||||
{% set participant = choice.getParticipant().getUser() %}
|
||||
<li class="{% if participant.getId() == app['authentication'].getUser().getId() %}me{% endif %} {{classuser}} userchoice">{{participant.getDisplayName()}}</li>
|
||||
<li class="{% if participant.getId() == app['authentication'].getUser().getId() %}me{% endif %} {{classuser}} userchoice">{{participant.getDisplayName(app['translator'])}}</li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
@@ -33,7 +33,7 @@
|
||||
{% set imguser = '<img src="/skins/lightbox/disagree.png" />' %}
|
||||
{% set styleuser = '' %}
|
||||
{% endif %}
|
||||
<b style="{{styleuser}}">{{imguser|raw}} {{validationDatas.getParticipant().getUser().getDisplayName()}}</b>
|
||||
<b style="{{styleuser}}">{{imguser|raw}} {{validationDatas.getParticipant().getUser().getDisplayName(app['translator'])}}</b>
|
||||
{% if validationDatas.getNote() != '' %}
|
||||
: {{validationDatas.getNote()|nl2br}}
|
||||
{% endif %}
|
||||
|
@@ -10,7 +10,7 @@
|
||||
{% if validationDatas.getNote() != '' %}
|
||||
<div class="note_wrapper ui-corner-all {% if validationDatas.getParticipant().getUser().getId() == app['authentication'].getUser().getId() %}my_note{% endif %} ">
|
||||
<span class="note_author title15">
|
||||
{{validationDatas.getParticipant().getUser().getDisplayName()}}
|
||||
{{validationDatas.getParticipant().getUser().getDisplayName(app['translator'])}}
|
||||
</span> : {{ validationDatas.getNote()|nl2br }}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
@@ -122,7 +122,7 @@
|
||||
<div class="authentication-user-pres-phraseanet well">
|
||||
<ul class="unstyled">
|
||||
<li class="one-line">
|
||||
<i class="icon-user"></i>{{ user.getDisplayName() }}
|
||||
<i class="icon-user"></i>{{ user.getDisplayName(app['translator']) }}
|
||||
</li>
|
||||
{% if user.getEmail() %}
|
||||
<li class="one-line">
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{% extends 'prod/Tooltip/Tooltip.html.twig' %}
|
||||
|
||||
{% set title %}
|
||||
app['authentication'].getUser().getDisplayName()
|
||||
app['authentication'].getUser().getDisplayName(app['translator'])
|
||||
{% endset %}
|
||||
{% set width = 300 %}
|
||||
{% set maxwidth = null %}
|
||||
@@ -12,7 +12,7 @@
|
||||
<img style="margin:14px 8px;" src="/skins/icons/user.png"/>
|
||||
</div>
|
||||
<div class="PNB" style="left:100px;">
|
||||
<h1> {{ app['authentication'].getUser().getDisplayName() }}</h1>
|
||||
<h1> {{ app['authentication'].getUser().getDisplayName(app['translator']) }}</h1>
|
||||
<ul>
|
||||
<li>{{ app['authentication'].getUser().getEmail() }}</li>
|
||||
<li>{{ app['authentication'].getUser().getCompany() }}</li>
|
||||
|
@@ -60,7 +60,7 @@
|
||||
|
||||
{% set list_participants = list_participants ~ '<a class="UserTips" tooltipsrc="' ~ path('prod_tooltip_user', { 'usr_id' : Participant.getUser().getId() }) ~ '" href="/user/'
|
||||
~ Participant.getUser().getId() ~ '/">'
|
||||
~ Participant.getUser().getDisplayName
|
||||
~ Participant.getUser().getDisplayName(app['translator'])
|
||||
~ '</a>' %}
|
||||
{% endfor %}
|
||||
{% trans with {'%list_participants%' : list_participants} %}Sent for validation to %list_participants%{% endtrans %}
|
||||
|
@@ -85,7 +85,7 @@
|
||||
{% endif %}
|
||||
|
||||
{% set list_participants = list_participants ~ '<a class="UserTips" tooltipsrc="' ~ path('prod_tooltip_user', { 'usr_id' : Participant.getUser().getId() }) ~ '" href="/user/' ~ Participant.getUser().getId() ~ '/">' %}
|
||||
{% set list_participants = list_participants ~ Participant.getUser().getDisplayName %}
|
||||
{% set list_participants = list_participants ~ Participant.getUser().getDisplayName(app['translator']) %}
|
||||
{% set list_participants = list_participants ~ '</a>' %}
|
||||
{% endfor %}
|
||||
{% trans with {'%list_participants%' : list_participants} %}Sent for validation to %list_participants%{% endtrans %}
|
||||
|
@@ -112,7 +112,7 @@
|
||||
{% endif %}
|
||||
{% if basket.getPusher(app) %}
|
||||
<td>
|
||||
{% set pusher = basket.getPusher(app).getDisplayName() %}
|
||||
{% set pusher = basket.getPusher(app).getDisplayName(app['translator']) %}
|
||||
<img
|
||||
class="basketTips"
|
||||
title="{% trans with {'%pusher%' : pusher} %}paniers:: panier recu de %pusher%{% endtrans %}"
|
||||
@@ -355,7 +355,7 @@
|
||||
{% for choice in basket_element.getValidationDatas() %}
|
||||
{% if basket.getValidation().getParticipant(app['authentication'].getUser(), app).getCanSeeOthers() or choice.getParticipant().getUser() == app['authentication'].getUser() %}
|
||||
<tr>
|
||||
<td> {{ choice.getParticipant().getUser().getDisplayName() }} </td>
|
||||
<td> {{ choice.getParticipant().getUser().getDisplayName(app['translator']) }} </td>
|
||||
<td>
|
||||
{% if choice.getParticipant().getCanAgree() %}
|
||||
{% if choice.getAgreement() == true %}
|
||||
|
@@ -29,7 +29,7 @@
|
||||
<img src="/skins/icons/user.png"/>
|
||||
</td>
|
||||
<td style="width:150px;padding:5px;">
|
||||
{{ owner.getUser().getDisplayName() }}
|
||||
{{ owner.getUser().getDisplayName(app['translator']) }}
|
||||
<input type="hidden" name="usr_id" value="{{ owner.getUser().getId() }}" />
|
||||
</td>
|
||||
<td style="padding-right:10px;min-width:100px;">
|
||||
|
@@ -188,7 +188,7 @@
|
||||
<img src="/skins/icons/user.png"/>
|
||||
</td>
|
||||
<td class="infos" >
|
||||
<span class="name">{{ entry.getUser().getDisplayName() }}</span>
|
||||
<span class="name">{{ entry.getUser().getDisplayName(app['translator']) }}</span>
|
||||
<span class="subtite"></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
@@ -106,7 +106,7 @@
|
||||
{% set recommendation = recommendation
|
||||
~ ' <a href="#" class="recommended_users UserTips" tooltipsrc="' ~ path('prod_tooltip_user', { 'usr_id' : user.getId() }) ~ '">'
|
||||
~ '<input type="hidden" name="usr_id" value="' ~ user.getId() ~ '" />'
|
||||
~ user.getDisplayName()
|
||||
~ user.getDisplayName(app['translator'])
|
||||
~ '</a>' %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
@@ -139,7 +139,7 @@
|
||||
<img src="/skins/icons/user.png"/>
|
||||
</td>
|
||||
<td>
|
||||
{{ user.getDisplayName() }}
|
||||
{{ user.getDisplayName(app['translator']) }}
|
||||
<input type="hidden" name="usr_id" value="{{ user.getId() }}" />
|
||||
</td>
|
||||
<td>
|
||||
|
@@ -46,7 +46,7 @@
|
||||
<label for="feed_add_subtitle">{{ 'publication : sous titre' | trans }}</label>
|
||||
<textarea id="feed_add_subtitle" name="subtitle">{{desc}}</textarea>
|
||||
<label for="feed_add_author_name">{{ 'publication : autheur' | trans }}</label>
|
||||
<input class="required_text" type="text" name="author_name" id="feed_add_author_name" value="{{ app['authentication'].getUser().getDisplayName() }}" />
|
||||
<input class="required_text" type="text" name="author_name" id="feed_add_author_name" value="{{ app['authentication'].getUser().getDisplayName(app['translator']) }}" />
|
||||
<label for="feed_add_author_mail">{{ 'publication : email autheur' | trans }}</label>
|
||||
<input class="required_text" type="text" name="author_mail" id="feed_add_author_mail" value="{{ app['authentication'].getUser().getEmail() }}" />
|
||||
</div>
|
||||
|
@@ -804,7 +804,7 @@
|
||||
<div id="look_box_screen">
|
||||
<div class="box">
|
||||
<div class="" style="float:left; width:100%;margin-top:20px;">
|
||||
{% set mod = app['authentication'].getUser().getPrefs('advanced_search_reload') %}
|
||||
{% set mod = app['settings'].getUserSetting(app['authentication'].getUser(), 'advanced_search_reload') %}
|
||||
<label class="checkbox inline" for="user_settings_advanced_search_reload">
|
||||
<input onchange="setPref('advanced_search_reload',$(this).attr('checked')?'1' : '0');" name="advanced_search_reload" type="checkbox" style="margin: 3px 0 0 -18px;" class="checkbox" value="1" id="user_settings_advanced_search_reload" {% if mod == '1' %}checked="checked"{% endif %}/>
|
||||
{{ 'Use latest search settings on Production loading' | trans }}
|
||||
@@ -833,8 +833,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="box">
|
||||
{% set rollover_thumbnail = app['authentication'].getUser().getSettingValue('rollover_thumbnail') %}
|
||||
<h1>{% trans 'Presentation de vignettes' %}</h1>
|
||||
{% set rollover_thumbnail = app['settings'].getUserSetting(app['authentication'].getUser(), 'rollover_thumbnail') %}
|
||||
<h1>{{ 'Presentation de vignettes' | trans }}</h1>
|
||||
<label class="radio" for="rollover_caption">
|
||||
<input onchange="setPref('rollover_thumbnail',$(this).val());" name="rollover_thumbnail" type="radio" class="radio" value="caption" id="rollover_caption" {% if rollover_thumbnail == 'caption' %}checked="checked" {% endif %}/>
|
||||
{{ 'Iconographe (description au rollover)' | trans }}
|
||||
@@ -845,8 +845,8 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="box">
|
||||
{% set technical_display = app['authentication'].getUser().getSettingValue('technical_display') %}
|
||||
<h1>{% trans 'Informations techniques' %}</h1>
|
||||
{% set technical_display = app['settings'].getUserSetting(app['authentication'].getUser(), 'technical_display') %}
|
||||
<h1>{{'Informations techniques' | trans }}</h1>
|
||||
<label class="radio" for="technical_show">
|
||||
<input onchange="setPref('technical_display',$(this).val());" name="technical_display" type="radio" class="radio" value="1" id="technical_show" {% if technical_display == '1' %}checked="checked"{% endif %}/>
|
||||
{{ 'Afficher' | trans }}
|
||||
@@ -861,8 +861,8 @@
|
||||
</label>
|
||||
</div>
|
||||
<div class="box">
|
||||
{% set doctype_display = app['authentication'].getUser().getSettingValue('doctype_display') %}
|
||||
<h1>{% trans 'Type de documents' %}</h1>
|
||||
{% set doctype_display = app['settings'].getUserSetting(app['authentication'].getUser(), 'doctype_display') %}
|
||||
<h1>{{'Type de documents' | trans }}</h1>
|
||||
<label class="checkbox" for="doctype_display_show">
|
||||
<input onchange="setPref('doctype_display',($(this).attr('checked') ? '1' :'0'));" name="doctype_display" type="checkbox" class="checkbox" value="1" id="doctype_display_show" {% if doctype_display != '0' %}checked="checked"{% endif %}/>
|
||||
{{ 'Afficher une icone' | trans }}
|
||||
@@ -908,12 +908,12 @@
|
||||
<option value="PUBLI" {% if start_page_pref == 'PUBLI' %}selected="selected"{% endif %} >
|
||||
{{ 'Publications' | trans }}
|
||||
</option>
|
||||
<option value="HELP" {% if start_page_pref == 'HELP' %}selected="selected"{% endif %} >
|
||||
<option value="HELP" {% if start_page_pref == 'HELP' %}}selected="selected"{% endif %} >
|
||||
{{ 'Aide' | trans }}
|
||||
</option>
|
||||
</select>
|
||||
<input type="text" class="span4" name="start_page_value" value="{{app['authentication'].getUser().getSettingValue('start_page_query')}}" style="display:{% if start_page_pref == 'QUERY' %}inline{% else %}none{% endif %}" />
|
||||
<input type="button" class="btn btn-inverse" value="{% trans 'boutton::valider' %}" onclick="set_start_page();" />
|
||||
<input type="text" class="span4" name="start_page_value" value="{{ app['settings'].getUserSetting(app['authentication'].getUser(), 'start_page_query')}}" style="display:{% if start_page_pref == 'QUERY' %}inline{% else %}none{% endif %}" />
|
||||
<input type="button" class="btn btn-inverse" value="{{'boutton::valider' | trans }}" onclick="set_start_page();" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -42,7 +42,7 @@
|
||||
{% for order in orders %}
|
||||
{% set deadline = app['date-formatter'].getPrettyString(order.getDeadline()) %}
|
||||
<tr id="order_{{ order.getId() }}" class="order_row" {{ current_date > order.getDeadline() ? "style=color:#777": "" }}>
|
||||
<td>{{ order.getUser().getDisplayName() }}</td>
|
||||
<td>{{ order.getUser().getDisplayName(app['translator']) }}</td>
|
||||
<td>{{ app['date-formatter'].getPrettyString(order.getCreatedOn()) }}</td>
|
||||
<td>
|
||||
{% if deadline != '' %}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{% import 'common/thumbnail.html.twig' as thumbnail %}
|
||||
{% set displayName = order.getUser().getDisplayName() %}
|
||||
{% set displayName = order.getUser().getDisplayName(app['translator']) %}
|
||||
|
||||
<div class="page-header">
|
||||
<h1>{% trans with {'%displayName%' : displayName} %}%displayName% wants to place an order{% endtrans %}</h1>
|
||||
|
@@ -57,7 +57,7 @@
|
||||
<span class="actor">
|
||||
{% if app['acl'].get(app['authentication'].getUser()).has_right_on_base(record.get_base_id(), 'canreport') %}
|
||||
{% if done['user'] and done['user'].getId() != app['authentication'].getUser().getId() %}
|
||||
{% set user_infos = done['user'].getDisplayName() %}
|
||||
{% set user_infos = done['user'].getDisplayName(app['translator']) %}
|
||||
{% trans with {'%user_infos%' : user_infos} %}report:: par %user_infos%{% endtrans %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
@@ -268,7 +268,7 @@
|
||||
<p>{{ "Date" | trans }} : <span class="info">{{ app['date-formatter'].getPrettyString(file.getCreated()) }}</span></p>
|
||||
{% if file.getSession().getUser() is not none %}
|
||||
<p>
|
||||
{% set username = '<a href="#" class="username userTips" tooltipsrc="' ~ path('prod_tooltip_user', { 'usr_id' : file.getSession().getUser(app).getId() }) ~ '/">' ~ file.getSession().getUser().getDisplayName() ~ '</a>' %}
|
||||
{% set username = '<a href="#" class="username userTips" tooltipsrc="' ~ path('prod_tooltip_user', { 'usr_id' : file.getSession().getUser(app).getId() }) ~ '/">' ~ file.getSession().getUser().getDisplayName(app['translator']) ~ '</a>' %}
|
||||
{% trans with {'%username%' : username} %}Uploaded by : %username%{% endtrans %}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
@@ -61,9 +61,11 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
|
||||
if (!self::$apiInitialized) {
|
||||
self::$account = \API_OAuth2_Account::load_with_user(self::$DI['app'], self::$DI['oauth2-app-user_notAdmin'], self::$DI['user_notAdmin']);
|
||||
self::$account->set_revoked(false);
|
||||
self::$token = self::$account->get_token()->get_value();
|
||||
|
||||
self::$adminAccount = \API_OAuth2_Account::load_with_user(self::$DI['app'], self::$DI['oauth2-app-user'], self::$DI['user']);
|
||||
self::$adminAccount->set_revoked(false);
|
||||
self::$adminToken = self::$adminAccount->get_token()->get_value();
|
||||
|
||||
self::$apiInitialized = true;
|
||||
@@ -549,8 +551,10 @@ abstract class ApiTestCase extends \PhraseanetWebTestCase
|
||||
public function testStoryRoute()
|
||||
{
|
||||
$this->setToken(self::$token);
|
||||
self::$DI['app']['session']->set('usr_id', self::$DI['user']->get_id());
|
||||
self::$DI['record_story_1']->appendChild(self::$DI['record_1']);
|
||||
self::$DI['app']['session']->set('usr_id', self::$DI['user']->getId());
|
||||
if (false === self::$DI['record_story_1']->hasChild(self::$DI['record_1'])) {
|
||||
self::$DI['record_story_1']->appendChild(self::$DI['record_1']);
|
||||
}
|
||||
|
||||
self::$DI['app']['session']->remove('usr_id');
|
||||
|
||||
|
@@ -15,33 +15,13 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
{
|
||||
$app = $this->loadApp();
|
||||
|
||||
$authenticator = new Authenticator(self::$DI['app'], $browser, $session, $em);
|
||||
$app['browser'] = $browser = $this->getBrowserMock();
|
||||
$app['session'] = $session = $this->getSessionMock();
|
||||
$app['EM'] = $em = $this->getEntityManagerMock();
|
||||
|
||||
$authenticator = new Authenticator($app, $browser, $session, $em);
|
||||
$this->assertNull($authenticator->getUser());
|
||||
}
|
||||
/**
|
||||
* @covers Alchemy\Phrasea\Authentication\Authenticator::getUser
|
||||
*/
|
||||
public function testGetUserWhenAuthenticated()
|
||||
{
|
||||
$app = $this->loadApp();
|
||||
|
||||
$user = self::$DI['user'];
|
||||
|
||||
self::$DI['app']['browser'] = $browser = $this->getBrowserMock();
|
||||
self::$DI['app']['session'] = $session = $this->getSessionMock();
|
||||
|
||||
$sessionEntity = new Session();
|
||||
$sessionEntity->setUser($user);
|
||||
$sessionEntity->setUserAgent('');
|
||||
self::$DI['app']['EM']->persist($sessionEntity);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$session->set('usr_id', $user->getId());
|
||||
$session->set('session_id', $sessionEntity->getId());
|
||||
|
||||
$authenticator = new Authenticator(self::$DI['app'], $browser, $session, self::$DI['app']['EM']);
|
||||
$this->assertEquals($user, $authenticator->getUser());
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Alchemy\Phrasea\Authentication\Authenticator::setUser
|
||||
@@ -50,11 +30,15 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
{
|
||||
$app = $this->loadApp();
|
||||
|
||||
$app['browser'] = $browser = $this->getBrowserMock();
|
||||
$app['session'] = $session = $this->getSessionMock();
|
||||
$app['EM'] = $em = $this->getEntityManagerMock();
|
||||
|
||||
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$authenticator = new Authenticator(self::$DI['app'], $browser, $session, $em);
|
||||
$authenticator = new Authenticator($app, $browser, $session, $em);
|
||||
$authenticator->setUser($user);
|
||||
$this->assertEquals($user, $authenticator->getUser());
|
||||
$authenticator->setUser(null);
|
||||
@@ -69,9 +53,9 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
$app = $this->loadApp();
|
||||
$capturedSession = null;
|
||||
|
||||
self::$DI['app']['browser'] = $browser = $this->getBrowserMock();
|
||||
self::$DI['app']['session'] = $session = $this->getSessionMock();
|
||||
self::$DI['app']['EM'] = $em = $this->getEntityManagerMock();
|
||||
$app['browser'] = $browser = $this->getBrowserMock();
|
||||
$app['session'] = $session = $this->getSessionMock();
|
||||
$app['EM'] = $em = $this->getEntityManagerMock();
|
||||
|
||||
$user = $this->getMockBuilder('Alchemy\Phrasea\Model\Entities\User')
|
||||
->disableOriginalConstructor()
|
||||
@@ -94,7 +78,7 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
->method('get')
|
||||
->will($this->returnValue($acl));
|
||||
|
||||
self::$DI['app']['acl'] = $aclProvider;
|
||||
$app['acl'] = $aclProvider;
|
||||
|
||||
$em->expects($this->at(0))
|
||||
->method('persist')
|
||||
@@ -105,7 +89,7 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
$em->expects($this->at(1))
|
||||
->method('flush');
|
||||
|
||||
$authenticator = new Authenticator(self::$DI['app'], $browser, $session, $em);
|
||||
$authenticator = new Authenticator($app, $browser, $session, $em);
|
||||
$phsession = $authenticator->openAccount($user);
|
||||
|
||||
$this->assertInstanceOf('Alchemy\Phrasea\Model\Entities\Session', $phsession);
|
||||
@@ -121,9 +105,9 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
|
||||
$user = self::$DI['user'];
|
||||
|
||||
self::$DI['app']['browser'] = $browser = $this->getBrowserMock();
|
||||
self::$DI['app']['session'] = $SFsession = $this->getSessionMock();
|
||||
self::$DI['app']['EM'] = $em = $this->getEntityManagerMock();
|
||||
$app['browser'] = $browser = $this->getBrowserMock();
|
||||
$app['session'] = $SFsession = $this->getSessionMock();
|
||||
$app['EM'] = $em = $this->getEntityManagerMock();
|
||||
|
||||
$sessionId = 4224242;
|
||||
|
||||
@@ -149,7 +133,7 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
->with($this->equalTo('Phraseanet:Session'))
|
||||
->will($this->returnValue($repo));
|
||||
|
||||
$authenticator = new Authenticator(self::$DI['app'], $browser, $SFsession, $em);
|
||||
$authenticator = new Authenticator($app, $browser, $SFsession, $em);
|
||||
$this->assertEquals($session, $authenticator->refreshAccount($session));
|
||||
}
|
||||
|
||||
@@ -162,9 +146,9 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
|
||||
$user = self::$DI['user'];
|
||||
|
||||
self::$DI['app']['browser'] = $browser = $this->getBrowserMock();
|
||||
self::$DI['app']['session'] = $SFsession = $this->getSessionMock();
|
||||
self::$DI['app']['EM'] = $em = $this->getEntityManagerMock();
|
||||
$app['browser'] = $browser = $this->getBrowserMock();
|
||||
$app['session'] = $SFsession = $this->getSessionMock();
|
||||
$app['EM'] = $em = $this->getEntityManagerMock();
|
||||
|
||||
$sessionId = 4224242;
|
||||
|
||||
@@ -190,7 +174,7 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
->with($this->equalTo('Phraseanet:Session'))
|
||||
->will($this->returnValue($repo));
|
||||
|
||||
$authenticator = new Authenticator(self::$DI['app'], $browser, $SFsession, $em);
|
||||
$authenticator = new Authenticator($app, $browser, $SFsession, $em);
|
||||
try {
|
||||
$authenticator->refreshAccount($session);
|
||||
$this->fail('Should have raised an exception');
|
||||
@@ -230,22 +214,40 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
{
|
||||
$app = $this->loadApp();
|
||||
|
||||
$user = self::$DI['user'];
|
||||
|
||||
self::$DI['app']['browser'] = $browser = $this->getBrowserMock();
|
||||
self::$DI['app']['session'] = $session = $this->getSessionMock();
|
||||
|
||||
$sessionEntity = new Session();
|
||||
$sessionEntity->setUser($user);
|
||||
$sessionEntity->setUser(self::$DI['user']);
|
||||
$sessionEntity->setUserAgent('');
|
||||
self::$DI['app']['EM']->persist($sessionEntity);
|
||||
self::$DI['app']['EM']->flush();
|
||||
|
||||
$session->set('usr_id', $user->getId());
|
||||
$session->set('session_id', $sessionEntity->getId());
|
||||
$app['browser'] = $browser = $this->getBrowserMock();
|
||||
$app['session'] = $session = $this->getSessionMock();
|
||||
$app['EM'] = $em = $this->getEntityManagerMock();
|
||||
|
||||
$authenticator = new Authenticator(self::$DI['app'], $browser, $session, self::$DI['app']['EM']);
|
||||
$app['EM']->expects($this->any())->method('find')->with(
|
||||
$this->equalTo('Alchemy\Phrasea\Model\Entities\Session'),
|
||||
$this->equalTo(1)
|
||||
)->will($this->returnValue($sessionEntity));
|
||||
|
||||
$userRepository = $this->getMockBuilder('Alchemy\Phrasea\Model\Repositories\UserRepository')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$userRepository->expects($this->once())->method('find')->with(
|
||||
$this->equalTo(self::$DI['user']->getId())
|
||||
)->will($this->returnValue(self::$DI['user']));
|
||||
|
||||
$app['manipulator.user'] = $this
|
||||
->getMockBuilder('Alchemy\Phrasea\Model\Manipulator\UserManipulator')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$app['manipulator.user']->expects($this->once())->method('getRepository')->will($this->returnValue($userRepository));
|
||||
|
||||
$session->set('usr_id', self::$DI['user']->getId());
|
||||
$session->set('session_id', 1);
|
||||
|
||||
|
||||
$authenticator = new Authenticator($app, $browser, $session, $app['EM']);
|
||||
$this->assertTrue($authenticator->isAuthenticated());
|
||||
$this->assertEquals(self::$DI['user'], $authenticator->getUser());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -255,7 +257,11 @@ class AuthenticatorTest extends \PhraseanetTestCase
|
||||
{
|
||||
$app = $this->loadApp();
|
||||
|
||||
$authenticator = new Authenticator(self::$DI['app'], $browser, $session, $em);
|
||||
$app['browser'] = $browser = $this->getBrowserMock();
|
||||
$app['session'] = $session = $this->getSessionMock();
|
||||
$app['EM'] = $em = $this->getEntityManagerMock();
|
||||
|
||||
$authenticator = new Authenticator($app, $browser, $session, $em);
|
||||
$this->assertFalse($authenticator->isAuthenticated());
|
||||
}
|
||||
|
||||
|
@@ -37,8 +37,8 @@ class SearchEngineTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$app = $this->loadApp();
|
||||
|
||||
return [
|
||||
[new PhraseaEngine(new Application('test'))],
|
||||
[new SphinxSearchEngine(new Application('test'), 'localhost', 9306, 'localhost', 9308)],
|
||||
[new PhraseaEngine($app)],
|
||||
[new SphinxSearchEngine($app, 'localhost', 9306, 'localhost', 9308)],
|
||||
];
|
||||
}
|
||||
|
||||
|
@@ -46,7 +46,7 @@ class UsersTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailSuccessEmailUpdate', 2);
|
||||
|
||||
$user = self::$DI['app']['manipulator.user']->createUser(uniqid('user_'), 'test');
|
||||
$user = self::$DI['app']['manipulator.user']->createUser(uniqid('user_'), 'test', 'titi@titi.fr');
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/users/rights/apply/', [
|
||||
'users' => $user->getId(),
|
||||
@@ -54,11 +54,6 @@ class UsersTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
'user_infos' => [ 'email' => 'toto@toto.fr' ]
|
||||
]);
|
||||
|
||||
$base_id = self::$DI['collection']->get_base_id();
|
||||
$_GET['values'] = 'canreport_' . $base_id . '=1&manage_' . $base_id . '=1&canpush_' . $base_id . '=1';
|
||||
$_GET['user_infos'] = "user_infos[email]=" . $user->getEmail();
|
||||
|
||||
self::$DI['client']->request('POST', '/admin/users/rights/apply/', ['users' => $user->getId()]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
$this->assertTrue($response->isOK());
|
||||
$this->assertEquals("application/json", $response->headers->get("content-type"));
|
||||
@@ -371,19 +366,29 @@ class UsersTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
self::$DI['app']['model.user-manager']->delete($user);
|
||||
}
|
||||
|
||||
/**
|
||||
* environment prod
|
||||
*/
|
||||
public function testRenderDemands()
|
||||
{
|
||||
$this->setConnectionEnvironment('prod');
|
||||
$nativeQueryMock = $this->getMockBuilder('Alchemy\Phrasea\Model\NativeQueryProvider')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$nativeQueryMock->expects($this->once())->method('getUsersRegistrationDemand')->will($this->returnValue([[
|
||||
self::$DI['user'],
|
||||
'date_demand' => new \DateTime(),
|
||||
'base_demand' => 1
|
||||
]]));
|
||||
|
||||
self::$DI['app']['phraseanet.native-query'] = $nativeQueryMock;
|
||||
|
||||
self::$DI['client']->request('GET', '/admin/users/demands/');
|
||||
$this->assertTrue(self::$DI['client']->getResponse()->isOk());
|
||||
}
|
||||
|
||||
public function testPostDemands()
|
||||
{
|
||||
$id = self::$DI['user_alt1']->get_id();
|
||||
$this->markTestSkipped();
|
||||
return;
|
||||
$id = self::$DI['user_alt1']->getId();
|
||||
$baseId = self::$DI['collection']->get_base_id();
|
||||
$param = sprintf('%s_%s', $id, $baseId);
|
||||
|
||||
|
@@ -347,8 +347,8 @@ class BasketTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$this->assertEquals(302, $response->getStatusCode());
|
||||
$this->assertCount(4, $basket->getElements());
|
||||
$datas = self::$DI['app']['EM']->getRepository('Phraseanet:ValidationData')->findAll();
|
||||
$this->assertTrue($countDatas < count($datas), 'assert that ' . count($datas) . ' > ' . $countDatas);
|
||||
$datas = self::$DI['app']['EM']->getRepository('Alchemy\Phrasea\Model\Entities\ValidationData')->findAll();
|
||||
$this->assertTrue($countData < count($datas), 'assert that ' . count($datas) . ' > ' . $countData);
|
||||
}
|
||||
|
||||
public function testAddElementPostJSON()
|
||||
|
@@ -336,7 +336,7 @@ class FeedTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
foreach ($feeds as $one_feed) {
|
||||
$path = CssSelector::toXPath("ul.submenu a[href='/prod/feeds/feed/" . $one_feed->getId() . "/']");
|
||||
$msg = sprintf("user %s has access to feed %s", self::$DI['user']->get_id(), $one_feed->getId());
|
||||
$msg = sprintf("user %s has access to feed %s", self::$DI['user']->getId(), $one_feed->getId());
|
||||
|
||||
if ($one_feed->hasAccess(self::$DI['user'], self::$DI['app'])) {
|
||||
$this->assertEquals(1, $crawler->filterXPath($path)->count(), $msg);
|
||||
|
@@ -4,81 +4,57 @@ namespace Alchemy\Tests\Phrasea\Controller\Prod;
|
||||
|
||||
class PushTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
protected $client;
|
||||
|
||||
/**
|
||||
* Default route test
|
||||
*/
|
||||
public function testRoutePOSTSendSlash()
|
||||
{
|
||||
$route = '/prod/push/sendform/';
|
||||
|
||||
self::$DI['client']->request('POST', $route);
|
||||
|
||||
self::$DI['client']->request('POST', '/prod/push/sendform/');
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
}
|
||||
|
||||
public function testRoutePOSTValidateSlash()
|
||||
{
|
||||
$route = '/prod/push/validateform/';
|
||||
|
||||
self::$DI['client']->request('POST', $route);
|
||||
|
||||
self::$DI['client']->request('POST', '/prod/push/validateform/');
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
}
|
||||
|
||||
public function testRoutePOSTsend()
|
||||
public function testRoutePOSTSend()
|
||||
{
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailInfoPushReceived', 2);
|
||||
$this->mockUserNotificationSettings('eventsmanager_notify_push');
|
||||
|
||||
$route = '/prod/push/send/';
|
||||
|
||||
$records = [
|
||||
self::$DI['record_1']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
];
|
||||
|
||||
self::$DI['client']->request('POST', $route, [
|
||||
self::$DI['client']->request('POST', '/prod/push/send/', [
|
||||
'lst' => implode(';', $records),
|
||||
'participants' => [
|
||||
['usr_id' => self::$DI['user_alt1']->getId(), 'HD' => 1],
|
||||
['usr_id' => self::$DI['user_alt2']->getId(), 'HD' => 0]
|
||||
]
|
||||
]);
|
||||
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
|
||||
$this->assertTrue($datas['success'], 'Result is successful');
|
||||
$data = (array) json_decode($response->getContent());
|
||||
$this->assertArrayHasKey('message', $data);
|
||||
$this->assertArrayHasKey('success', $data);
|
||||
$this->assertTrue($data['success'], 'Result is successful');
|
||||
}
|
||||
|
||||
public function testRoutePOSTvalidate()
|
||||
public function testRoutePOSTValidate()
|
||||
{
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailInfoValidationRequest', 3);
|
||||
$this->mockUserNotificationSettings('eventsmanager_notify_validate');
|
||||
|
||||
$route = '/prod/push/validate/';
|
||||
|
||||
$records = [
|
||||
self::$DI['record_1']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
];
|
||||
|
||||
self::$DI['client']->request('POST', $route, [
|
||||
self::$DI['client']->request('POST', '/prod/push/validate/', [
|
||||
'lst' => implode(';', $records),
|
||||
'participants' => [[
|
||||
'usr_id' => self::$DI['user_alt1']->getId(),
|
||||
@@ -92,37 +68,24 @@ class PushTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
'HD' => 1,
|
||||
]]
|
||||
]);
|
||||
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertArrayHasKey('message', $datas);
|
||||
$this->assertArrayHasKey('success', $datas);
|
||||
|
||||
$this->assertTrue($datas['success'], 'Result is successful');
|
||||
$data = (array) json_decode($response->getContent());
|
||||
$this->assertArrayHasKey('message', $data);
|
||||
$this->assertArrayHasKey('success', $data);
|
||||
$this->assertTrue($data['success'], 'Result is successful');
|
||||
}
|
||||
|
||||
public function testRouteGETsearchuser()
|
||||
public function testRouteGETSearchUser()
|
||||
{
|
||||
$route = '/prod/push/search-user/';
|
||||
|
||||
$params = [
|
||||
self::$DI['client']->request('GET', '/prod/push/search-user/', [
|
||||
'query' => ''
|
||||
];
|
||||
|
||||
self::$DI['client']->request('GET', $route, $params);
|
||||
|
||||
]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('UTF-8', $response->getCharset());
|
||||
|
||||
$datas = (array) json_decode($response->getContent());
|
||||
|
||||
$this->assertTrue(is_array($datas), 'Json is valid');
|
||||
$data = (array) json_decode($response->getContent());
|
||||
$this->assertTrue(is_array($data), 'Json is valid');
|
||||
}
|
||||
}
|
||||
|
@@ -10,20 +10,20 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
public function testSimple()
|
||||
{
|
||||
$request = new Request([
|
||||
'lst' => implode(';', [
|
||||
self::$DI['record_24']->get_serialize_key(),
|
||||
self::$DI['record_24']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
self::$DI['record_story_2']->get_serialize_key(),
|
||||
self::$DI['record_no_access']->get_serialize_key(),
|
||||
self::$DI['record_no_access_by_status']->get_serialize_key(),
|
||||
'',
|
||||
'0_490',
|
||||
'0_',
|
||||
'_490',
|
||||
'_',
|
||||
])
|
||||
]);
|
||||
'lst' => implode(';', [
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
self::$DI['record_story_2']->get_serialize_key(),
|
||||
self::$DI['record_no_access']->get_serialize_key(),
|
||||
self::$DI['record_no_access_by_status']->get_serialize_key(),
|
||||
'',
|
||||
'0_490',
|
||||
'0_',
|
||||
'_490',
|
||||
'_',
|
||||
])
|
||||
]);
|
||||
|
||||
$records = RecordsRequest::fromRequest(self::$DI['app'], $request);
|
||||
|
||||
@@ -126,15 +126,15 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
public function testSimpleFlatten()
|
||||
{
|
||||
$request = new Request([
|
||||
'lst' => implode(';', [
|
||||
self::$DI['record_24']->get_serialize_key(),
|
||||
self::$DI['record_24']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
self::$DI['record_story_2']->get_serialize_key(),
|
||||
self::$DI['record_no_access']->get_serialize_key(),
|
||||
self::$DI['record_no_access_by_status']->get_serialize_key(),
|
||||
])
|
||||
]);
|
||||
'lst' => implode(';', [
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_3']->get_serialize_key(),
|
||||
self::$DI['record_2']->get_serialize_key(),
|
||||
self::$DI['record_story_2']->get_serialize_key(),
|
||||
self::$DI['record_no_access']->get_serialize_key(),
|
||||
self::$DI['record_no_access_by_status']->get_serialize_key(),
|
||||
])
|
||||
]);
|
||||
|
||||
$records = RecordsRequest::fromRequest(self::$DI['app'], $request, true);
|
||||
|
||||
@@ -204,28 +204,32 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
$request = new Request(['story' => $story->getId()]);
|
||||
$records = RecordsRequest::fromRequest(self::$DI['app'], $request, true);
|
||||
|
||||
$this->assertEquals(0, count($records));
|
||||
$this->assertEquals($story->getRecord(self::$DI['app'])->get_children()->get_count(), count($records));
|
||||
$this->assertEquals(1, count($records->received()));
|
||||
$this->assertEquals(0, count($records->stories()));
|
||||
$this->assertNull($records->singleStory());
|
||||
$this->assertFalse($records->isSingleStory());
|
||||
$this->assertEquals([], $records->databoxes());
|
||||
$this->assertCount(0, $records->databoxes());
|
||||
|
||||
$serialized = $records->serializedList();
|
||||
$exploded = explode(';', $serialized);
|
||||
|
||||
$this->assertEquals('', $serialized);
|
||||
$expected = '';
|
||||
foreach($story->getRecord(self::$DI['app'])->get_children() as $record) {
|
||||
$expected .= $expected === '' ? $record->get_serialize_key() : ';' . $record->get_serialize_key();
|
||||
}
|
||||
$this->assertEquals($expected, $serialized);
|
||||
$this->assertNotContains($story->getRecord(self::$DI['app'])->get_serialize_key(), $exploded);
|
||||
}
|
||||
|
||||
public function testSimpleStoryFlattenAndPreserve()
|
||||
{
|
||||
$story = $this->getStoryWZ();
|
||||
|
||||
$request = new Request(['story' => $story->getId()]);
|
||||
|
||||
$records = RecordsRequest::fromRequest(self::$DI['app'], $request, RecordsRequest::FLATTEN_YES_PRESERVE_STORIES);
|
||||
|
||||
$this->assertEquals(1, count($records));
|
||||
$this->assertEquals(1 + $story->getRecord(self::$DI['app'])->get_children()->get_count(), count($records));
|
||||
$this->assertEquals(1, count($records->received()));
|
||||
$this->assertEquals(1, count($records->stories()));
|
||||
$this->assertInstanceOf('\record_adapter', $records->singleStory());
|
||||
@@ -233,7 +237,6 @@ class RecordsRequestTest extends \PhraseanetAuthenticatedTestCase
|
||||
$this->assertCount(1, $records->databoxes());
|
||||
|
||||
$serialized = $records->serializedList();
|
||||
$exploded = explode(';', $serialized);
|
||||
|
||||
$this->assertEquals($story->getRecord(self::$DI['app'])->get_serialize_key(), $serialized);
|
||||
}
|
||||
|
@@ -20,6 +20,7 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
public static $collections;
|
||||
public static $login;
|
||||
public static $email;
|
||||
public static $termsOfUse;
|
||||
|
||||
public function setUp()
|
||||
{
|
||||
@@ -54,7 +55,7 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
public static function tearDownAfterClass()
|
||||
{
|
||||
self::$demands = self::$collections = self::$login = self::$email = null;
|
||||
self::$demands = self::$collections = self::$login = self::$email = self::$termsOfUse = null;
|
||||
parent::tearDownAfterClass();
|
||||
}
|
||||
|
||||
@@ -196,9 +197,6 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertEquals('/login/', $response->headers->get('location'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @environment prod
|
||||
*/
|
||||
public function testRegisterConfirmMail()
|
||||
{
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailSuccessEmailConfirmationRegistered');
|
||||
@@ -206,12 +204,11 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
$this->logout(self::$DI['app']);
|
||||
$email = $this->generateEmail();
|
||||
$appboxRegister = new \appbox_register(self::$DI['app']['phraseanet.appbox']);
|
||||
$token = self::$DI['app']['tokens']->getUrlToken(\random::TYPE_EMAIL, self::$DI['user']->getId(), null, $email);
|
||||
|
||||
self::$DI['user']->setMailLocked(true);
|
||||
$this->deleteRequest();
|
||||
$appboxRegister->add_request(self::$DI['user'], self::$DI['collection']);
|
||||
self::$DI['app']['phraseanet.appbox-register']->add_request(self::$DI['user'], self::$DI['collection']);
|
||||
self::$DI['client']->request('GET', '/login/register-confirm/', ['code' => $token]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
@@ -221,18 +218,14 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertFalse(self::$DI['user']->isMailLocked());
|
||||
}
|
||||
|
||||
/**
|
||||
* @environment prod
|
||||
*/
|
||||
public function testRegisterConfirmMailNoCollAwait()
|
||||
{
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailSuccessEmailConfirmationUnregistered');
|
||||
$this->mockUserNotificationSettings('eventsmanager_notify_register');
|
||||
|
||||
$user = self::$DI['app']['manipulator.user']->createUser(uniqid('user_'), "test", 'email-random'.mt_rand().'@phraseanet.com');
|
||||
|
||||
;
|
||||
$this->logout(self::$DI['app']);
|
||||
$email = $this->generateEmail();
|
||||
$user = self::$DI['app']['manipulator.user']->createUser('test', 'test', $email);
|
||||
$token = self::$DI['app']['tokens']->getUrlToken(\random::TYPE_EMAIL, $user->getId(), null, $email);
|
||||
|
||||
$user->setMailLocked(true);
|
||||
@@ -241,12 +234,10 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
self::$DI['client']->request('GET', '/login/register-confirm/', ['code' => $token]);
|
||||
$response = self::$DI['client']->getResponse();
|
||||
|
||||
$this->assertTrue($response->isRedirect());
|
||||
$this->assertFlashMessagePopulated(self::$DI['app'], 'info', 1);
|
||||
$this->assertEquals('/login/', $response->headers->get('location'));
|
||||
$this->assertFalse(self::$DI['user']->isMailLocked());
|
||||
self::$DI['app']['model.user-manager']->delete($user);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -281,9 +272,6 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertFlashMessage($crawler, 'error', 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @environment prod
|
||||
*/
|
||||
public function testRenewPasswordMail()
|
||||
{
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailRequestPasswordUpdate');
|
||||
@@ -460,16 +448,13 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertFlashMessage($crawler, 'error', 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* @environment prod
|
||||
*/
|
||||
public function testForgotPasswordSubmission()
|
||||
{
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailRequestPasswordUpdate');
|
||||
$this->mockUserNotificationSettings('eventsmanager_notify_register');
|
||||
|
||||
$this->logout(self::$DI['app']);
|
||||
$crawler = self::$DI['client']->request('POST', '/login/forgot-password/', [
|
||||
self::$DI['client']->request('POST', '/login/forgot-password/', [
|
||||
'_token' => 'token',
|
||||
'email' => self::$DI['user']->getEmail(),
|
||||
]);
|
||||
@@ -587,9 +572,8 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
$this->logout(self::$DI['app']);
|
||||
$crawler = self::$DI['client']->request('POST', '/login/register-classic/');
|
||||
|
||||
$this->assertFalse(self::$DI['client']->getResponse()->isRedirect());
|
||||
$this->assertFormOrFlashError($crawler, self::$DI['app']['conf']->get(['registry', 'registration', 'auto-select-collections']) ? 7 : 8);
|
||||
$this->assertFormOrFlashError($crawler, self::$DI['app']['conf']->get(['registry', 'registration', 'auto-select-collections']) ? 6 : 7);
|
||||
}
|
||||
|
||||
public function provideInvalidRegistrationData()
|
||||
@@ -950,9 +934,6 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertEquals('/login/register/', self::$DI['client']->getResponse()->headers->get('location'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @environment prod
|
||||
*/
|
||||
public function testPostRegisterWithProviderIdAndAccountNotCreatedYet()
|
||||
{
|
||||
self::$DI['app']['registration.fields'] = [];
|
||||
@@ -964,6 +945,21 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
'Alchemy\Phrasea\Notification\Mail\MailInfoSomebodyAutoregistered'=>0,
|
||||
];
|
||||
|
||||
self::$DI['app']['phraseanet.appbox-register'] = $this->getMockBuilder('\appbox_register')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$nativeQueryMock = $this->getMockBuilder('Alchemy\Phrasea\Model\NativeQueryProvider')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$nativeQueryMock->expects($this->once())->method('getAdminsOfBases')->will($this->returnValue([[
|
||||
self::$DI['user'],
|
||||
'base_id' => 1
|
||||
]]));
|
||||
|
||||
self::$DI['app']['phraseanet.native-query'] = $nativeQueryMock;
|
||||
|
||||
$this->mockNotificationsDeliverer($emails);
|
||||
$this->mockUserNotificationSettings('eventsmanager_notify_register');
|
||||
|
||||
@@ -986,41 +982,15 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
->method('getToken')
|
||||
->will($this->returnValue($token));
|
||||
|
||||
$repo = $this->getMockBuilder('Doctrine\ORM\EntityRepository\UsrAuthProviderRepository')
|
||||
$repoUsrAuthProvider = $this->getMockBuilder('Doctrine\ORM\EntityRepository\UsrAuthProviderRepository')
|
||||
->setMethods(['findWithProviderAndId'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$repo->expects($this->any())
|
||||
$repoUsrAuthProvider->expects($this->any())
|
||||
->method('findWithProviderAndId')
|
||||
->with('provider-test', $token->getId())
|
||||
->will($this->returnValue(null));
|
||||
|
||||
$em = self::$DI['app']['EM'];
|
||||
|
||||
self::$DI['app']['EM'] = $this->getMockBuilder('Doctrine\ORM\EntityManager')
|
||||
->setMethods(['getRepository', 'getClassMetadata', 'persist', 'flush', 'getConnection', 'getUnitOfWork'])
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
self::$DI['app']['EM']->expects($this->at(0))
|
||||
->method('getRepository')
|
||||
->with('Alchemy\Phrasea\Model\Entities\UsrAuthProvider')
|
||||
->will($this->returnValue($repo));
|
||||
|
||||
self::$DI['app']['EM']->expects($this->any())
|
||||
->method('getClassMetadata')
|
||||
->with($this->equalTo('Alchemy\Phrasea\Model\Entities\User'))
|
||||
->will($this->returnValue($em->getClassMetadata('Alchemy\Phrasea\Model\Entities\User')));
|
||||
|
||||
self::$DI['app']['EM']->expects($this->any())
|
||||
->method('getConnection')
|
||||
->will($this->returnValue($em->getConnection()));
|
||||
|
||||
self::$DI['app']['EM']->expects($this->any())
|
||||
->method('getUnitOfWork')
|
||||
->will($this->returnValue($em->getUnitOfWork()));
|
||||
|
||||
foreach ($parameters as $key => $parameter) {
|
||||
if ('collections' === $key && null === $parameter) {
|
||||
$parameters[$key] = self::$demands;
|
||||
@@ -1054,10 +1024,24 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
|
||||
/**
|
||||
* @dataProvider provideRegistrationData
|
||||
* @environment prod
|
||||
*/
|
||||
public function testPostRegister($parameters, $extraParameters)
|
||||
{
|
||||
self::$DI['app']['phraseanet.appbox-register'] = $this->getMockBuilder('\appbox_register')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$nativeQueryMock = $this->getMockBuilder('Alchemy\Phrasea\Model\NativeQueryProvider')
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$nativeQueryMock->expects($this->once())->method('getAdminsOfBases')->will($this->returnValue([[
|
||||
self::$DI['user'],
|
||||
'base_id' => 1
|
||||
]]));
|
||||
|
||||
self::$DI['app']['phraseanet.native-query'] = $nativeQueryMock;
|
||||
|
||||
self::$DI['app']['registration.fields'] = $extraParameters;
|
||||
|
||||
$this->logout(self::$DI['app']);
|
||||
@@ -1124,9 +1108,6 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertBadResponse(self::$DI['client']->getResponse());
|
||||
}
|
||||
|
||||
/**
|
||||
* @environment prod
|
||||
*/
|
||||
public function testSendConfirmMail()
|
||||
{
|
||||
$this->mockNotificationDeliverer('Alchemy\Phrasea\Notification\Mail\MailRequestEmailConfirmation');
|
||||
@@ -1256,8 +1237,7 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testGuestAuthenticate()
|
||||
{
|
||||
$guest = self::$DI['app']['manipulator.user']->createUser(User::USER_GUEST, User::USER_GUEST);
|
||||
self::$DI['app']['acl']->get($guest)->give_access_to_base([self::$DI['collection']->get_base_id()]);
|
||||
self::$DI['app']['acl']->get(self::$DI['user_guest'])->give_access_to_base([self::$DI['collection']->get_base_id()]);
|
||||
|
||||
$this->logout(self::$DI['app']);
|
||||
|
||||
@@ -1284,8 +1264,7 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
$this->assertEquals($context, $event->getContext()->getContext());
|
||||
});
|
||||
|
||||
$guest = self::$DI['app']['manipulator.user']->createUser(User::USER_GUEST, User::USER_GUEST);
|
||||
self::$DI['app']['acl']->get($guest)->give_access_to_base([self::$DI['collection']->get_base_id()]);
|
||||
self::$DI['app']['acl']->get(self::$DI['user_guest'])->give_access_to_base([self::$DI['collection']->get_base_id()]);
|
||||
|
||||
$this->logout(self::$DI['app']);
|
||||
|
||||
@@ -1301,9 +1280,7 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
*/
|
||||
public function testGuestAuthenticateWithGetMethod()
|
||||
{
|
||||
$guest = self::$DI['app']['manipulator.user']->createUser(User::USER_GUEST, User::USER_GUEST);
|
||||
self::$DI['app']['acl']->get($guest)->give_access_to_base([self::$DI['collection']->get_base_id()]);
|
||||
|
||||
self::$DI['app']['acl']->get(self::$DI['user_guest'])->give_access_to_base([self::$DI['collection']->get_base_id()]);
|
||||
$this->logout(self::$DI['app']);
|
||||
|
||||
self::$DI['client'] = new Client(self::$DI['app'], []);
|
||||
@@ -1815,4 +1792,50 @@ class LoginTest extends \PhraseanetAuthenticatedWebTestCase
|
||||
{
|
||||
return \random::generatePassword() . '_email@email.com';
|
||||
}
|
||||
|
||||
private function disableTOU()
|
||||
{
|
||||
if (null === self::$termsOfUse) {
|
||||
self::$termsOfUse = array();
|
||||
foreach (self::$DI['app']['phraseanet.appbox']->get_databoxes() as $databox) {
|
||||
self::$termsOfUse[$databox->get_sbas_id()] = $databox->get_cgus();
|
||||
|
||||
foreach( self::$termsOfUse[$databox->get_sbas_id()]as $lng => $tou) {
|
||||
$databox->update_cgus($lng, '', false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function enableTOU()
|
||||
{
|
||||
if (null === self::$termsOfUse) {
|
||||
self::$termsOfUse = array();
|
||||
foreach (self::$DI['app']['phraseanet.appbox']->get_databoxes() as $databox) {
|
||||
self::$termsOfUse[$databox->get_sbas_id()] = $databox->get_cgus();
|
||||
|
||||
foreach( self::$termsOfUse[$databox->get_sbas_id()]as $lng => $tou) {
|
||||
$databox->update_cgus($lng, 'something', false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function resetTOU()
|
||||
{
|
||||
if (null === self::$termsOfUse) {
|
||||
return;
|
||||
}
|
||||
foreach (self::$DI['app']['phraseanet.appbox']->get_databoxes() as $databox) {
|
||||
if (!isset(self::$termsOfUse[$databox->get_sbas_id()])) {
|
||||
continue;
|
||||
}
|
||||
$tous = self::$termsOfUse[$databox->get_sbas_id()];
|
||||
foreach ($tous as $lng => $tou) {
|
||||
$databox->update_cgus($lng, $tou['value'], false);
|
||||
}
|
||||
}
|
||||
|
||||
self::$termsOfUse = null;
|
||||
}
|
||||
}
|
||||
|
@@ -11,9 +11,6 @@ class SetupTest extends \PhraseanetWebTestCase
|
||||
parent::setUp();
|
||||
|
||||
$this->app = $this->loadApp('lib/Alchemy/Phrasea/Application/Root.php');
|
||||
// // set test environment
|
||||
// $environment = 'test';
|
||||
// $this->app = require __DIR__ . '/../../../../../lib/Alchemy/Phrasea/Application/Root.php';
|
||||
|
||||
$this->app['phraseanet.configuration-tester'] = $this->getMockBuilder('Alchemy\Phrasea\Setup\ConfigurationTester')
|
||||
->disableOriginalConstructor()
|
||||
@@ -73,7 +70,7 @@ class SetupTest extends \PhraseanetWebTestCase
|
||||
->method('isBlank')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$crawler = $client->request('GET', '/setup/installer/');
|
||||
$client->request('GET', '/setup/installer/');
|
||||
$response = $client->getResponse();
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
@@ -86,13 +83,21 @@ class SetupTest extends \PhraseanetWebTestCase
|
||||
->method('isBlank')
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$crawler = $client->request('GET', '/setup/installer/step2/');
|
||||
$client->request('GET', '/setup/installer/step2/');
|
||||
$response = $client->getResponse();
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
}
|
||||
|
||||
public function testRouteSetupInstallerInstall()
|
||||
{
|
||||
$emMock = $this->getMock('\Doctrine\ORM\EntityManager',
|
||||
['getRepository', 'find', 'persist', 'flush'], [], '', false);
|
||||
$emMock->expects($this->any())
|
||||
->method('getRepository')
|
||||
->will($this->returnValue($this->getMock('Alchemy\Phrasea\Model\Repository\SessionRepository')));
|
||||
|
||||
$this->app['EM'] = $emMock;
|
||||
|
||||
$this->app['phraseanet.configuration-tester']->expects($this->once())
|
||||
->method('isBlank')
|
||||
->will($this->returnValue(true));
|
||||
@@ -105,7 +110,7 @@ class SetupTest extends \PhraseanetWebTestCase
|
||||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
|
||||
$user->expects($this->exactly(1))
|
||||
$user->expects($this->once())
|
||||
->method('getId')
|
||||
->will($this->returnValue(self::$DI['user']->getId()));
|
||||
|
||||
@@ -169,9 +174,8 @@ class SetupTest extends \PhraseanetWebTestCase
|
||||
'binary_phraseanet_indexer' => '/path/to/phraseanet_indexer',
|
||||
];
|
||||
|
||||
$crawler = $client->request('POST', '/setup/installer/install/', $params);
|
||||
$client->request('POST', '/setup/installer/install/', $params);
|
||||
$response = $client->getResponse();
|
||||
|
||||
$this->assertEquals(302, $response->getStatusCode());
|
||||
$this->assertTrue(false === strpos($response->headers->get('location'), '/setup/installer/'));
|
||||
}
|
||||
@@ -183,7 +187,7 @@ class SetupTest extends \PhraseanetWebTestCase
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$client = $this->createClient();
|
||||
$crawler = $client->request('GET', '/setup/test/path/?path=/usr/bin/php');
|
||||
$client->request('GET', '/setup/test/path/?path=/usr/bin/php');
|
||||
$response = $client->getResponse();
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('application/json', $response->headers->get('content-type'));
|
||||
@@ -196,7 +200,7 @@ class SetupTest extends \PhraseanetWebTestCase
|
||||
->will($this->returnValue(true));
|
||||
|
||||
$client = $this->createClient();
|
||||
$crawler = $client->request('GET', '/setup/connection_test/mysql/?user=admin&password=secret&dbname=phraseanet');
|
||||
$client->request('GET', '/setup/connection_test/mysql/?user=admin&password=secret&dbname=phraseanet');
|
||||
$response = $client->getResponse();
|
||||
$this->assertEquals(200, $response->getStatusCode());
|
||||
$this->assertEquals('application/json', $response->headers->get('content-type'));
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user