aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-book.c
diff options
context:
space:
mode:
authorChris Toshok <toshok@helixcode.com>2001-01-05 10:22:47 +0800
committerChris Toshok <toshok@src.gnome.org>2001-01-05 10:22:47 +0800
commit5dca3046d3ad660485cc68e3c9f4ef3f98a5922d (patch)
tree1aaa131bc0b4a9ea283c8a41235d559162522ee1 /addressbook/backend/ebook/e-book.c
parentd760764af84a693d3fb580c8b402b2347a61bba8 (diff)
downloadgsoc2013-evolution-5dca3046d3ad660485cc68e3c9f4ef3f98a5922d.tar.gz
gsoc2013-evolution-5dca3046d3ad660485cc68e3c9f4ef3f98a5922d.tar.zst
gsoc2013-evolution-5dca3046d3ad660485cc68e3c9f4ef3f98a5922d.zip
new function. (impl_BookListener_respond_authentication_result): new
2001-01-04 Chris Toshok <toshok@helixcode.com> * backend/ebook/e-book-listener.c (e_book_listener_queue_authentication_response): new function. (impl_BookListener_respond_authentication_result): new function. (e_book_listener_get_epv): fill in epv->notifyAuthenticationResult. * backend/ebook/e-book-listener.h: add AuthenticationResponse to EBookListenerOperation. * backend/ebook/e-book.c (e_book_authenticate_user): new function. * backend/ebook/e-book.h: add prototype for e_book_authenticate_user. * backend/idl/addressbook.idl (GNOME:Evolution:Addressbook:Book): add authenticateUser method. (GNOME:Evolution:Addressbook:BookListener): add AuthenticationFailed and AuthenticationRequired to CallStatus. also add notifyAuthenticationResult method. * backend/pas/pas-backend-file.c (pas_backend_file_process_authenticate_user): dummy authenticate_user function that always succeeds. (pas_backend_file_process_client_requests): respond to the AuthenticateUser request. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query): gtk_object_unref(sexp) => s_exp_unref(sexp). (pas_backend_ldap_process_authenticate_user): fill in to use ldap_simple_bind_s. (pas_backend_ldap_process_client_requests): respond to the AuthenticateUser request. * backend/pas/pas-book.c (pas_book_queue_authenticate_user): new function. (impl_GNOME_Evolution_Addressbook_Book_authenticateUser): new function. (pas_book_respond_authenticate_user): new function. (pas_book_get_epv): fill in epv->authenticateUser. * backend/pas/pas-book.h: add AuthenticateUser operation type, and add user/passwd to the PASRequest struct. * gui/component/addressbook-storage.c (addressbook_storage_get_source_by_uri): new function. should use a hashtable, perhaps, but the lists will generally be small anyway. * gui/component/addressbook-storage.h: add prototype for addressbook_storage_get_source_by_uri. * gui/component/addressbook-config.c (addressbook_source_dialog_set_source): fill in the binddn if the auth page is shown. * gui/component/addressbook.c (book_open_cb): shoe-horn authentication in here. if the source was configured to use authentication, authenticate the user after opening the ebook. also, be paranoid and clear out the password after authenticating. (book_auth_cb): callback for auth. set the "book" arg on the view->view here. (passwd_cb): set the view's passwd that'll be used in book_open_cb. (addressbook_view_free): g_free view->passwd. svn path=/trunk/; revision=7265
Diffstat (limited to 'addressbook/backend/ebook/e-book.c')
-rw-r--r--addressbook/backend/ebook/e-book.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/addressbook/backend/ebook/e-book.c b/addressbook/backend/ebook/e-book.c
index f6e6b324d9..65ea7a595d 100644
--- a/addressbook/backend/ebook/e-book.c
+++ b/addressbook/backend/ebook/e-book.c
@@ -351,6 +351,7 @@ e_book_check_listener_queue (EBookListener *listener, EBook *book)
break;
case RemoveCardResponse:
case ModifyCardResponse:
+ case AuthenticationResponse:
e_book_do_response_generic (book, resp);
break;
case GetCursorResponse:
@@ -560,6 +561,43 @@ e_book_new (void)
return book;
}
+/* User authentication. */
+
+void
+e_book_authenticate_user (EBook *book,
+ const char *user,
+ const char *passwd,
+ EBookCallback cb,
+ gpointer closure)
+{
+ CORBA_Environment ev;
+
+ g_return_if_fail (book != NULL);
+ g_return_if_fail (E_IS_BOOK (book));
+
+ if (book->priv->load_state != URILoaded) {
+ g_warning ("e_book_authenticate_user: No URI loaded!\n");
+ return;
+ }
+
+ CORBA_exception_init (&ev);
+
+ GNOME_Evolution_Addressbook_Book_authenticateUser (book->priv->corba_book,
+ user,
+ passwd,
+ &ev);
+
+ if (ev._major != CORBA_NO_EXCEPTION) {
+ g_warning ("e_book_authenticate_user: Exception authenticating user with the PAS!\n");
+ CORBA_exception_free (&ev);
+ return;
+ }
+
+ CORBA_exception_free (&ev);
+
+ e_book_queue_op (book, cb, closure, NULL);
+}
+
/* Fetching cards */
/**