1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-09-20 09:16:16 +02:00

fix credentials with passx entries

Existing passx enries resulted in a stacktrace because
the cp.get() call for the passx entries was missing.

Also added a delete_password function for ObfuscatedPasswordManager
to delete passx entries
This commit is contained in:
lethliel 2019-10-29 11:04:22 +01:00
parent 64a5969ca8
commit c5231d61dd

View File

@ -65,6 +65,8 @@ class AbstractCredentialsManager(object):
class PlaintextConfigFileCredentialsManager(AbstractCredentialsManager):
def get_password(self, url, user, defer=True):
if self._cp.has_option(url, 'passx', proper=True):
return self._cp.get(url, 'passx', raw=True)
return self._cp.get(url, 'pass', raw=True)
def set_password(self, url, user, password):
@ -101,6 +103,10 @@ class ObfuscatedConfigFileCredentialsManager(
password = base64.b64encode(compressed_pw).decode("ascii")
super(self.__class__, self).set_password(url, user, password)
def delete_password(self, url, user):
self._cp.remove_option(url, 'passx')
super(self.__class__, self).delete_password(url, user)
@classmethod
def decode_password(cls, password):
compressed_pw = base64.b64decode(password.encode("ascii"))