From bf93df0989686f9db54c8641716b94a8471c2c8a Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 13 Jun 2016 17:41:02 +0530 Subject: [PATCH] [patch] update auth based on new password system --- frappe/patches.txt | 2 ++ frappe/patches/v7_0/update_auth.py | 18 +++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) 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`''')