diff options
author | Chris Toshok <toshok@helixcode.com> | 2001-01-05 10:22:47 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2001-01-05 10:22:47 +0800 |
commit | 5dca3046d3ad660485cc68e3c9f4ef3f98a5922d (patch) | |
tree | 1aaa131bc0b4a9ea283c8a41235d559162522ee1 /addressbook/backend/ebook/e-book.c | |
parent | d760764af84a693d3fb580c8b402b2347a61bba8 (diff) | |
download | gsoc2013-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.c | 38 |
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 */ /** |