memory (params): fixes bugs in setParam:
- symbol 'd' was accessed without having been initialized when setting the empty value to a password which is not the profile password
- the method was actually returning without waiting for the parameter to be set
This commit is contained in:
parent
cf7c18e56b
commit
ea05b4e0d6
1 changed files with 4 additions and 4 deletions
|
|
@ -756,7 +756,8 @@ class Params(object):
|
||||||
if type_ == "button":
|
if type_ == "button":
|
||||||
log.debug("Clicked param button %s" % node.toxml())
|
log.debug("Clicked param button %s" % node.toxml())
|
||||||
return defer.succeed(None)
|
return defer.succeed(None)
|
||||||
elif type_ == "password":
|
d = defer.succeed(value)
|
||||||
|
if type_ == "password":
|
||||||
try:
|
try:
|
||||||
personal_key = self.host.memory.auth_sessions.profileGetUnique(profile)[C.MEMORY_CRYPTO_KEY]
|
personal_key = self.host.memory.auth_sessions.profileGetUnique(profile)[C.MEMORY_CRYPTO_KEY]
|
||||||
except TypeError:
|
except TypeError:
|
||||||
|
|
@ -770,17 +771,16 @@ class Params(object):
|
||||||
d = PasswordHasher.hash(value) # profile password is hashed (empty value stays empty)
|
d = PasswordHasher.hash(value) # profile password is hashed (empty value stays empty)
|
||||||
elif value: # other non empty passwords are encrypted with the personal key
|
elif value: # other non empty passwords are encrypted with the personal key
|
||||||
d = BlockCipher.encrypt(personal_key, value)
|
d = BlockCipher.encrypt(personal_key, value)
|
||||||
else:
|
|
||||||
d = defer.succeed(value)
|
|
||||||
|
|
||||||
def gotFinalValue(value):
|
def gotFinalValue(value):
|
||||||
if self.host.isConnected(profile): # key can not exists if profile is not connected
|
if self.host.isConnected(profile): # key can not exists if profile is not connected
|
||||||
self.params[profile][(category, name)] = value
|
self.params[profile][(category, name)] = value
|
||||||
self.host.bridge.paramUpdate(name, value, category, profile)
|
self.host.bridge.paramUpdate(name, value, category, profile)
|
||||||
self.host.trigger.point("paramUpdateTrigger", name, value, category, node[0], profile)
|
self.host.trigger.point("paramUpdateTrigger", name, value, category, node[0], profile)
|
||||||
d_list.append(self.storage.setIndParam(category, name, value, profile))
|
return self.storage.setIndParam(category, name, value, profile)
|
||||||
|
|
||||||
d.addCallback(gotFinalValue)
|
d.addCallback(gotFinalValue)
|
||||||
|
d_list.append(d)
|
||||||
return defer.DeferredList(d_list).addCallback(lambda dummy: None)
|
return defer.DeferredList(d_list).addCallback(lambda dummy: None)
|
||||||
|
|
||||||
def _getNodesOfTypes(self, attr_type, node_type="@ALL@"):
|
def _getNodesOfTypes(self, attr_type, node_type="@ALL@"):
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue