summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoralecpl <alec@alec.pl>2011-08-11 08:32:04 +0000
committeralecpl <alec@alec.pl>2011-08-11 08:32:04 +0000
commit077cfdac2d979f177489495d6e6524377756f832 (patch)
tree724f09ed87c1351c1f63e28d80dd2787cc44bf37
parent83b20a3b497f84c521db1856b73fd8d383195b60 (diff)
- Added IMAP ENABLE (RFC5161) support
- Removed deprecated @access comments
-rw-r--r--CHANGELOG1
-rw-r--r--program/include/rcube_imap_generic.php64
2 files changed, 32 insertions, 33 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 73d57fc91..1598b1338 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
CHANGELOG Roundcube Webmail
===========================
+- Added IMAP ENABLE (RFC5161) support
- Add newlines between organization, department, jobtitle (#1488028)
- Recalculate date when replying to a message and localize the cite header (#1487675)
- Fix XSS vulnerability in UI messages (#1488030)
diff --git a/program/include/rcube_imap_generic.php b/program/include/rcube_imap_generic.php
index e3c987cd3..85fb379fd 100644
--- a/program/include/rcube_imap_generic.php
+++ b/program/include/rcube_imap_generic.php
@@ -874,7 +874,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return boolean True on success, false on error
- * @access public
*/
function select($mailbox)
{
@@ -929,7 +928,6 @@ class rcube_imap_generic
* in RFC3501: UIDNEXT, UIDVALIDITY, RECENT
*
* @return array Status item-value hash
- * @access public
* @since 0.5-beta
*/
function status($mailbox, $items=array())
@@ -983,7 +981,6 @@ class rcube_imap_generic
* @param string $messages Message UIDs to expunge
*
* @return boolean True on success, False on error
- * @access public
*/
function expunge($mailbox, $messages=NULL)
{
@@ -1016,7 +1013,6 @@ class rcube_imap_generic
* Executes CLOSE command
*
* @return boolean True on success, False on error
- * @access public
* @since 0.5
*/
function close()
@@ -1037,7 +1033,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return boolean True on success, False on error
- * @access public
*/
function subscribe($mailbox)
{
@@ -1053,7 +1048,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return boolean True on success, False on error
- * @access public
*/
function unsubscribe($mailbox)
{
@@ -1069,7 +1063,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return boolean True on success, False on error
- * @access public
*/
function deleteFolder($mailbox)
{
@@ -1085,7 +1078,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return boolean True on success, False on error
- * @access public
*/
function clearFolder($mailbox)
{
@@ -1110,7 +1102,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return int Number of messages, False on error
- * @access public
*/
function countMessages($mailbox, $refresh = false)
{
@@ -1143,7 +1134,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return int Number of messages, False on error
- * @access public
*/
function countRecent($mailbox)
{
@@ -1166,7 +1156,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return int Number of messages, False on error
- * @access public
*/
function countUnseen($mailbox)
{
@@ -1197,7 +1186,6 @@ class rcube_imap_generic
* @param array $items Client identification information key/value hash
*
* @return array Server identification information key/value hash
- * @access public
* @since 0.6
*/
function id($items=array())
@@ -1229,6 +1217,37 @@ class rcube_imap_generic
return false;
}
+ /**
+ * Executes ENABLE command (RFC5161)
+ *
+ * @param mixed $extension Extension name to enable (or array of names)
+ *
+ * @return array|bool List of enabled extensions, False on error
+ * @since 0.6
+ */
+ function enable($extension)
+ {
+ if (empty($extension))
+ return false;
+
+ if (!$this->hasCapability('ENABLE'))
+ return false;
+
+ if (!is_array($extension))
+ $extension = array($extension);
+
+ list($code, $response) = $this->execute('ENABLE', $extension);
+
+ if ($code == self::ERROR_OK && preg_match('/\* ENABLED /i', $response)) {
+ $response = substr($response, 10); // remove prefix "* ENABLED "
+ $result = (array) $this->tokenizeResponse($response);
+
+ return $result;
+ }
+
+ return false;
+ }
+
function sort($mailbox, $field, $add='', $is_uid=FALSE, $encoding = 'US-ASCII')
{
$field = strtoupper($field);
@@ -1466,7 +1485,6 @@ class rcube_imap_generic
* @param int $uid Message unique identifier (UID)
*
* @return int Message sequence identifier
- * @access public
*/
function UID2ID($mailbox, $uid)
{
@@ -1486,7 +1504,6 @@ class rcube_imap_generic
* @param int $uid Message sequence identifier
*
* @return int Message unique identifier
- * @access public
*/
function ID2UID($mailbox, $id)
{
@@ -2110,7 +2127,6 @@ class rcube_imap_generic
*
* @return array List of mailboxes or hash of options if $status_opts argument
* is non-empty.
- * @access public
*/
function listMailboxes($ref, $mailbox, $status_opts=array(), $select_opts=array())
{
@@ -2126,7 +2142,6 @@ class rcube_imap_generic
*
* @return array List of mailboxes or hash of options if $status_opts argument
* is non-empty.
- * @access public
*/
function listSubscribed($ref, $mailbox, $status_opts=array())
{
@@ -2146,7 +2161,6 @@ class rcube_imap_generic
*
* @return array List of mailboxes or hash of options if $status_ops argument
* is non-empty.
- * @access private
*/
private function _listMailboxes($ref, $mailbox, $subscribed=false,
$status_opts=array(), $select_opts=array())
@@ -2654,7 +2668,6 @@ class rcube_imap_generic
*
* @return boolean True on success, False on failure
*
- * @access public
* @since 0.5-beta
*/
function setACL($mailbox, $user, $acl)
@@ -2678,7 +2691,6 @@ class rcube_imap_generic
*
* @return boolean True on success, False on failure
*
- * @access public
* @since 0.5-beta
*/
function deleteACL($mailbox, $user)
@@ -2696,7 +2708,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return array User-rights array on success, NULL on error
- * @access public
* @since 0.5-beta
*/
function getACL($mailbox)
@@ -2737,7 +2748,6 @@ class rcube_imap_generic
* @param string $user User name
*
* @return array List of user rights
- * @access public
* @since 0.5-beta
*/
function listRights($mailbox, $user)
@@ -2769,7 +2779,6 @@ class rcube_imap_generic
* @param string $mailbox Mailbox name
*
* @return array MYRIGHTS response on success, NULL on error
- * @access public
* @since 0.5-beta
*/
function myRights($mailbox)
@@ -2796,7 +2805,6 @@ class rcube_imap_generic
* @param array $entries Entry-value array (use NULL value as NIL)
*
* @return boolean True on success, False on failure
- * @access public
* @since 0.5-beta
*/
function setMetadata($mailbox, $entries)
@@ -2826,7 +2834,6 @@ class rcube_imap_generic
*
* @return boolean True on success, False on failure
*
- * @access public
* @since 0.5-beta
*/
function deleteMetadata($mailbox, $entries)
@@ -2856,7 +2863,6 @@ class rcube_imap_generic
*
* @return array GETMETADATA result on success, NULL on error
*
- * @access public
* @since 0.5-beta
*/
function getMetadata($mailbox, $entries, $options=array())
@@ -2948,7 +2954,6 @@ class rcube_imap_generic
* three elements: entry name, attribute name, value
*
* @return boolean True on success, False on failure
- * @access public
* @since 0.5-beta
*/
function setAnnotation($mailbox, $data)
@@ -2980,7 +2985,6 @@ class rcube_imap_generic
*
* @return boolean True on success, False on failure
*
- * @access public
* @since 0.5-beta
*/
function deleteAnnotation($mailbox, $data)
@@ -3002,7 +3006,6 @@ class rcube_imap_generic
*
* @return array Annotations result on success, NULL on error
*
- * @access public
* @since 0.5-beta
*/
function getAnnotation($mailbox, $entries, $attribs)
@@ -3090,7 +3093,6 @@ class rcube_imap_generic
* Creates next command identifier (tag)
*
* @return string Command identifier
- * @access public
* @since 0.5-beta
*/
function nextTag()
@@ -3109,7 +3111,6 @@ class rcube_imap_generic
* @param int $options Execution options
*
* @return mixed Response code or list of response code and data
- * @access public
* @since 0.5-beta
*/
function execute($command, $arguments=array(), $options=0)
@@ -3167,7 +3168,6 @@ class rcube_imap_generic
* @param int $num Number of tokens to return
*
* @return mixed Tokens array or string if $num=1
- * @access public
* @since 0.5-beta
*/
static function tokenizeResponse(&$str, $num=0)
@@ -3342,7 +3342,6 @@ class rcube_imap_generic
*
* @param boolean $debug New value for the debugging flag.
*
- * @access public
* @since 0.5-stable
*/
function setDebug($debug, $handler = null)
@@ -3356,7 +3355,6 @@ class rcube_imap_generic
*
* @param string $message Debug mesage text.
*
- * @access private
* @since 0.5-stable
*/
private function debug($message)