diff --git a/frappe/patches.txt b/frappe/patches.txt index c340ee4b7f..e666601e8a 100644 --- a/frappe/patches.txt +++ b/frappe/patches.txt @@ -127,4 +127,6 @@ frappe.patches.v7_0.desktop_icons_hidden_by_admin_as_blocked frappe.patches.v7_0.add_communication_in_doc frappe.patches.v7_0.update_send_after_in_bulk_email frappe.patches.v7_0.setup_list_settings +execute:frappe.db.sql('''delete from `tabSingles` where doctype="Email Settings"''') # 2016-06-13 frappe.patches.v7_0.update_auth + diff --git a/frappe/patches/v7_0/update_auth.py b/frappe/patches/v7_0/update_auth.py index 05c17b284b..d97babfd89 100644 --- a/frappe/patches/v7_0/update_auth.py +++ b/frappe/patches/v7_0/update_auth.py @@ -22,13 +22,21 @@ def execute(): meta = frappe.get_meta(doctype) for df in meta.get('fields', {'fieldtype': 'Password'}): - for d in frappe.db.sql('''select name, `{fieldname}` from `tab{doctype}` - where `{fieldname}` is not null'''.format(fieldname=df.fieldname, doctype=doctype), as_dict=True): + if meta.issingle: + password = frappe.db.get_value(doctype, doctype, df.fieldname) + if password: + set_encrypted_password(doctype, doctype, password, fieldname=df.fieldname) + frappe.db.set_value(doctype, doctype, df.fieldname, '*'*len(password)) - set_encrypted_password(doctype, d.name, d.get(df.fieldname), fieldname=df.fieldname) + else: + for d in frappe.db.sql('''select name, `{fieldname}` from `tab{doctype}` + where `{fieldname}` is not null'''.format(fieldname=df.fieldname, doctype=doctype), as_dict=True): + + set_encrypted_password(doctype, d.name, d.get(df.fieldname), fieldname=df.fieldname) + + frappe.db.sql('''update `tab{doctype}` set `{fieldname}`=repeat("*", char_length(`{fieldname}`))''' + .format(doctype=doctype, fieldname=df.fieldname)) - frappe.db.sql('''update `tab{doctype}` set `{fieldname}`=repeat("*", char_length(`{fieldname}`))''' - .format(doctype=doctype, fieldname=df.fieldname)) frappe.db.commit() frappe.db.sql_ddl('''drop table `__OldAuth`''')