2 commits - plugins/calendar plugins/tasklist

Thomas Brüderli bruederli at kolabsys.com
Tue Aug 26 16:10:54 CEST 2014


 plugins/calendar/drivers/kolab/SQL/mysql.initial.sql     |    2 +-
 plugins/calendar/drivers/kolab/SQL/mysql/2014082600.sql  |    2 ++
 plugins/calendar/drivers/kolab/kolab_driver.php          |    8 ++++----
 plugins/calendar/lib/calendar_itip.php                   |   12 +++++++-----
 plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php |    8 ++++----
 5 files changed, 18 insertions(+), 14 deletions(-)

New commits:
commit c7b422907ed6ecf218b819fb4b617165862b4b6f
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Tue Aug 26 15:57:54 2014 +0200

    Use rcube_db::table_name() for SQL database access

diff --git a/plugins/calendar/drivers/kolab/kolab_driver.php b/plugins/calendar/drivers/kolab/kolab_driver.php
index 63711b0..b9eba2d 100644
--- a/plugins/calendar/drivers/kolab/kolab_driver.php
+++ b/plugins/calendar/drivers/kolab/kolab_driver.php
@@ -1066,7 +1066,7 @@ class kolab_driver extends calendar_driver
     if (!empty($candidates)) {
       $alarm_ids = array_map(array($this->rc->db, 'quote'), array_keys($candidates));
       $result = $this->rc->db->query(sprintf(
-          "SELECT * FROM kolab_alarms
+          "SELECT * FROM " . $this->rc->db->table_name('kolab_alarms') . "
            WHERE alarm_id IN (%s) AND user_id=?",
            join(',', $alarm_ids),
            $this->rc->db->now()
@@ -1103,7 +1103,7 @@ class kolab_driver extends calendar_driver
   {
     // delete old alarm entry
     $this->rc->db->query(
-      "DELETE FROM kolab_alarms
+      "DELETE FROM " . $this->rc->db->table_name('kolab_alarms') . "
        WHERE alarm_id=? AND user_id=?",
        $alarm_id,
        $this->rc->user->ID
@@ -1113,7 +1113,7 @@ class kolab_driver extends calendar_driver
     $notifyat = $snooze > 0 ? date('Y-m-d H:i:s', time() + $snooze) : null;
 
     $query = $this->rc->db->query(
-      "INSERT INTO kolab_alarms
+      "INSERT INTO " . $this->rc->db->table_name('kolab_alarms') . "
        (alarm_id, user_id, dismissed, notifyat)
        VALUES(?, ?, ?, ?)",
       $alarm_id,
@@ -1776,7 +1776,7 @@ class kolab_driver extends calendar_driver
   {
     $db = $this->rc->get_dbh();
     foreach (array('kolab_alarms', 'itipinvitations') as $table) {
-      $db->query("DELETE FROM $table WHERE user_id=?", $args['user']->ID);
+      $db->query("DELETE FROM " . $this->rc->db->table_name($table) . " WHERE user_id=?", $args['user']->ID);
     }
   }
 }
diff --git a/plugins/calendar/lib/calendar_itip.php b/plugins/calendar/lib/calendar_itip.php
index 9735f49..de40122 100644
--- a/plugins/calendar/lib/calendar_itip.php
+++ b/plugins/calendar/lib/calendar_itip.php
@@ -34,6 +34,8 @@ class calendar_itip extends libcalendaring_itip
   function __construct($plugin, $domain = 'calendar')
   {
     parent::__construct($plugin, $domain);
+
+    $this->db_itipinvitations = $this->rc->db->table_name('itipinvitations');
   }
 
   /**
@@ -59,7 +61,7 @@ class calendar_itip extends libcalendaring_itip
   public function get_invitation($token)
   {
     if ($parts = $this->decode_token($token)) {
-      $result = $this->rc->db->query("SELECT * FROM itipinvitations WHERE token=?", $parts['base']);
+      $result = $this->rc->db->query("SELECT * FROM $this->db_itipinvitations WHERE token=?", $parts['base']);
       if ($result && ($rec = $this->rc->db->fetch_assoc($result))) {
         $rec['event'] = unserialize($rec['event']);
         $rec['attendee'] = $parts['attendee'];
@@ -110,7 +112,7 @@ class calendar_itip extends libcalendaring_itip
       
       // update record in DB
       $query = $this->rc->db->query(
-        "UPDATE itipinvitations
+        "UPDATE $this->db_itipinvitations
          SET event=?
          WHERE token=?",
         self::serialize_event($invitation['event']),
@@ -148,10 +150,10 @@ class calendar_itip extends libcalendaring_itip
       return $token;
 
     // delete old entry
-    $this->rc->db->query("DELETE FROM itipinvitations WHERE token=?", $base);
+    $this->rc->db->query("DELETE FROM $this->db_itipinvitations WHERE token=?", $base);
 
     $query = $this->rc->db->query(
-      "INSERT INTO itipinvitations
+      "INSERT INTO $this->db_itipinvitations
        (token, event_uid, user_id, event, expires)
        VALUES(?, ?, ?, ?, ?)",
       $base,
@@ -178,7 +180,7 @@ class calendar_itip extends libcalendaring_itip
   {
     // flag invitation record as cancelled
     $this->rc->db->query(
-      "UPDATE itipinvitations
+      "UPDATE $this->db_itipinvitations
        SET cancelled=1
        WHERE event_uid=? AND user_id=?",
        $event['uid'],
diff --git a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
index f340b42..253cb62 100644
--- a/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
+++ b/plugins/tasklist/drivers/kolab/tasklist_kolab_driver.php
@@ -700,7 +700,7 @@ class tasklist_kolab_driver extends tasklist_driver
         if (!empty($candidates)) {
             $alarm_ids = array_map(array($this->rc->db, 'quote'), array_keys($candidates));
             $result = $this->rc->db->query(sprintf(
-                "SELECT * FROM kolab_alarms
+                "SELECT * FROM " . $this->rc->db->table_name('kolab_alarms') . "
                  WHERE alarm_id IN (%s) AND user_id=?",
                  join(',', $alarm_ids),
                  $this->rc->db->now()
@@ -739,7 +739,7 @@ class tasklist_kolab_driver extends tasklist_driver
     {
         // delete old alarm entry
         $this->rc->db->query(
-            "DELETE FROM kolab_alarms
+            "DELETE FROM " . $this->rc->db->table_name('kolab_alarms') . "
              WHERE alarm_id=? AND user_id=?",
             $id,
             $this->rc->user->ID
@@ -749,7 +749,7 @@ class tasklist_kolab_driver extends tasklist_driver
         $notifyat = $snooze > 0 ? date('Y-m-d H:i:s', time() + $snooze) : null;
 
         $query = $this->rc->db->query(
-            "INSERT INTO kolab_alarms
+            "INSERT INTO " . $this->rc->db->table_name('kolab_alarms') . "
              (alarm_id, user_id, dismissed, notifyat)
              VALUES(?, ?, ?, ?)",
             $id,
@@ -770,7 +770,7 @@ class tasklist_kolab_driver extends tasklist_driver
     {
         // delete alarm entry
         $this->rc->db->query(
-            "DELETE FROM kolab_alarms
+            "DELETE FROM " . $this->rc->db->table_name('kolab_alarms') . "
              WHERE alarm_id=? AND user_id=?",
             $id,
             $this->rc->user->ID


commit 0e40a59ae287464679d0ad9c78cbcf0ef5f08648
Author: Thomas Bruederli <bruederli at kolabsys.com>
Date:   Tue Aug 26 15:44:25 2014 +0200

    Don't restrict alarms primary key to event/alarm UID but include user_id

diff --git a/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql b/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
index de33926..d500961 100644
--- a/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
+++ b/plugins/calendar/drivers/kolab/SQL/mysql.initial.sql
@@ -11,7 +11,7 @@ CREATE TABLE IF NOT EXISTS `kolab_alarms` (
   `user_id` int(10) UNSIGNED NOT NULL,
   `notifyat` DATETIME DEFAULT NULL,
   `dismissed` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
-  PRIMARY KEY(`alarm_id`),
+  PRIMARY KEY(`alarm_id`,`user_id`),
   CONSTRAINT `fk_kolab_alarms_user_id` FOREIGN KEY (`user_id`)
     REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
 ) /*!40000 ENGINE=INNODB */;
diff --git a/plugins/calendar/drivers/kolab/SQL/mysql/2014082600.sql b/plugins/calendar/drivers/kolab/SQL/mysql/2014082600.sql
new file mode 100644
index 0000000..501eb5c
--- /dev/null
+++ b/plugins/calendar/drivers/kolab/SQL/mysql/2014082600.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `kolab_alarms` DROP PRIMARY KEY;
+ALTER TABLE `kolab_alarms` ADD PRIMARY KEY (`alarm_id`, `user_id`);




More information about the commits mailing list