mirror of
https://gitlab.com/mishakmak/pam-fprint-grosshack.git
synced 2026-04-09 04:13:33 +02:00
device: Return errors on deletion of prints from storage
This commit is contained in:
30
src/device.c
30
src/device.c
@ -2055,11 +2055,22 @@ fprint_device_delete_enrolled_fingers (FprintDBusDevice *dbus_dev,
|
|||||||
g_assert (user);
|
g_assert (user);
|
||||||
g_assert (g_str_equal (username, "") || g_str_equal (user, username));
|
g_assert (g_str_equal (username, "") || g_str_equal (user, username));
|
||||||
|
|
||||||
delete_enrolled_fingers (rdev, user, FP_FINGER_UNKNOWN, NULL);
|
g_clear_error (&error);
|
||||||
|
delete_enrolled_fingers (rdev, user, FP_FINGER_UNKNOWN, &error);
|
||||||
|
|
||||||
if (!opened && fp_device_has_storage (priv->dev))
|
if (!opened && fp_device_has_storage (priv->dev))
|
||||||
fp_device_close_sync (priv->dev, NULL, NULL);
|
fp_device_close_sync (priv->dev, NULL, NULL);
|
||||||
|
|
||||||
|
if (error &&
|
||||||
|
!g_error_matches (error, FPRINT_ERROR, FPRINT_ERROR_NO_ENROLLED_PRINTS))
|
||||||
|
{
|
||||||
|
/* FIXME: We should probably expose NoEnrolledPrints as an actual error,
|
||||||
|
* but not changing the API for now */
|
||||||
|
g_dbus_method_invocation_return_gerror (invocation,
|
||||||
|
error);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
fprint_dbus_device_complete_delete_enrolled_fingers (dbus_dev,
|
fprint_dbus_device_complete_delete_enrolled_fingers (dbus_dev,
|
||||||
invocation);
|
invocation);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -2093,7 +2104,17 @@ fprint_device_delete_enrolled_fingers2 (FprintDBusDevice *dbus_dev,
|
|||||||
|
|
||||||
session = session_data_get (priv);
|
session = session_data_get (priv);
|
||||||
|
|
||||||
delete_enrolled_fingers (rdev, session->username, FP_FINGER_UNKNOWN, NULL);
|
if (!delete_enrolled_fingers (rdev, session->username, FP_FINGER_UNKNOWN, &error))
|
||||||
|
{
|
||||||
|
if (!g_error_matches (error, FPRINT_ERROR, FPRINT_ERROR_NO_ENROLLED_PRINTS))
|
||||||
|
{
|
||||||
|
/* FIXME: We should probably expose NoEnrolledPrints as an actual error,
|
||||||
|
* but not changing the API for now */
|
||||||
|
g_dbus_method_invocation_return_gerror (invocation,
|
||||||
|
error);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fprint_dbus_device_complete_delete_enrolled_fingers2 (dbus_dev,
|
fprint_dbus_device_complete_delete_enrolled_fingers2 (dbus_dev,
|
||||||
invocation);
|
invocation);
|
||||||
@ -2109,6 +2130,7 @@ fprint_device_delete_enrolled_finger (FprintDBusDevice *dbus_dev,
|
|||||||
FprintDevicePrivate *priv = fprint_device_get_instance_private (rdev);
|
FprintDevicePrivate *priv = fprint_device_get_instance_private (rdev);
|
||||||
FpFinger finger = finger_name_to_fp_finger (finger_name);
|
FpFinger finger = finger_name_to_fp_finger (finger_name);
|
||||||
|
|
||||||
|
g_autoptr(FprintDeviceActionUnset) action_unset = NULL;
|
||||||
g_autoptr(SessionData) session = NULL;
|
g_autoptr(SessionData) session = NULL;
|
||||||
g_autoptr(GError) error = NULL;
|
g_autoptr(GError) error = NULL;
|
||||||
|
|
||||||
@ -2136,16 +2158,14 @@ fprint_device_delete_enrolled_finger (FprintDBusDevice *dbus_dev,
|
|||||||
priv->current_action = ACTION_DELETE;
|
priv->current_action = ACTION_DELETE;
|
||||||
|
|
||||||
session = session_data_get (priv);
|
session = session_data_get (priv);
|
||||||
|
action_unset = rdev;
|
||||||
|
|
||||||
if (!delete_enrolled_fingers (rdev, session->username, finger, &error))
|
if (!delete_enrolled_fingers (rdev, session->username, finger, &error))
|
||||||
{
|
{
|
||||||
priv->current_action = ACTION_NONE;
|
|
||||||
g_dbus_method_invocation_return_gerror (invocation, error);
|
g_dbus_method_invocation_return_gerror (invocation, error);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
priv->current_action = ACTION_NONE;
|
|
||||||
|
|
||||||
fprint_dbus_device_complete_delete_enrolled_finger (dbus_dev, invocation);
|
fprint_dbus_device_complete_delete_enrolled_finger (dbus_dev, invocation);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user