Fix admin/logger when the user has no entry in the aliases table.
[platal.git] / modules / axletter / axletter.inc.php
index 18818c7..53c7dd3 100644 (file)
@@ -117,10 +117,10 @@ class AXLetter extends MassMailer
         if (is_null($uid) && $hash) {
             return false;
         }
-        $res = XDB::query("SELECT *
+        $res = XDB::query("SELECT uid
                              FROM axletter_ins
                             WHERE $field={?}", $user);
-        if (!$res->numRows()) {
+        if ($res->numRows() != 1) {
             return false;
         }
         XDB::execute("DELETE FROM  axletter_ins
@@ -175,12 +175,13 @@ class AXLetter extends MassMailer
         if (!$this->_promo_min && !$this->_promo_max && !$this->_subset) {
             return '1';
         }
+        /* TODO: refines this filter on promotions by using userfilter. */
         $where = array();
         if ($this->_promo_min) {
-            $where[] = "((ni.uid = 0 AND ni.promo >= {$this->_promo_min}) OR (ni.uid != 0 AND u.promo >= {$this->_promo_min}))";
+            $where[] = "((ni.uid = 0 AND ni.promo >= {$this->_promo_min}) OR (ni.uid != 0 AND pd.promo >= 'X{$this->_promo_min}'))";
         }
         if ($this->_promo_max) {
-            $where[] = "((ni.uid = 0 AND ni.promo <= {$this->_promo_max}) OR (ni.uid != 0 AND u.promo <= {$this->_promo_max}))";
+            $where[] = "((ni.uid = 0 AND ni.promo <= {$this->_promo_max}) OR (ni.uid != 0 AND pd.promo <= 'X{$this->_promo_max}'))";
         }
         if ($this->_subset) {
             require_once("emails.inc.php");