mirror of
https://gitlab.com/mishakmak/pam-fprint-grosshack.git
synced 2026-04-08 20:03:34 +02:00
verify: Fail if we try to verify a non-enrolled finger
Since we list the fingers available fail early in case it's not found
This commit is contained in:
@ -22,6 +22,20 @@ import fcntl
|
|||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
VALID_FINGER_NAMES = [
|
||||||
|
'left-thumb',
|
||||||
|
'left-index-finger',
|
||||||
|
'left-middle-finger',
|
||||||
|
'left-ring-finger',
|
||||||
|
'left-little-finger',
|
||||||
|
'right-thumb',
|
||||||
|
'right-index-finger',
|
||||||
|
'right-middle-finger',
|
||||||
|
'right-ring-finger',
|
||||||
|
'right-little-finger'
|
||||||
|
]
|
||||||
|
|
||||||
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
|
||||||
|
|
||||||
class TestFprintdUtilsBase(dbusmock.DBusTestCase):
|
class TestFprintdUtilsBase(dbusmock.DBusTestCase):
|
||||||
@ -181,6 +195,10 @@ class TestFprintdUtilsVerify(TestFprintdUtilsBase):
|
|||||||
self.assertNotRegex(out, r'Device already in use by [A-z]+')
|
self.assertNotRegex(out, r'Device already in use by [A-z]+')
|
||||||
self.assertNotIn('Verify result:', out)
|
self.assertNotIn('Verify result:', out)
|
||||||
|
|
||||||
|
if checkEnrolled and finger:
|
||||||
|
self.assertNotIn('''Finger '{}' not enrolled for user {}'''.format(
|
||||||
|
finger, user), out)
|
||||||
|
|
||||||
if checkEnrolled:
|
if checkEnrolled:
|
||||||
for f in self.enrolled_fingers:
|
for f in self.enrolled_fingers:
|
||||||
self.assertIn(f, out)
|
self.assertIn(f, out)
|
||||||
@ -205,6 +223,13 @@ class TestFprintdUtilsVerify(TestFprintdUtilsBase):
|
|||||||
time.sleep(self.sleep_time)
|
time.sleep(self.sleep_time)
|
||||||
self.assertVerifyMatch(True)
|
self.assertVerifyMatch(True)
|
||||||
|
|
||||||
|
def test_fprintd_verify_not_enrolled_fingers(self):
|
||||||
|
for finger in [f for f in VALID_FINGER_NAMES if f not in self.enrolled_fingers]:
|
||||||
|
regex = r'Finger \'{}\' not enrolled'.format(finger)
|
||||||
|
with self.assertRaisesRegex(AssertionError, regex):
|
||||||
|
self.start_verify_process(finger=finger)
|
||||||
|
self.device_mock.Release()
|
||||||
|
|
||||||
def test_fprintd_verify_script(self):
|
def test_fprintd_verify_script(self):
|
||||||
script = [
|
script = [
|
||||||
( 'verify-match', True, 2 )
|
( 'verify-match', True, 2 )
|
||||||
|
|||||||
@ -100,6 +100,14 @@ static void find_finger(DBusGProxy *dev, const char *username)
|
|||||||
g_print(" - #%d: %s\n", i, fingers[i]);
|
g_print(" - #%d: %s\n", i, fingers[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (finger_name && !g_str_equal (finger_name, "any") &&
|
||||||
|
!g_strv_contains ((const char **) fingers, finger_name)) {
|
||||||
|
g_print("Finger '%s' not enrolled for user %s.\n", finger_name,
|
||||||
|
username);
|
||||||
|
g_free (finger_name);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
if (finger_name == NULL || strcmp (finger_name, "any") == 0) {
|
if (finger_name == NULL || strcmp (finger_name, "any") == 0) {
|
||||||
g_free (finger_name);
|
g_free (finger_name);
|
||||||
finger_name = g_strdup (fingers[0]);
|
finger_name = g_strdup (fingers[0]);
|
||||||
|
|||||||
Reference in New Issue
Block a user