Added control for attrs_json object item's type (#3126)
item can be bytes or str in different situations. So let's keep defensive.master
parent
51d1fdcd3d
commit
9ccbeb7f66
|
@ -110,7 +110,13 @@ for record in records:
|
||||||
print('Could not determine last notification for %s, assuming never' % (record['rcpt']))
|
print('Could not determine last notification for %s, assuming never' % (record['rcpt']))
|
||||||
last_notification = 0
|
last_notification = 0
|
||||||
attrs_json = query_mysql('SELECT attributes FROM mailbox WHERE username = "%s"' % (record['rcpt']))
|
attrs_json = query_mysql('SELECT attributes FROM mailbox WHERE username = "%s"' % (record['rcpt']))
|
||||||
attrs = json.loads(str(attrs_json[0]['attributes']))
|
attrs = attrs_json[0]['attributes']
|
||||||
|
if isinstance(attrs, str):
|
||||||
|
# if attr is str then just load it
|
||||||
|
attrs = json.loads(attrs)
|
||||||
|
else:
|
||||||
|
# if it's bytes then decode and load it
|
||||||
|
attrs = json.loads(attrs.decode('utf-8'))
|
||||||
if attrs['quarantine_notification'] not in ('hourly', 'daily', 'weekly', 'never'):
|
if attrs['quarantine_notification'] not in ('hourly', 'daily', 'weekly', 'never'):
|
||||||
print('Abnormal quarantine_notification value')
|
print('Abnormal quarantine_notification value')
|
||||||
continue
|
continue
|
||||||
|
|
Loading…
Reference in New Issue