[evolution-patches] patch to reomve ldap related options form groupwise camel provider



Hi,
The attached patch changes which i have done to remove ldap related
options form camel groupwise provider as currently we use SOAP for
address book also.Instead now we ask for SOAP port. 

Also i have removed code which adds  e-sources for ldap address book 
from camel-gw-listener.c. Now we add a separate source group in address
book component for each gw account and e-sources for address books under
it. It is not yet complete but with this, one can try groupwise address
book stuff.
 
Thanks,
Sivaiah
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/camel/ChangeLog,v
retrieving revision 1.2056
diff -u -r1.2056 ChangeLog
--- ChangeLog	23 Mar 2004 06:16:22 -0000	1.2056
+++ ChangeLog	24 Mar 2004 10:24:13 -0000
@@ -1,3 +1,14 @@
+2004-03-24  Sivaiah Nallagatla <snallagatla novell com>
+                                                                                
+        * providers/groupwise/camel-groupwise-provider.c : removed
+        ldap seetings and added a settng for SOAP port
+        * providers/groupwise/camel-gw-listner.h (add_calendar_tasks_sources)
+        (remove_calendar_tasks_sources), (modify_calendar_tasks_sources) : read port number
+        from url instead of hardcoding
+        Also removed code for adding e-sources for ldap address book and
+        adding now e-sources for groupwise address book
+                                                                                
+
 2004-03-23  Not Zed  <NotZed Ximian com>
 
 	* providers/imap/camel-imap-store.c (get_folder_info_online):
Index: providers/groupwise/camel-groupwise-provider.c
===================================================================
RCS file: /cvs/gnome/evolution/camel/providers/groupwise/camel-groupwise-provider.c,v
retrieving revision 1.8
diff -u -r1.8 camel-groupwise-provider.c
--- providers/groupwise/camel-groupwise-provider.c	19 Feb 2004 07:27:38 -0000	1.8
+++ providers/groupwise/camel-groupwise-provider.c	24 Mar 2004 10:24:13 -0000
@@ -62,16 +62,13 @@
 	  N_("Automatically synchronize remote mail locally"), "0" },
 
 	/* extra Groupwise  configuration settings */
-	{CAMEL_PROVIDER_CONF_SECTION_START, "ldapserver", NULL,
-	  N_("Address Book") },
+	{CAMEL_PROVIDER_CONF_SECTION_START, "soapport", NULL,
+	  N_("Address Book And Calendar") },
 
-	{ CAMEL_PROVIDER_CONF_ENTRY, "ldap_server", NULL,
-	  N_("LDAP Server Name:") },
-
-	{ CAMEL_PROVIDER_CONF_ENTRY, "search_base", NULL, 
-	  N_("Search base:") },
+	{ CAMEL_PROVIDER_CONF_ENTRY, "soap_port", NULL,
+	  N_("Post Office Agent SOAP Port:"), "7181" },
 	
-	 { CAMEL_PROVIDER_CONF_SECTION_END }, 
+	{ CAMEL_PROVIDER_CONF_SECTION_END }, 
 
 
 	{ CAMEL_PROVIDER_CONF_END }
Index: providers/groupwise/camel-gw-listener.c
===================================================================
RCS file: /cvs/gnome/evolution/camel/providers/groupwise/camel-gw-listener.c,v
retrieving revision 1.7
diff -u -r1.7 camel-gw-listener.c
--- providers/groupwise/camel-gw-listener.c	3 Mar 2004 11:16:48 -0000	1.7
+++ providers/groupwise/camel-gw-listener.c	24 Mar 2004 10:24:13 -0000
@@ -51,8 +51,6 @@
 #define GROUPWISE_URI_PREFIX   "groupwise://" 
 #define GROUPWISE_PREFIX_LENGTH 12
 
-#define LDAP_URI_PREFIX "ldap://";
-
 #define PARENT_TYPE G_TYPE_OBJECT
 
 static GObjectClass *parent_class = NULL;
@@ -242,10 +240,13 @@
 	char *old_relative_uri;
 	CamelURL *url;
 	gboolean found_group;
+	const char *soap_port;
 
 	url = camel_url_new (old_account_info->source_url, NULL);
-	/* FIXME: don't hard-code the port number */
-	old_relative_uri =  g_strdup_printf ("%s:7181/soap", url->host);
+	soap_port = camel_url_get_param (url, "soap_port");
+	if (!soap_port)
+		soap_port = "7181";
+	old_relative_uri =  g_strdup_printf ("%s:%s/soap", url->host, soap_port);
 
         list = e_source_list_new_for_gconf (gconf_client_get_default (), conf_key);
 	groups = e_source_list_peek_groups (list); 
