summaryrefslogtreecommitdiff
path: root/program/include
diff options
context:
space:
mode:
authorthomascube <thomas@roundcube.net>2011-10-10 20:15:46 +0000
committerthomascube <thomas@roundcube.net>2011-10-10 20:15:46 +0000
commitdc6c4f4a28652f428a507b0335f418749cdbc3bd (patch)
tree336545f4b595b555631569eb73b34ea5cf0a183f /program/include
parenta3148236ebaa7e61177e7186138997d136b88b3e (diff)
Contact groups can have direct email addresses => distribution lists; enable 'compose' command for the selected group
Diffstat (limited to 'program/include')
-rw-r--r--program/include/rcube_addressbook.php12
-rw-r--r--program/include/rcube_contacts.php33
2 files changed, 41 insertions, 4 deletions
diff --git a/program/include/rcube_addressbook.php b/program/include/rcube_addressbook.php
index 88f0aa900..7270f42fd 100644
--- a/program/include/rcube_addressbook.php
+++ b/program/include/rcube_addressbook.php
@@ -296,6 +296,18 @@ abstract class rcube_addressbook
}
/**
+ * Get group properties such as name and email address(es)
+ *
+ * @param string Group identifier
+ * @return array Group properties as hash array
+ */
+ function get_group($group_id)
+ {
+ /* empty for address books don't supporting groups */
+ return null;
+ }
+
+ /**
* Create a contact group with the given name
*
* @param string The group name
diff --git a/program/include/rcube_contacts.php b/program/include/rcube_contacts.php
index c810ce60e..a2eeffc8a 100644
--- a/program/include/rcube_contacts.php
+++ b/program/include/rcube_contacts.php
@@ -164,6 +164,29 @@ class rcube_contacts extends rcube_addressbook
/**
+ * Get group properties such as name and email address(es)
+ *
+ * @param string Group identifier
+ * @return array Group properties as hash array
+ */
+ function get_group($group_id)
+ {
+ $sql_result = $this->db->query(
+ "SELECT * FROM ".get_table_name($this->db_groups).
+ " WHERE del<>1".
+ " AND contactgroup_id=?".
+ " AND user_id=?",
+ $group_id, $this->user_id);
+
+ if ($sql_result && ($sql_arr = $this->db->fetch_assoc($sql_result))) {
+ $sql_arr['ID'] = $sql_arr['contactgroup_id'];
+ return $sql_arr;
+ }
+
+ return null;
+ }
+
+ /**
* List the current set of contact records
*
* @param array List of cols to show, Null means all
@@ -774,8 +797,9 @@ class rcube_contacts extends rcube_addressbook
$sql_result = $this->db->query(
"UPDATE ".get_table_name($this->db_groups).
" SET del=1, changed=".$this->db->now().
- " WHERE contactgroup_id=?",
- $gid
+ " WHERE contactgroup_id=?".
+ " AND user_id=?",
+ $gid, $this->user_id
);
$this->cache = null;
@@ -799,8 +823,9 @@ class rcube_contacts extends rcube_addressbook
$sql_result = $this->db->query(
"UPDATE ".get_table_name($this->db_groups).
" SET name=?, changed=".$this->db->now().
- " WHERE contactgroup_id=?",
- $name, $gid
+ " WHERE contactgroup_id=?".
+ " AND user_id=?",
+ $name, $gid, $this->user_id
);
return $this->db->affected_rows() ? $name : false;