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