@@ -291,13 +292,15 @@
 {
 	CamelURL *url;
 	char *relative_uri;
-	
+	const char *soap_port;
+			
 	url = camel_url_new (info->source_url, NULL);
-	/* FIXME: don't hard-code the port number */
-	relative_uri =  g_strdup_printf ("%s:7181/soap", url->host);
+	soap_port = camel_url_get_param (url, "soap_port");
+ 	if (!soap_port)
+		soap_port = "7181";
+	relative_uri =  g_strdup_printf ("%s:%s/soap", url->host, soap_port);
 	add_esource ("/apps/evolution/calendar/sources", info->name, _("Calendar"), url->user, relative_uri);
 	add_esource ("/apps/evolution/tasks/sources", info->name, _("Checklist"), url->user,  relative_uri);
-	
 	groupwise_accounts = g_list_append (groupwise_accounts, info);
 	
 	camel_url_free (url);
@@ -313,12 +316,13 @@
 {
 	CamelURL *url;
 	char *relative_uri;
-	
-	url = camel_url_new (info->source_url, NULL);
-	/* FIXME: don't hard-code the port number */
-	relative_uri =  g_strdup_printf ("%s:7181/soap", url->host);
-
+        const char *soap_port;
 
+	url = camel_url_new (info->source_url, NULL);
+	soap_port = camel_url_get_param (url, "soap_port");
+	if (!soap_port)
+		soap_port = "7181";
+	relative_uri =  g_strdup_printf ("%s:%s/soap", url->host, soap_port);
 	remove_esource ("/apps/evolution/calendar/sources", info->name, _("Calendar"), relative_uri);
 	remove_esource ("/apps/evolution/tasks/sources", info->name,  _("Checklist"), relative_uri);
 	
@@ -331,102 +335,73 @@
 	g_free (relative_uri);
 
 }
+
 static void 
-add_ldap_addressbook_source (EAccount *account)
+add_addressbook_sources (EAccount *account)
 {
 	CamelURL *url;
-	const char *ldap_server_name;
-	const char *search_scope;
 	ESourceList *list;
         ESourceGroup *group;
         ESource *source;
-        GSList *groups;
-       	gboolean found_group;
-	char * relative_uri;
-
+       	char * relative_uri;
+	const char *soap_port;
+	
 	url = camel_url_new (account->source->url, NULL);
-
 	if (url == NULL) {
 		return;
 	}
-	
-	ldap_server_name = camel_url_get_param (url, "ldap_server");
-	search_scope = camel_url_get_param (url, "search_base");
-
-	if (ldap_server_name == NULL) {
-	
-		return;
-	}
-
+	soap_port = camel_url_get_param (url, "soap_port");
+	if (!soap_port)
+		soap_port = "7181";
+	relative_uri =  g_strdup_printf ("%s:%s/soap", url->host, soap_port);
 	list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
-	groups = e_source_list_peek_groups (list); 
-
-	relative_uri = g_strdup_printf ("%s:%s/%s%s%s", ldap_server_name, "389",
-                                      search_scope, "??", "sub");
-		
-	found_group = FALSE;
-
-	for ( ; groups != NULL &&  !found_group; groups = g_slist_next (groups)) {
-
-		group = E_SOURCE_GROUP (groups->data);
-		if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
-			source = e_source_new (account->name, relative_uri);
-			e_source_set_property ( source, "limit", "100");
-			e_source_set_property ( source, "ssl", "never");
-			e_source_set_property (source, "auth", "none");
-			e_source_group_add_source (group, source, -1);
-			e_source_list_sync (list, NULL);
-			found_group = TRUE;
-		}
-	}
-
-	g_free (relative_uri);
-	g_object_unref (list);
-	camel_url_free (url);
+	group = e_source_group_new (account->name, "groupwise://");
+	e_source_list_add_group (list, group, -1);
+	source = e_source_new ("Frequent Contacts", relative_uri);
+	e_source_set_property (source, "auth", "ldap/simple-binddn");
+        e_source_set_property(source, "binddn", url->user);
+	e_source_group_add_source (group, source, -1);
+	e_source_list_sync (list, NULL);
 	
+	g_object_unref (source);
+	g_object_unref (group);
+	g_object_unref (list);
+	g_free (relative_uri);
 }
 
 static void 
