Revert "device: Delete existing print in EnrollStart"

This reverts commit 5c06660215a1d1482a143bcf68029c2838608fa8.

Instead we will throw an error. The reason to not push this into an
earlier release was that this is an API incompatible change and clients
will need to be updated.
This commit is contained in:
Benjamin Berg 2021-07-01 12:53:05 +02:00
parent b760a82ac6
commit 59d2fbdabd
2 changed files with 12 additions and 28 deletions

View file

@ -54,11 +54,6 @@ static gboolean action_authorization_handler (GDBusInterfaceSkeleton *,
GDBusMethodInvocation *,
gpointer user_data);
static gboolean delete_enrolled_fingers (FprintDevice *rdev,
const char *user,
FpFinger finger,
GError **error);
static GQuark quark_auth_user = 0;
typedef enum {
@ -1984,21 +1979,22 @@ fprint_device_enroll_start (FprintDBusDevice *dbus_dev,
store.print_data_load (priv->dev, finger,
session->username, &existing_print);
if (existing_print)
{
g_set_error (&error, FPRINT_ERROR, FPRINT_ERROR_FINGER_ALREADY_ENROLLED,
"Finger %d has already been enrolled for user %s", finger, session->username);
g_dbus_method_invocation_return_gerror (invocation,
error);
return TRUE;
}
if (!can_start_action (rdev, &error))
{
g_dbus_method_invocation_return_gerror (invocation, error);
return TRUE;
}
if (existing_print)
{
if (!delete_enrolled_fingers (rdev, session->username, finger, &error))
{
g_dbus_method_invocation_return_gerror (invocation, error);
return TRUE;
}
}
g_debug ("start enrollment device %d finger %d", priv->id, finger);
priv->current_cancellable = g_cancellable_new ();

View file

@ -2315,21 +2315,9 @@ class FPrintdVirtualDeviceEnrollTests(FPrintdVirtualDeviceBaseTest):
def test_enroll_already_enrolled_finger(self):
self.enroll_image('whorl', start=False)
# We can enroll a new image deleting the first
self.device.EnrollStart('(s)', 'left-middle-finger')
self.enroll_image('arch', start=False)
self.stop_on_teardown = False
# If we verify, 'arch' will match, 'whorl' will not match
self.device.VerifyStart('(s)', 'any')
self.send_image('whorl')
self.assertVerifyNoMatch()
self.device.VerifyStop()
self.device.VerifyStart('(s)', 'any')
self.send_image('arch')
self.assertVerifyMatch()
self.device.VerifyStop()
with self.assertFprintError('FingerAlreadyEnrolled'):
self.device.EnrollStart('(s)', 'left-middle-finger')
def test_enroll_duplicate_image(self):
self.enroll_image('whorl', finger='left-thumb', start=False)