Merged with 3.5.1

This commit is contained in:
Romain Neutron
2011-12-15 14:22:46 +01:00
30 changed files with 282 additions and 196 deletions

View File

@@ -357,6 +357,16 @@ class Feed_Entry_Adapter implements Feed_Entry_Interface, cache_cacheableInterfa
return $this->publisher;
}
/**
*
* @param User_adapter $user
* @return boolean
*/
public function is_publisher(User_adapter $user)
{
return $user->get_id() === $this->get_publisher()->get_user()->get_id();
}
/**
*

View File

@@ -576,7 +576,7 @@ class Session_Handler
$sql = 'SELECT v.id as validate_id, v.usr_id, v.ssel_id
, s.usr_id as owner, t.value
FROM (validate v, ssel s)
LEFT JOIN tokens t
INNER JOIN tokens t
ON (t.datas = s.ssel_id
AND v.usr_id=t.usr_id AND t.type="validate")
WHERE expires_on < :expires_on
@@ -594,7 +594,8 @@ class Session_Handler
'ssel_id' => $row['ssel_id'],
'from' => $row['owner'],
'validate_id' => $row['validate_id'],
'url' => $registry->get('GV_ServerName') . 'lightbox/validate/'.$row['ssel_id'].'/?LOG=' . $row['value']
'url' => $registry->get('GV_ServerName')
. 'lightbox/validate/'.$row['ssel_id'].'/?LOG=' . $row['value']
);
$events_mngr->trigger('__VALIDATION_REMINDER__', $params);

View File

@@ -399,7 +399,14 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
{
if (!trim($email))
$email = null;
$test_user = User_Adapter::get_usr_id_from_email($email);
if($test_user && $test_user != $this->get_id())
{
throw new Exception_InvalidArgument (sprintf(_('A user already exists with email addres %s'), $email));
}
$sql = 'UPDATE usr SET usr_mail = :new_email WHERE usr_id = :usr_id';
$stmt = $this->appbox->get_connection()->prepare($sql);
$stmt->execute(array(':new_email' => $email, ':usr_id' => $this->get_id()));
@@ -1231,6 +1238,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
protected function load_preferences()
{
if ($this->_prefs)
return $this;
$sql = 'SELECT prop, value FROM usr_settings WHERE usr_id= :id';
$stmt = $this->appbox->get_connection()->prepare($sql);
@@ -1324,7 +1332,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
}
catch (Exception $e)
{
}
return $this;
@@ -1556,6 +1564,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
$appbox = appbox::get_instance();
$session = $appbox->get_session();
if (!$session->is_authenticated())
return;
$ses_id = $session->get_ses_id();
@@ -1614,7 +1623,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
}
catch (Exception $e)
{
}
}
}
@@ -1678,7 +1687,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
}
catch (Exception $e)
{
}
return false;
@@ -1765,7 +1774,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
}
catch (Exception $e)
{
}
return $locale;
@@ -1831,6 +1840,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
public function get_nonce()
{
if ($this->nonce)
return $this->nonce;
$nonce = false;
@@ -1848,6 +1858,7 @@ class User_Adapter implements User_Interface, cache_cacheableInterface
return $this->nonce;
}
public function __sleep()
{
$vars = array();

View File

@@ -255,8 +255,7 @@ class mail
$mail->ConfirmReadingTo = $reading_confirm_to;
}
$mail->MsgHTML(strip_tags($body));
// $mail->MsgHTML(p4string::cleanTags($body));
$mail->MsgHTML(strip_tags($body, '<div><br>'));
foreach ($files as $f)
{

View File

@@ -148,9 +148,9 @@ $app->before(function($request) use ($app)
return;
}
catch (Exception $e)
catch (\Exception $e)
{
}
}
$auth = new Session_Authentication_None($app['p4user']);

View File

@@ -49,7 +49,7 @@ class module_prod
'sbas_id' => $sbas_id
);
foreach($user->ACL()->get_granted_base(array(), array($databox->get_sbas_id())) as $coll)
foreach ($user->ACL()->get_granted_base(array(), array($databox->get_sbas_id())) as $coll)
{
$selected = ($searchSet &&
isset($searchSet->bases) &&
@@ -75,12 +75,19 @@ class module_prod
else
$dates[$id] = array('sbas' => array($sbas_id), 'fieldname' => $name);
}
if (isset($fields[$name]))
{
$fields[$name]['sbas'][] = $sbas_id;
}
else
{
if (isset($fields[$name]))
$fields[$name]['sbas'][] = $sbas_id;
else
$fields[$name] = array('sbas' => array($sbas_id), 'fieldname' => $name, 'id' => $id);
$fields[$name] = array(
'sbas' => array($sbas_id)
, 'fieldname' => $name
, 'type' => $meta->get_type()
, 'id' => $id
);
}
}

View File

@@ -56,7 +56,7 @@ class random
}
}
$sql = 'DELETE FROM tokens WHERE expire_on < :date';
$sql = 'DELETE FROM tokens WHERE expire_on < :date and type="download"';
$stmt = $conn->prepare($sql);
$stmt->execute(array(':date' => $date));
$stmt->closeCursor();
@@ -201,7 +201,9 @@ class random
self::cleanTokens();
$conn = connection::getPDOConnection();
$sql = 'SELECT * FROM tokens WHERE value = :token ';
$sql = 'SELECT * FROM tokens
WHERE value = :token
AND (expire_on > NOW() OR expire_on IS NULL)';
$stmt = $conn->prepare($sql);
$stmt->execute(array(':token' => $token));
$row = $stmt->fetch(PDO::FETCH_ASSOC);

View File

@@ -56,7 +56,7 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract
/**
*
* @var boolean
* @var searchEngine_options
*/
protected $options = false;
@@ -142,6 +142,8 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract
*/
public function set_options(searchEngine_options $options)
{
$this->options = $options;
$this->opt_search_type = (int) $options->get_search_type();
$this->opt_bases = $options->get_bases();
$this->opt_fields = $options->get_fields();
@@ -394,34 +396,37 @@ class searchEngine_adapter_phrasea_engine extends searchEngine_adapter_abstract
$total_time = 0;
$sort = '';
if($this->options->get_sortby())
{
switch($this->options->get_sortord())
{
case searchEngine_options::SORT_MODE_ASC:
$sort = '+';
break;
case searchEngine_options::SORT_MODE_DESC:
default:
$sort = '-';
break;
}
$sort .= '0' . $this->options->get_sortby();
}
foreach ($this->queries as $sbas_id => $qry)
{
if ($this->opt_search_type == 1)
{
$this->results[$sbas_id] = phrasea_query2(
$session->get_ses_id()
, $sbas_id
, $this->colls[$sbas_id]
, $this->arrayq[$sbas_id]
, $registry->get('GV_sit')
, (string) $session->get_usr_id()
, false
, PHRASEA_MULTIDOC_REGONLY
);
}
else
{
$this->results[$sbas_id] = phrasea_query2(
$session->get_ses_id()
, $sbas_id
, $this->colls[$sbas_id]
, $this->arrayq[$sbas_id]
, $registry->get('GV_sit')
, (string) $session->get_usr_id()
, false
, PHRASEA_MULTIDOC_DOCONLY
);
}
$this->results[$sbas_id] = phrasea_query2(
$session->get_ses_id()
, $sbas_id
, $this->colls[$sbas_id]
, $this->arrayq[$sbas_id]
, $registry->get('GV_sit')
, (string) $session->get_usr_id()
, false
, $this->opt_search_type == 1 ? PHRASEA_MULTIDOC_REGONLY : PHRASEA_MULTIDOC_DOCONLY
, $sort
);
$total_time += $this->results[$sbas_id]['time_all'];
if ($this->results[$sbas_id])

View File

@@ -436,7 +436,7 @@ class setup
$message = 'Directory MUST be writable';
break;
case 'version':
$result = version_compare($value, '1.17.0.2', '>=');
$result = version_compare($value, '1.18.0.3', '>=');
if ($result)
$message = sprintf ('Phrasea version %s is ok', $value);
else

View File

@@ -100,11 +100,10 @@ class supertwig
$options = array_merge($default_options, $options);
$extensions = array_merge($default_extensions, $extensions);
$this->init_twig();
try
{
$this->set_options($options);
$this->init_twig();
$this->set_extensions($extensions);
$this->addFilter(array('round' => 'round'));
}