-modify_ldap_addressbook_source ( EAccount *account)
+modify_addressbook_sources ( EAccount *account, const char *old_account_name)
 {
 	CamelURL *url;
-	const char *ldap_server_name;
-	const char *search_scope;
 	ESourceList *list;
         ESourceGroup *group;
         ESource *source;
         GSList *groups;
        	gboolean found_group;
 	char * relative_uri;
+	const char *soap_port;
 
 	url = camel_url_new (account->source->url, NULL);
-
 	if (url == NULL) {
 		return;
 	}
-	
-	ldap_server_name = camel_url_get_param (url, "ldap_server");
-
-	if (ldap_server_name == NULL) {
-		return;
-	}
-		
-	search_scope = camel_url_get_param (url, "search_base");
-
+			
 	list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
 	groups = e_source_list_peek_groups (list); 
+	soap_port = camel_url_get_param (url, "soap_port");
+	if (!soap_port)
+		soap_port = "7181";
+	relative_uri =  g_strdup_printf ("%s:%s/soap", url->host, soap_port);
 
-	relative_uri = g_strdup_printf ("%s:%s/%s%s%s", ldap_server_name, "389",
-                                      search_scope, "??", "sub");
-		
 	found_group = FALSE;
-
 	for ( ; groups != NULL &&  !found_group; groups = g_slist_next (groups)) {
 
 		group = E_SOURCE_GROUP (groups->data);
-		if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
-			source = e_source_group_peek_source_by_name (group, account->name);
-			e_source_set_relative_uri (source, relative_uri);
+		if ( strcmp ( e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX) == 0 && strcmp (e_source_group_peek_name (group), old_account_name) == 0) {
+			e_source_group_set_name (group, account->name);
+			source = e_source_group_peek_source_by_name (group, "Frequent Contacts");
+			if (source)
+				e_source_set_relative_uri (source, relative_uri);
 			e_source_list_sync (list, NULL);
 			found_group = TRUE;
 		}
@@ -437,13 +412,13 @@
 	camel_url_free (url);
 
 }
+
 static void 
-remove_ldap_addressbook_source ( EAccount *account )
+remove_addressbook_sources (EAccount *account)
 {
 	ESourceList *list;
         ESourceGroup *group;
-        ESource *source;
-        GSList *groups;
+	GSList *groups;
        	gboolean found_group;
 
 	list = e_source_list_new_for_gconf (gconf_client_get_default (), "/apps/evolution/addressbook/sources" );
@@ -454,10 +429,9 @@
 	for ( ; groups != NULL &&  !found_group; groups = g_slist_next (groups)) {
 
 		group = E_SOURCE_GROUP (groups->data);
-		if ( strcmp ( e_source_group_peek_base_uri (group), LDAP_URI_PREFIX) == 0) {
+		if ( strcmp ( e_source_group_peek_base_uri (group), GROUPWISE_URI_PREFIX) == 0 && strcmp (e_source_group_peek_name (group), account->name) == 0) {
 
-			source = e_source_group_peek_source_by_name (group, account->name);
-			e_source_group_remove_source (group, source);
+			e_source_list_remove_group (list, group);
 			e_source_list_sync (list, NULL);
 			found_group = TRUE;
 						
@@ -469,6 +443,7 @@
 }
 
 
+
 static void 
 account_added (EAccountList *account_listener, EAccount *account)
 {
@@ -484,7 +459,7 @@
 	info->source_url = g_strdup (account->source->url);
 
 	add_calendar_tasks_sources (info);
-	add_ldap_addressbook_source(account);
+	add_addressbook_sources (account);
 }
 
 
@@ -495,8 +470,9 @@
 	gboolean is_gw_account;
 	CamelURL *url;
 	char *relative_uri;
-
+	const char *soap_port;
 	GwAccountInfo *existing_account_info;
+
 	is_gw_account = is_groupwise_account (account);
 	existing_account_info = lookup_account_info (account->uid);
 		
@@ -517,15 +493,19 @@
 		if (strcmp (existing_account_info->name, account->name) != 0 || strcmp (existing_account_info->source_url, account->source->url) != 0) {
 			
 			url = camel_url_new (account->source->url, NULL);
-			relative_uri =  g_strdup_printf ("%s:7181/soap", url->host);
+			soap_port = camel_url_get_param (url, "soap_port");
+			if (!soap_port)
+				soap_port = "7181";
+			relative_uri =  g_strdup_printf ("%s:%s/soap", url->host, soap_port);
 			modify_esource ("/apps/evolution/calendar/sources", existing_account_info, account->name, url->user, relative_uri);
 			modify_esource ("/apps/evolution/tasks/sources", existing_account_info, account->name, url->user, relative_uri);
+			modify_addressbook_sources (account, existing_account_info->name);
 			g_free (existing_account_info->name);
 			g_free (existing_account_info->source_url);
 			existing_account_info->name = g_strdup (account->name);
 			existing_account_info->source_url = g_strdup (account->source->url);
 			camel_url_free (url);
-			modify_ldap_addressbook_source (account);
+			
 		}
 		
 	}
@@ -547,7 +527,7 @@
 	}
 
 	remove_calendar_tasks_sources (info);
-	remove_ldap_addressbook_source (account);
+	remove_addressbook_sources (account);
 
 }
 


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