diff options
Diffstat (limited to 'plugins/exchange-account-setup')
3 files changed, 101 insertions, 9 deletions
diff --git a/plugins/exchange-account-setup/ChangeLog b/plugins/exchange-account-setup/ChangeLog index 61e0b4b7b0..7c5b15895f 100644 --- a/plugins/exchange-account-setup/ChangeLog +++ b/plugins/exchange-account-setup/ChangeLog @@ -1,3 +1,11 @@ +2005-01-10 Sushma Rai <rsushma@novell.com> + + * org-gnome-exchange-account-setup.eplug.in: Added plugin to read + OWA url entry to the account set up druid. + + * exchange-ask-password.c: Create a entry for OWA URL and reads the + URL value. + 2005-01-09 Sushma Rai <rsushma@novell.com> * exchange-ask-password.c: Pops up password dialog and validates diff --git a/plugins/exchange-account-setup/exchange-ask-password.c b/plugins/exchange-account-setup/exchange-ask-password.c index 1474613959..635feb4966 100644 --- a/plugins/exchange-account-setup/exchange-ask-password.c +++ b/plugins/exchange-account-setup/exchange-ask-password.c @@ -40,6 +40,9 @@ int e_plugin_lib_enable (EPluginLib *ep, int enable); gboolean org_gnome_exchange_ask_password (EPlugin *epl, EConfigHookPageCheckData *data); +GtkWidget *org_gnome_exchange_read_url(EPlugin *epl, EConfigHookItemFactoryData *data); + +char *owa_entry_text = NULL; static gboolean validate_exchange_user (EConfig *ec, const char *pageid, void *data) @@ -62,7 +65,7 @@ validate_exchange_user (EConfig *ec, const char *pageid, void *data) return FALSE; /* This should never happen */ } - valid = camel_provider_validate_user (provider, url, NULL); + valid = camel_provider_validate_user (owa_entry_text, provider, url, NULL); if (valid) { count ++; url_string = camel_url_to_string (url, 0); @@ -71,7 +74,31 @@ validate_exchange_user (EConfig *ec, const char *pageid, void *data) return valid; } -#if 0 +static void +owa_entry_changed (GtkWidget *entry, void *data) +{ + /* FIXME: return owa_entry_text instead of making it global */ + owa_entry_text = gtk_entry_get_text (GTK_ENTRY (entry)); +} + +static GtkWidget * +add_owa_entry (GtkWidget *parent) +{ + GtkWidget *section, *owa_entry; + + section = gtk_vbox_new (FALSE, 0); + gtk_widget_show (section); + gtk_box_pack_start (GTK_BOX (parent), section, FALSE, FALSE, 0); + + owa_entry = gtk_entry_new (); + gtk_widget_show (owa_entry); + gtk_box_pack_start (GTK_BOX (section), owa_entry, FALSE, FALSE, 0); + + g_signal_connect (owa_entry, "changed", G_CALLBACK(owa_entry_changed), NULL); + + return section; /* FIXME: return entry */ +} + int e_plugin_lib_enable (EPluginLib *ep, int enable) { @@ -79,7 +106,45 @@ e_plugin_lib_enable (EPluginLib *ep, int enable) } return 0; } -#endif + +GtkWidget * +org_gnome_exchange_read_url(EPlugin *epl, EConfigHookItemFactoryData *data) +{ + EMConfigTargetAccount *target_account; + char *account_url = NULL, *exchange_url = NULL, *temp_url; + GtkWidget *owa_entry, *parent; + CamelURL *url=NULL; + + target_account = (EMConfigTargetAccount *)data->config->target; + account_url = g_strdup (target_account->account->source->url); + exchange_url = g_strrstr (account_url, "exchange"); + + if (exchange_url) { + printf ("org_gnome_exchange_read_url \n"); + if (data->old) { + return data->old; + } + + /* hack for making page check work when host is not there */ + url = camel_url_new_with_base (NULL, account_url); + if (url->host == NULL) { + url->host = g_strdup("localhost"); + /* FIXME: extract host name from url and use it*/ + temp_url = camel_url_to_string (url, 0); + target_account->account->source->url = g_strdup(temp_url); + g_free (temp_url); + } + + parent = data->parent; + owa_entry = add_owa_entry(parent); + g_free (account_url); + return owa_entry; + } + else { + g_free (account_url); + return NULL; + } +} gboolean org_gnome_exchange_ask_password(EPlugin *epl, EConfigHookPageCheckData *data) diff --git a/plugins/exchange-account-setup/org-gnome-exchange-account-setup.eplug.in b/plugins/exchange-account-setup/org-gnome-exchange-account-setup.eplug.in index bb5c3a4f99..299ad6f9b7 100644 --- a/plugins/exchange-account-setup/org-gnome-exchange-account-setup.eplug.in +++ b/plugins/exchange-account-setup/org-gnome-exchange-account-setup.eplug.in @@ -22,22 +22,41 @@ <e-plugin type="shlib" + id="org.gnome.evolution.plugin.exchange-read-url" + location="@PLUGINDIR@/liborg-gnome-exchange-account-settings.so" + load-on-startup="true" + name="Exchange OWA URL" + description="A pluign to read OWA url in account druid"> + + <hook class="org.gnome.evolution.mail.config:1.0"> + <group + target="account" + id="org.gnome.evolution.mail.config.accountDruid"> + <item type="section" + path="10.receive/30.config" + label="OWA Url"/> + <item type="item" + path="10.receive/30.config/00.owa" + factory="org_gnome_exchange_read_url"/> + </group> + </hook> + </e-plugin> + + <e-plugin + type="shlib" id="org.gnome.evolution.plugin.exchange-ask-password" location="@PLUGINDIR@/liborg-gnome-exchange-account-settings.so" load-on-startup="true" - name="Exchange Password Dialog" + name="Exchange User Authentication" description="A pluign to read password once the user enters identity information"> + <hook class="org.gnome.evolution.mail.config:1.0"> <group target="account" id="org.gnome.evolution.mail.config.accountDruid" check="org_gnome_exchange_ask_password"> - - <item - path="90.dummy"/> + <item path="90.dummy"/> </group> </hook> </e-plugin> - - </e-plugin-list> |