mirror of
https://gitlab.com/mishakmak/pam-fprint-grosshack.git
synced 2026-04-08 20:03:34 +02:00
dbusmock/fprintd: Make possible to retrieve the finger selected for verification
So that we can ensure that the client requested the one we expect
This commit is contained in:
@ -141,6 +141,7 @@ def AddDevice(self, device_name, num_enroll_stages, scan_type):
|
|||||||
device.fingers = {}
|
device.fingers = {}
|
||||||
device.claimed_user = None
|
device.claimed_user = None
|
||||||
device.action = None
|
device.action = None
|
||||||
|
device.selected_finger = None
|
||||||
device.verify_script = []
|
device.verify_script = []
|
||||||
|
|
||||||
return path
|
return path
|
||||||
@ -187,6 +188,7 @@ def Release(device):
|
|||||||
name='net.reactivated.Fprint.Error.ClaimDevice')
|
name='net.reactivated.Fprint.Error.ClaimDevice')
|
||||||
device.claimed_user = None
|
device.claimed_user = None
|
||||||
device.action = None
|
device.action = None
|
||||||
|
device.selected_finger = None
|
||||||
|
|
||||||
def can_verify_finger(device, finger_name):
|
def can_verify_finger(device, finger_name):
|
||||||
# We should already have checked that there are enrolled fingers
|
# We should already have checked that there are enrolled fingers
|
||||||
@ -231,6 +233,7 @@ def VerifyStart(device, finger_name):
|
|||||||
|
|
||||||
if finger_name == 'any':
|
if finger_name == 'any':
|
||||||
finger_name = device.fingers[device.claimed_user][0]
|
finger_name = device.fingers[device.claimed_user][0]
|
||||||
|
device.selected_finger = finger_name
|
||||||
device.EmitSignal(DEVICE_IFACE, 'VerifyFingerSelected', 's', [
|
device.EmitSignal(DEVICE_IFACE, 'VerifyFingerSelected', 's', [
|
||||||
finger_name
|
finger_name
|
||||||
])
|
])
|
||||||
@ -263,6 +266,7 @@ def VerifyStop(device):
|
|||||||
'No verification to stop',
|
'No verification to stop',
|
||||||
name='net.reactivated.Fprint.Error.NoActionInProgress')
|
name='net.reactivated.Fprint.Error.NoActionInProgress')
|
||||||
device.action = None
|
device.action = None
|
||||||
|
device.selected_finger = None
|
||||||
|
|
||||||
@dbus.service.method(DEVICE_IFACE,
|
@dbus.service.method(DEVICE_IFACE,
|
||||||
in_signature='s', out_signature='')
|
in_signature='s', out_signature='')
|
||||||
@ -331,6 +335,20 @@ def SetEnrolledFingers(device, user, fingers):
|
|||||||
|
|
||||||
device.fingers[user] = fingers
|
device.fingers[user] = fingers
|
||||||
|
|
||||||
|
@dbus.service.method(DEVICE_MOCK_IFACE,
|
||||||
|
in_signature='', out_signature='s')
|
||||||
|
def GetSelectedFinger(device):
|
||||||
|
'''Convenience method to get the finger under verification
|
||||||
|
|
||||||
|
Returns the finger name that the user has selected for verifying
|
||||||
|
'''
|
||||||
|
if not device.selected_finger:
|
||||||
|
raise dbus.exceptions.DBusException(
|
||||||
|
'Device is not verifying',
|
||||||
|
name='net.reactivated.Fprint.Error.NoActionInProgress')
|
||||||
|
|
||||||
|
return device.selected_finger
|
||||||
|
|
||||||
@dbus.service.method(DEVICE_MOCK_IFACE,
|
@dbus.service.method(DEVICE_MOCK_IFACE,
|
||||||
in_signature='a(sbi)', out_signature='')
|
in_signature='a(sbi)', out_signature='')
|
||||||
def SetVerifyScript(device, script):
|
def SetVerifyScript(device, script):
|
||||||
|
|||||||
Reference in New Issue
Block a user