Fixes from review
This commit is contained in:
parent
d2944ba762
commit
f958c6296b
4 changed files with 15 additions and 14 deletions
|
|
@ -27,7 +27,7 @@ from validitysensor import init
|
||||||
from validitysensor.tls import tls
|
from validitysensor.tls import tls
|
||||||
from validitysensor.usb import usb
|
from validitysensor.usb import usb
|
||||||
from validitysensor.sid import sid_from_string
|
from validitysensor.sid import sid_from_string
|
||||||
from validitysensor.db import subtype_to_string, db
|
from validitysensor.db import subtype_to_string, db, SidIdentity, User
|
||||||
from validitysensor.sensor import sensor, RebootException
|
from validitysensor.sensor import sensor, RebootException
|
||||||
|
|
||||||
GLib.threads_init()
|
GLib.threads_init()
|
||||||
|
|
@ -49,19 +49,19 @@ class Device(dbus.service.Object):
|
||||||
dbus.service.Object.__init__(self, bus_name, '/io/github/uunicorn/Fprint/Device')
|
dbus.service.Object.__init__(self, bus_name, '/io/github/uunicorn/Fprint/Device')
|
||||||
self.config = config
|
self.config = config
|
||||||
|
|
||||||
def user2identity(self, user: str, uid: int):
|
def user2identity(self, user: str) -> SidIdentity:
|
||||||
"""Compute UID to SID mapping"""
|
"""Compute UID to SID mapping"""
|
||||||
|
pw = pwd.getpwnam(user)
|
||||||
|
uid = pw.pw_uid
|
||||||
if user in self.config['user_to_sid']:
|
if user in self.config['user_to_sid']:
|
||||||
sidstr = self.config['user_to_sid'][user]
|
sidstr = self.config['user_to_sid'][user]
|
||||||
else:
|
else:
|
||||||
sidstr = 'S-1-5-21-111111111-1111111111-1111111111-%d' % uid
|
sidstr = 'S-1-5-21-111111111-1111111111-1111111111-%d' % uid
|
||||||
return sid_from_string(sidstr)
|
return sid_from_string(sidstr)
|
||||||
|
|
||||||
def _get_user_sid(self, user: str):
|
def user2record(self, user: str) -> User:
|
||||||
"""Resolve user name to UID and SID"""
|
"""Resolve user name to database object"""
|
||||||
pw = pwd.getpwnam(user)
|
return db.lookup_user(self.user2identity(user))
|
||||||
uid = pw.pw_uid
|
|
||||||
return db.lookup_user(self.user2identity(user, uid))
|
|
||||||
|
|
||||||
@dbus.service.method(dbus_interface=INTERFACE_NAME,
|
@dbus.service.method(dbus_interface=INTERFACE_NAME,
|
||||||
in_signature="s",
|
in_signature="s",
|
||||||
|
|
@ -70,7 +70,7 @@ class Device(dbus.service.Object):
|
||||||
try:
|
try:
|
||||||
logging.debug('In ListEnrolledFingers %s' % user)
|
logging.debug('In ListEnrolledFingers %s' % user)
|
||||||
|
|
||||||
usr = self._get_user_sid(user)
|
usr = self.user2record(user)
|
||||||
|
|
||||||
if usr is None:
|
if usr is None:
|
||||||
return []
|
return []
|
||||||
|
|
@ -86,7 +86,7 @@ class Device(dbus.service.Object):
|
||||||
out_signature='')
|
out_signature='')
|
||||||
def DeleteEnrolledFingers(self, user):
|
def DeleteEnrolledFingers(self, user):
|
||||||
logging.debug('In DeleteEnrolledFingers %s' % user)
|
logging.debug('In DeleteEnrolledFingers %s' % user)
|
||||||
usr = self._get_user_sid(user)
|
usr = self.user2record(user)
|
||||||
|
|
||||||
if usr is None:
|
if usr is None:
|
||||||
return
|
return
|
||||||
|
|
@ -99,7 +99,7 @@ class Device(dbus.service.Object):
|
||||||
def VerifyStart(self, user, finger):
|
def VerifyStart(self, user, finger):
|
||||||
logging.debug('In VerifyStart for %s, %s' % (user, finger))
|
logging.debug('In VerifyStart for %s, %s' % (user, finger))
|
||||||
|
|
||||||
usr = self._get_user_sid(user)
|
usr = self.user2record(user)
|
||||||
|
|
||||||
if usr is None:
|
if usr is None:
|
||||||
raise NoEnrolledPrints()
|
raise NoEnrolledPrints()
|
||||||
|
|
@ -141,7 +141,7 @@ class Device(dbus.service.Object):
|
||||||
def EnrollStart(self, user, finger_name):
|
def EnrollStart(self, user, finger_name):
|
||||||
logging.debug('In EnrollStart %s for %s' % (finger_name, user))
|
logging.debug('In EnrollStart %s for %s' % (finger_name, user))
|
||||||
|
|
||||||
usr = self._get_user_sid(user)
|
usr = self.user2identity(user)
|
||||||
|
|
||||||
def update_cb(rsp, e):
|
def update_cb(rsp, e):
|
||||||
if e is not None:
|
if e is not None:
|
||||||
|
|
|
||||||
1
debian/rules
vendored
1
debian/rules
vendored
|
|
@ -12,4 +12,3 @@ override_dh_installsystemd:
|
||||||
|
|
||||||
override_dh_auto_install:
|
override_dh_auto_install:
|
||||||
python3 ./setup.py install --root=$(CURDIR)/debian/tmp --prefix=/usr --install-layout=deb
|
python3 ./setup.py install --root=$(CURDIR)/debian/tmp --prefix=/usr --install-layout=deb
|
||||||
install -Dm 644 etc/dbus-service.yaml $(CURDIR)/debian/tmp/etc/python-validity/dbus-service.yaml
|
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import logging
|
||||||
from usb import core as usb_core
|
from usb import core as usb_core
|
||||||
from .tls import tls
|
from .tls import tls
|
||||||
from .usb import usb, CancelledException
|
from .usb import usb, CancelledException
|
||||||
from .db import db
|
from .db import db, SidIdentity
|
||||||
from .flash import write_enable, call_cleanups, read_flash, erase_flash, write_flash_all, read_flash_all
|
from .flash import write_enable, call_cleanups, read_flash, erase_flash, write_flash_all, read_flash_all
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from struct import pack, unpack
|
from struct import pack, unpack
|
||||||
|
|
@ -740,7 +740,9 @@ class Sensor():
|
||||||
|
|
||||||
return tinfo
|
return tinfo
|
||||||
|
|
||||||
def enroll(self, identity, subtype, update_cb):
|
# TODO: Better typing information needed.
|
||||||
|
def enroll(self, identity: SidIdentity, subtype: int,
|
||||||
|
update_cb: typing.Callable[[typing.Any, typing.Optional[Exception]], None]):
|
||||||
def do_create_finger(final_template, tid):
|
def do_create_finger(final_template, tid):
|
||||||
tinfo = self.make_finger_data(subtype, final_template, tid)
|
tinfo = self.make_finger_data(subtype, final_template, tid)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue