1781
1781
* Log in to snapd and get authorization to install/remove snaps.
1782
1782
* This call requires root access; use snapd_login_sync() if you are non-root.
1783
* If successful, the authorization data is updated and can be requested using
1784
* snapd_client_get_auth_data().
1786
* Returns: %TRUE if the login was successful.
1784
* Returns: (transfer full): a #SnapdAuthData or %NULL on error.
1789
1787
snapd_client_login_sync (SnapdClient *client,
1790
1788
const gchar *username, const gchar *password, const gchar *otp,
1791
1789
GCancellable *cancellable, GError **error)
1793
1791
g_autoptr(SnapdRequest) request = NULL;
1795
g_return_val_if_fail (SNAPD_IS_CLIENT (client), FALSE);
1796
g_return_val_if_fail (username != NULL, FALSE);
1797
g_return_val_if_fail (password != NULL, FALSE);
1798
g_return_val_if_fail (is_connected (client), FALSE);
1793
g_return_val_if_fail (SNAPD_IS_CLIENT (client), NULL);
1794
g_return_val_if_fail (username != NULL, NULL);
1795
g_return_val_if_fail (password != NULL, NULL);
1796
g_return_val_if_fail (is_connected (client), NULL);
1800
1798
request = g_object_ref (make_login_request (client, username, password, otp, cancellable, NULL, NULL));
1801
1799
snapd_request_wait (request);
1835
1833
* Complete request started with snapd_client_login_async().
1836
1834
* See snapd_client_login_sync() for more information.
1838
* Returns: %TRUE if the login was successful.
1836
* Returns: (transfer full): a #SnapdAuthData or %NULL on error.
1841
1839
snapd_client_login_finish (SnapdClient *client, GAsyncResult *result, GError **error)
1843
SnapdClientPrivate *priv;
1844
1841
SnapdRequest *request;
1846
g_return_val_if_fail (SNAPD_IS_CLIENT (client), FALSE);
1847
g_return_val_if_fail (SNAPD_IS_REQUEST (result), FALSE);
1848
g_return_val_if_fail (is_connected (client), FALSE);
1850
priv = snapd_client_get_instance_private (client);
1843
g_return_val_if_fail (SNAPD_IS_CLIENT (client), NULL);
1844
g_return_val_if_fail (SNAPD_IS_REQUEST (result), NULL);
1845
g_return_val_if_fail (is_connected (client), NULL);
1852
1847
request = SNAPD_REQUEST (result);
1853
g_return_val_if_fail (request->request_type == SNAPD_REQUEST_LOGIN, FALSE);
1848
g_return_val_if_fail (request->request_type == SNAPD_REQUEST_LOGIN, NULL);
1855
1850
if (snapd_request_set_error (request, error))
1858
g_clear_object (&priv->auth_data);
1859
priv->auth_data = g_object_ref (request->received_auth_data);
1853
return g_steal_pointer (&request->received_auth_data);