/** * signon_auth_session_query_available_mechanisms: * @self: the #SignonAuthSession. * @wanted_mechanisms: a %NULL-terminated list of mechanisms supported by the client. * @cb: (scope async): a callback which will be called with the result. * @user_data: user data to be passed to the callback. * * Queries the mechanisms available for this authentication session. the result * will be the intersection between @wanted_mechanisms and the mechanisms * supported by the authentication plugin. */ void signon_auth_session_query_available_mechanisms (SignonAuthSession *self, const gchar **wanted_mechanisms, SignonAuthSessionQueryAvailableMechanismsCb cb, gpointer user_data) { g_return_if_fail (SIGNON_IS_AUTH_SESSION (self)); SignonAuthSessionPrivate* priv = self->priv; g_return_if_fail (priv != NULL); AuthSessionQueryAvailableMechanismsCbData *cb_data = g_slice_new0 (AuthSessionQueryAvailableMechanismsCbData); cb_data->self = self; cb_data->cb = cb; cb_data->user_data = user_data; AuthSessionQueryAvailableMechanismsData *operation_data = g_slice_new0 (AuthSessionQueryAvailableMechanismsData); operation_data->wanted_mechanisms = g_strdupv ((gchar **)wanted_mechanisms); operation_data->cb_data = cb_data; auth_session_check_remote_object(self); _signon_object_call_when_ready (self, auth_session_object_quark(), auth_session_query_available_mechanisms_ready_cb, operation_data); }
/** * signon_auth_session_process: * @self: the #SignonAuthSession. * @session_data: (transfer none) (element-type utf8 GValue): a dictionary of parameters. * @mechanism: the authentication mechanism to be used. * @cb: (scope async): a callback which will be called with the result. * @user_data: user data to be passed to the callback. * * Performs one step of the authentication process. If the #SignonAuthSession * object is bound to an existing identity, the identity properties such as * username and password will be also passed to the authentication plugin, so * there's no need to fill them into @session_data. * @session_data can be used to add additional authentication parameters to the * session, or to override the parameters otherwise taken from the identity. */ void signon_auth_session_process (SignonAuthSession *self, const GHashTable *session_data, const gchar* mechanism, SignonAuthSessionProcessCb cb, gpointer user_data) { g_return_if_fail (SIGNON_IS_AUTH_SESSION (self)); SignonAuthSessionPrivate *priv = self->priv; g_return_if_fail (priv != NULL); g_return_if_fail (session_data != NULL); AuthSessionProcessCbData *cb_data = g_slice_new0 (AuthSessionProcessCbData); cb_data->self = self; cb_data->cb = cb; cb_data->user_data = user_data; AuthSessionProcessData *operation_data = g_slice_new0 (AuthSessionProcessData); operation_data->session_data = signon_hash_table_to_variant (session_data); operation_data->mechanism = g_strdup (mechanism); operation_data->cb_data = cb_data; priv->busy = TRUE; auth_session_check_remote_object(self); _signon_object_call_when_ready (self, auth_session_object_quark(), auth_session_process_ready_cb, operation_data); }
static void identity_verify_data(SignonIdentity *self, const gchar *data_to_send, gint operation, SignonIdentityVerifyCb cb, gpointer user_data) { g_return_if_fail (SIGNON_IS_IDENTITY (self)); SignonIdentityPrivate *priv = self->priv; g_return_if_fail (priv != NULL); DEBUG ("%s %d", G_STRFUNC, __LINE__); IdentityVerifyCbData *cb_data = g_slice_new0 (IdentityVerifyCbData); cb_data->self = self; cb_data->cb = cb; cb_data->user_data = user_data; IdentityVerifyData *operation_data = g_slice_new0 (IdentityVerifyData); operation_data->params = NULL; operation_data->data_to_send = g_strdup (data_to_send); operation_data->operation = operation; operation_data->cb_data = cb_data; identity_check_remote_registration (self); _signon_object_call_when_ready (self, identity_object_quark(), identity_verify_ready_cb, operation_data); }
/** * signon_identity_store_credentials_with_info: * @self: the #SignonIdentity. * @info: the #SignonIdentityInfo data to store. * @cb: (scope async): callback. * @user_data: user_data. * * Stores the data from @info into the identity. */ void signon_identity_store_credentials_with_info(SignonIdentity *self, const SignonIdentityInfo *info, SignonIdentityStoreCredentialsCb cb, gpointer user_data) { IdentityStoreCredentialsCbData *cb_data; IdentityStoreCredentialsData *operation_data; DEBUG (); g_return_if_fail (SIGNON_IS_IDENTITY (self)); g_return_if_fail (info != NULL); cb_data = g_slice_new0 (IdentityStoreCredentialsCbData); cb_data->self = self; cb_data->cb = cb; cb_data->user_data = user_data; operation_data = g_slice_new0 (IdentityStoreCredentialsData); operation_data->info_variant = signon_identity_info_to_variant (info); operation_data->cb_data = cb_data; identity_check_remote_registration (self); _signon_object_call_when_ready (self, identity_object_quark(), identity_store_credentials_ready_cb, operation_data); }
void signon_auth_session_set_id(SignonAuthSession* self, gint id) { g_return_if_fail (SIGNON_IS_AUTH_SESSION (self)); SignonAuthSessionPrivate *priv = self->priv; g_return_if_fail (priv != NULL); g_return_if_fail (id >= 0); auth_session_check_remote_object(self); _signon_object_call_when_ready (self, auth_session_object_quark(), auth_session_set_id_ready_cb, GINT_TO_POINTER(id)); }
/** * signon_auth_session_cancel: * @self: the #SignonAuthSession. * * Cancel the authentication session. */ void signon_auth_session_cancel (SignonAuthSession *self) { g_return_if_fail (SIGNON_IS_AUTH_SESSION (self)); SignonAuthSessionPrivate *priv = self->priv; g_return_if_fail (priv != NULL); auth_session_check_remote_object(self); if (!priv->busy) return; priv->canceled = TRUE; _signon_object_call_when_ready (self, auth_session_object_quark(), auth_session_cancel_ready_cb, NULL); }
void static identity_void_operation(SignonIdentity *self, gint operation, gpointer cb_data) { g_return_if_fail (SIGNON_IS_IDENTITY (self)); SignonIdentityPrivate *priv = self->priv; g_return_if_fail (priv != NULL); DEBUG ("%s %d", G_STRFUNC, __LINE__); IdentityVoidData *operation_data = g_slice_new0 (IdentityVoidData); operation_data->cb_data = cb_data; _signon_object_call_when_ready (self, identity_object_quark(), identity_info_ready_cb, operation_data); }
/** * signon_identity_signout: * @self: the #SignonIdentity. * @cb: (scope async): callback. * @user_data: user_data. * * Asks signond to close all authentication sessions for this * identity, and to remove any stored secrets associated with it (password and * authentication tokens). */ void signon_identity_signout(SignonIdentity *self, SignonIdentitySignedOutCb cb, gpointer user_data) { g_return_if_fail (SIGNON_IS_IDENTITY (self)); SignonIdentityPrivate *priv = self->priv; g_return_if_fail (priv != NULL); IdentityVoidCbData *cb_data = g_slice_new0 (IdentityVoidCbData); cb_data->self = self; cb_data->cb = (SignonIdentityVoidCb)cb; cb_data->user_data = user_data; identity_check_remote_registration (self); _signon_object_call_when_ready (self, identity_object_quark(), identity_signout_ready_cb, cb_data); }