From 9cb76ad3c2ebcf6f75053de2e686390470dce7ba Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Tue, 21 Aug 2012 05:22:23 -0400
Subject: [PATCH] Fix so subscribed non-existing/non-accessible shared folder can be unsubscribed

---
 CHANGELOG                          |    1 +
 program/steps/settings/folders.inc |    4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 65b2dcb..6a7b214 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,7 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- Fix so subscribed non-existing/non-accessible shared folder can be unsubscribed
 - Rewritten test scripts for PHPUnit
 - Add new DB abstraction layer based on PHP PDO, supporting SQLite3 (#1488332)
 - Removed PEAR::MDB2 package
diff --git a/program/steps/settings/folders.inc b/program/steps/settings/folders.inc
index 1031fc1..2c2cbdc 100644
--- a/program/steps/settings/folders.inc
+++ b/program/steps/settings/folders.inc
@@ -321,8 +321,8 @@
                 }
             }
         }
-        // check if the folder is shared, then disable subscription option on it
-        if (!$disabled && $folder['virtual'] && !empty($namespace)) {
+        // check if the folder is shared, then disable subscription option on it (if not subscribed already)
+        if (!$disabled && !$subscribed && $folder['virtual'] && !empty($namespace)) {
             $tmp_ns = array_merge((array)$namespace['other'], (array)$namespace['shared']);
             foreach ($tmp_ns as $item) {
                 if (strpos($folder['id'], $item[0]) === 0) {

--
Gitblit v1.9.1