E2kGlobalCatalog

E2kGlobalCatalog

Synopsis

struct              E2kGlobalCatalog;
E2kGlobalCatalog *  e2k_global_catalog_new              (const gchar *server,
                                                         gint response_limit,
                                                         const gchar *user,
                                                         const gchar *domain,
                                                         const gchar *password,
                                                         E2kAutoconfigGalAuthPref use_auth);
LDAP *              e2k_global_catalog_get_ldap         (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         gint *ldap_error);

enum                E2kGlobalCatalogStatus;
enum                E2kGlobalCatalogLookupType;
enum                E2kGlobalCatalogLookupFlags;
                    E2kGlobalCatalogEntry;
E2kGlobalCatalogStatus e2k_global_catalog_lookup        (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         E2kGlobalCatalogLookupType type,
                                                         const gchar *key,
                                                         E2kGlobalCatalogLookupFlags flags,
                                                         E2kGlobalCatalogEntry **entry_p);
#define             e2k_global_catalog_entry_free       (gc,
                                                         entry)
void                (*E2kGlobalCatalogCallback)         (E2kGlobalCatalog *gc,
                                                         E2kGlobalCatalogStatus status,
                                                         E2kGlobalCatalogEntry *entry,
                                                         gpointer user_data);
void                e2k_global_catalog_async_lookup     (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         E2kGlobalCatalogLookupType type,
                                                         const gchar *key,
                                                         E2kGlobalCatalogLookupFlags flags,
                                                         E2kGlobalCatalogCallback callback,
                                                         gpointer user_data);

E2kGlobalCatalogStatus e2k_global_catalog_add_delegate  (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         const gchar *self_dn,
                                                         const gchar *delegate_dn);
E2kGlobalCatalogStatus e2k_global_catalog_remove_delegate
                                                        (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         const gchar *self_dn,
                                                         const gchar *delegate_dn);

Description

Details

struct E2kGlobalCatalog

struct E2kGlobalCatalog {
	GObject parent;

	gchar *domain;
	gint response_limit;

	E2kGlobalCatalogPrivate *priv;
};


e2k_global_catalog_new ()

E2kGlobalCatalog *  e2k_global_catalog_new              (const gchar *server,
                                                         gint response_limit,
                                                         const gchar *user,
                                                         const gchar *domain,
                                                         const gchar *password,
                                                         E2kAutoconfigGalAuthPref use_auth);

Create an object for communicating with the Windows Global Catalog via LDAP.

server :

the GC server name

response_limit :

the maximum number of responses to return from a search

user :

username to authenticate with

domain :

NT domain of user, or NULL to autodetect.

password :

password to authenticate with

Returns :

the new E2kGlobalCatalog. (This call will always succeed. If the passed-in data is bad, it will fail on a later call.)

e2k_global_catalog_get_ldap ()

LDAP *              e2k_global_catalog_get_ldap         (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         gint *ldap_error);

Returns a new LDAP handle. The caller must ldap_unbind() it when it is done.

gc :

the global catalog

op :

pointer to an initialized E2kOperation to use for cancellation

ldap_error :

set the value returned from get_ldap_connection if not NULL

Returns :

an LDAP handle, or NULL if it can't connect

enum E2kGlobalCatalogStatus

typedef enum {
	E2K_GLOBAL_CATALOG_OK,
	E2K_GLOBAL_CATALOG_NO_SUCH_USER,
	E2K_GLOBAL_CATALOG_NO_DATA,
	E2K_GLOBAL_CATALOG_BAD_DATA,
	E2K_GLOBAL_CATALOG_EXISTS,
	E2K_GLOBAL_CATALOG_AUTH_FAILED,
	E2K_GLOBAL_CATALOG_CANCELLED,
	E2K_GLOBAL_CATALOG_ERROR
} E2kGlobalCatalogStatus;


enum E2kGlobalCatalogLookupType

typedef enum {
	E2K_GLOBAL_CATALOG_LOOKUP_BY_EMAIL,
	E2K_GLOBAL_CATALOG_LOOKUP_BY_DN,
	E2K_GLOBAL_CATALOG_LOOKUP_BY_LEGACY_EXCHANGE_DN
} E2kGlobalCatalogLookupType;


enum E2kGlobalCatalogLookupFlags

