[evolution-ews/gnome-3-6] Address books always read-only



commit ef108a12e5c2a132e8643bf12c536bc32dc83223
Author: Milan Crha <mcrha redhat com>
Date:   Fri Nov 23 14:25:19 2012 +0100

    Address books always read-only
    
    This is broken since commit c8538477927282

 src/addressbook/e-book-backend-ews.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-ews.c b/src/addressbook/e-book-backend-ews.c
index cb3804e..b8fe69d 100644
--- a/src/addressbook/e-book-backend-ews.c
+++ b/src/addressbook/e-book-backend-ews.c
@@ -2829,16 +2829,15 @@ e_book_backend_ews_open (EBookBackend *backend,
 		gboolean need_to_authenticate;
 
 		PRIV_LOCK (cbews->priv);
-		need_to_authenticate =
-			(cbews->priv->cnc == NULL) &&
-			(e_backend_get_online (E_BACKEND (backend)));
+		need_to_authenticate = cbews->priv->cnc == NULL && e_backend_get_online (E_BACKEND (backend));
 		PRIV_UNLOCK (cbews->priv);
 
-		if (need_to_authenticate)
+		if (need_to_authenticate) {
 			e_backend_authenticate_sync (
 				E_BACKEND (backend),
 				E_SOURCE_AUTHENTICATOR (backend),
 				cancellable, &error);
+		}
 	}
 
 	convert_error_to_edb_error (&error);
@@ -2958,10 +2957,18 @@ book_backend_ews_try_password_sync (ESourceAuthenticator *authenticator,
 		if (backend->priv->cnc != NULL)
 			g_object_unref (backend->priv->cnc);
 		backend->priv->cnc = g_object_ref (connection);
+		backend->priv->is_writable = !backend->priv->is_gal;
 
 		PRIV_UNLOCK (backend->priv);
+
+		e_book_backend_notify_online (E_BOOK_BACKEND (backend), TRUE);
+	} else {
+		backend->priv->is_writable = FALSE;
+		e_book_backend_notify_online (E_BOOK_BACKEND (backend), FALSE);
 	}
 
+	e_book_backend_notify_readonly (E_BOOK_BACKEND (backend), !backend->priv->is_writable);
+
 	g_object_unref (connection);
 
 	g_free (hosturl);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]