disable keyring (refs #706)

This commit is contained in:
Romain Bignon 2011-10-10 10:43:52 +02:00
commit cdf2e86b17

View file

@ -104,7 +104,8 @@ class ValueBackendPassword(Value):
return
try:
import keyring
# See #706
import keyring_DISABLED
keyring.set_password(self._domain, self.id, passwd)
except Exception:
self._value = passwd
@ -118,26 +119,30 @@ class ValueBackendPassword(Value):
return ''
def get(self):
if self._value == '' and self._domain is not None:
try:
import keyring
except ImportError:
return ''
else:
passwd = keyring.get_password(self._domain, self.id)
if passwd is None:
if not self.noprompt and 'login' in self._callbacks:
self._value = self._callbacks['login'](self._domain, self)
if self._value is None:
self._value = ''
else:
self._stored = False
return self._value
else:
return passwd
else:
if self._value != '' or self._domain is None:
return self._value
try:
# See #706
import keyring_DISABLED
except ImportError:
passwd = None
else:
passwd = keyring.get_password(self._domain, self.id)
if passwd is not None:
# Password has been read in the keyring.
return passwd
# Prompt user to enter password by hand.
if not self.noprompt and 'login' in self._callbacks:
self._value = self._callbacks['login'](self._domain, self)
if self._value is None:
self._value = ''
else:
self._stored = False
return self._value
class ValueInt(Value):
def __init__(self, *args, **kwargs):
kwargs['regexp'] = '^\d+$'