typedef enum {
	E2K_GLOBAL_CATALOG_LOOKUP_SID                = (1 << 0),
	E2K_GLOBAL_CATALOG_LOOKUP_EMAIL              = (1 << 1),
	E2K_GLOBAL_CATALOG_LOOKUP_MAILBOX            = (1 << 2),
	E2K_GLOBAL_CATALOG_LOOKUP_LEGACY_EXCHANGE_DN = (1 << 3),
	E2K_GLOBAL_CATALOG_LOOKUP_DELEGATES          = (1 << 4),
	E2K_GLOBAL_CATALOG_LOOKUP_DELEGATORS         = (1 << 5),
	E2K_GLOBAL_CATALOG_LOOKUP_QUOTA		     = (1 << 6),
	E2K_GLOBAL_CATALOG_LOOKUP_ACCOUNT_CONTROL    = (1 << 7)
} E2kGlobalCatalogLookupFlags;


E2kGlobalCatalogEntry

typedef struct {
	gchar *dn, *display_name;
	E2kSid *sid;
	gchar *email, *exchange_server, *mailbox, *legacy_exchange_dn;
	GPtrArray *delegates, *delegators;
	gint quota_warn, quota_nosend, quota_norecv;
	gint user_account_control;

	E2kGlobalCatalogLookupFlags mask;
} E2kGlobalCatalogEntry;


e2k_global_catalog_lookup ()

E2kGlobalCatalogStatus e2k_global_catalog_lookup        (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         E2kGlobalCatalogLookupType type,
                                                         const gchar *key,
                                                         E2kGlobalCatalogLookupFlags flags,
                                                         E2kGlobalCatalogEntry **entry_p);

Look up the indicated user in the global catalog and return their information in *entry_p.

gc :

the global catalog

op :

pointer to an E2kOperation to use for cancellation

type :

the type of information in key

key :

email address or DN to look up

flags :

the information to look up

entry_p :

pointer to a variable to return the entry in.

Returns :

the status of the lookup

e2k_global_catalog_entry_free()

#define e2k_global_catalog_entry_free(gc, entry)


E2kGlobalCatalogCallback ()

void                (*E2kGlobalCatalogCallback)         (E2kGlobalCatalog *gc,
                                                         E2kGlobalCatalogStatus status,
                                                         E2kGlobalCatalogEntry *entry,
                                                         gpointer user_data);


e2k_global_catalog_async_lookup ()

void                e2k_global_catalog_async_lookup     (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         E2kGlobalCatalogLookupType type,
                                                         const gchar *key,
                                                         E2kGlobalCatalogLookupFlags flags,
                                                         E2kGlobalCatalogCallback callback,
                                                         gpointer user_data);

Asynchronously look up the indicated user in the global catalog and return the requested information to the callback.

gc :

the global catalog

op :

pointer to an E2kOperation to use for cancellation

type :

the type of information in key

key :

email address or DN to look up

flags :

the information to look up

callback :

the callback to invoke after finding the user

user_data :

data to pass to callback

e2k_global_catalog_add_delegate ()

E2kGlobalCatalogStatus e2k_global_catalog_add_delegate  (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         const gchar *self_dn,
                                                         const gchar *delegate_dn);

Attempts to make delegate_dn a delegate of self_dn.

gc :

the global catalog

op :

pointer to an E2kOperation to use for cancellation

self_dn :

Active Directory DN of the user to add a delegate to

delegate_dn :

Active Directory DN of the new delegate

Returns :

E2K_GLOBAL_CATALOG_OK on success, E2K_GLOBAL_CATALOG_NO_SUCH_USER if self_dn is invalid, E2K_GLOBAL_CATALOG_BAD_DATA if delegate_dn is invalid, E2K_GLOBAL_CATALOG_EXISTS if delegate_dn is already a delegate, E2K_GLOBAL_CATALOG_ERROR on other errors.

e2k_global_catalog_remove_delegate ()

E2kGlobalCatalogStatus e2k_global_catalog_remove_delegate
                                                        (E2kGlobalCatalog *gc,
                                                         E2kOperation *op,
                                                         const gchar *self_dn,
                                                         const gchar *delegate_dn);

Attempts to remove delegate_dn as a delegate of self_dn.

gc :

the global catalog

op :

pointer to an E2kOperation to use for cancellation

self_dn :

Active Directory DN of the user to remove a delegate from

delegate_dn :

Active Directory DN of the delegate to remove

Returns :

E2K_GLOBAL_CATALOG_OK on success, E2K_GLOBAL_CATALOG_NO_SUCH_USER if self_dn is invalid, E2K_GLOBAL_CATALOG_NO_DATA if delegate_dn is not a delegate of self_dn, E2K_GLOBAL_CATALOG_ERROR on other errors.