Beispiel #1
0
 def refresh_codes(self, timestamp=None, conn=None):
     if not self._reader and self.watcher.reader:
         return self._on_reader(self.watcher, self.watcher.reader)
     elif is_minimized(self._app.window):
         self._needs_read = True
         return
     self._app.worker.post_bg((self._refresh_codes_worker, timestamp, conn))
    def timerEvent(self, event):
        if not is_minimized(self._app.window):
            timestamp = self.timer.time
            if self._reader and self._needs_read:
                self.refresh_codes()
            elif self._reader is None:
                if self.otp_enabled:

                    def refresh_otp():
                        lock = self.grab_lock(try_lock=True)
                        if lock:
                            read = self.read_creds(None, self.slot1,
                                                   self.slot2, timestamp,
                                                   False)
                            self._set_creds(read)

                    self._app.worker.post_bg(refresh_otp)
                else:
                    if ccid_supported_but_disabled():
                        if not self._current_device_has_ccid_disabled:
                            self.ccid_disabled.emit()
                        self._current_device_has_ccid_disabled = True
                        event.accept()
                        return
            self._current_device_has_ccid_disabled = False
        event.accept()
Beispiel #3
0
 def _on_reader(self, watcher, reader):
     if reader:
         if self._reader is None:
             self._reader = reader
             self._creds = []
             if is_minimized(self._app.window):
                 self._needs_read = True
             else:
                 device = watcher.open()
                 if device:
                     try:
                         conn = self.Connector(device)
                     except CardError:
                         self._reader = None
                         self._creds = None
                         self.changed.emit()
                         return
                     self._app.worker.post_fg((self._init_conn, conn))
                 else:
                     self._needs_read = True
         elif self._needs_read:
             self.refresh_codes(self.timer.time)
     else:
         self._reader = None
         self._creds = None
         self.changed.emit()
 def refresh_codes(self, timestamp=None, lock=None, std=None):
     if not self._reader and self.watcher.reader:
         return self._on_reader(self.watcher, self.watcher.reader, lock)
     elif is_minimized(self._app.window):
         self._needs_read = True
         return
     lock = self.grab_lock(lock, True)
     if not lock:
         return
     self._app.worker.post_bg(
         (self._refresh_codes_locked, timestamp, lock, std))
 def refresh_codes(self, timestamp=None, lock=None, std=None):
     if not self._reader and self.watcher.reader:
         return self._on_reader(self.watcher, self.watcher.reader, lock)
     elif is_minimized(self._app.window):
         self._needs_read = True
         return
     lock = self.grab_lock(lock, True)
     if not lock:
         return
     self._app.worker.post_bg((self._refresh_codes_locked, timestamp, lock,
                               std))
Beispiel #6
0
 def timerEvent(self, event):
     if not is_minimized(self._app.window):
         if self._reader and self._needs_read:
             self.refresh_codes()
         elif self._reader is None and self.backend == 'ccid':
             if ccid_supported_but_disabled():
                 if not self._current_device_has_ccid_disabled:
                     self.ccid_disabled.emit()
                 self._current_device_has_ccid_disabled = True
                 event.accept()
                 return
         self._current_device_has_ccid_disabled = False
     event.accept()
 def refresh_codes(self, timestamp=None, lock=None):
     if not self._reader and self.watcher.reader:
         return self._on_reader(self.watcher, self.watcher.reader, lock)
     elif is_minimized(self._app.window):
         self._needs_read = True
         return
     lock = self.grab_lock(lock, True)
     if not lock:
         return
     device = self.watcher.open()
     self._needs_read = bool(self._reader and device is None)
     timestamp = timestamp or self.timer.time
     try:
         creds = self.read_creds(device, self.slot1, self.slot2, timestamp)
     except DeviceLockedError:
         creds = []
     self._set_creds(creds)
 def refresh_codes(self, timestamp=None, lock=None):
     if not self._reader and self.watcher.reader:
         return self._on_reader(self.watcher, self.watcher.reader, lock)
     elif is_minimized(self._app.window):
         self._needs_read = True
         return
     lock = self.grab_lock(lock, True)
     if not lock:
         return
     device = self.watcher.open()
     self._needs_read = bool(self._reader and device is None)
     timestamp = timestamp or self.timer.time
     try:
         creds = self.read_creds(device, self.slot1, self.slot2, timestamp,
                                 False)
     except DeviceLockedError:
         creds = []
     self._set_creds(creds)
 def _on_reader(self, watcher, reader, lock=None):
     if reader:
         if self._reader is None:
             self._reader = reader
             self._creds = []
             if is_minimized(self._app.window):
                 self._needs_read = True
             else:
                 ccid_dev = watcher.open()
                 if ccid_dev:
                     std = YubiOathCcid(ccid_dev)
                     self._app.worker.post_fg((self._init_std, std))
                 else:
                     self._needs_read = True
         elif self._needs_read:
             self.refresh_codes(self.timer.time)
     else:
         self._reader = None
         self._creds = None
         self.refreshed.emit()
 def _on_reader(self, watcher, reader, lock=None):
     if reader:
         if self._reader is None:
             self._reader = reader
             self._creds = []
             if is_minimized(self._app.window):
                 self._needs_read = True
             else:
                 ccid_dev = watcher.open()
                 if ccid_dev:
                     dev = YubiOathCcid(ccid_dev)
                     self._app.worker.post_fg((self._init_dev, dev))
                 else:
                     self._needs_read = True
         elif self._needs_read:
             self.refresh_codes(self.timer.time)
     else:
         self._reader = None
         self._creds = None
         self.refreshed.emit()
 def timerEvent(self, event):
     if not is_minimized(self._app.window):
         timestamp = self.timer.time
         if self._reader and self._needs_read:
             self._app.worker.post_bg(self.refresh_codes)
         elif self._reader is None:
             if self.otp_enabled:
                 def refresh_otp():
                     _lock = self.grab_lock(try_lock=True)
                     if _lock:
                         read = self.read_creds(None, self.slot1, self.slot2,
                                                timestamp, False)
                         self._set_creds(read)
                 self._app.worker.post_bg(refresh_otp)
             else:
                 if ccid_supported_but_disabled():
                     if not self._current_device_has_ccid_disabled:
                         self.ccid_disabled.emit()
                     self._current_device_has_ccid_disabled = True
                     event.accept()
                     return
         self._current_device_has_ccid_disabled = False
     event.accept()