def update_password(new_password, key=None, old_password=None): result = test_password_strength(new_password, key, old_password) feedback = result.get("feedback", None) if feedback and not feedback.get('password_policy_validation_passed', False): handle_password_test_fail(result) res = _get_user_for_update_password(key, old_password) if res.get('message'): return res['message'] else: user = res['user'] _update_password(user, new_password) user_doc, redirect_url = reset_user_data(user) # get redirect url from cache redirect_to = frappe.cache().hget('redirect_after_login', user) if redirect_to: redirect_url = redirect_to frappe.cache().hdel('redirect_after_login', user) frappe.local.login_manager.login_as(user) if user_doc.user_type == "System User": return "/desk" else: return redirect_url if redirect_url else "/"
def email_new_password(self, new_password=None): if new_password and not self.flags.in_insert: _update_password(user=self.name, pwd=new_password, logout_all_sessions=self.logout_all_sessions) if self.send_password_update_notification: self.password_update_mail(new_password) frappe.msgprint(_("New password emailed"))
def update_password(new_password, logout_all_sessions=0, key=None, old_password=None): result = test_password_strength(new_password, key, old_password) feedback = result.get("feedback", None) if feedback and not feedback.get('password_policy_validation_passed', False): handle_password_test_fail(result) res = _get_user_for_update_password(key, old_password) if res.get('message'): frappe.local.response.http_status_code = 410 return res['message'] else: user = res['user'] logout_all_sessions = cint(logout_all_sessions) or frappe.db.get_single_value("System Settings", "logout_on_password_reset") _update_password(user, new_password, logout_all_sessions=cint(logout_all_sessions)) user_doc, redirect_url = reset_user_data(user) # get redirect url from cache redirect_to = frappe.cache().hget('redirect_after_login', user) if redirect_to: redirect_url = redirect_to frappe.cache().hdel('redirect_after_login', user) frappe.local.login_manager.login_as(user) frappe.db.set_value("User", user, "last_password_reset_date", today()) frappe.db.set_value("User", user, "reset_password_key", "") if user_doc.user_type == "System User": return "/desk" else: return redirect_url if redirect_url else "/"
def update_password(reset_token, new_password): """ Updates the user password :param reset_token: The token obtained while verifying otp :param new_password: The new password to be set for the user """ from frappe.core.doctype.user.user import test_password_strength user = frappe.db.get_value("User", {"reset_password_key": reset_token}) if not user: return frappe._dict(updated=0, reason="invalid-or-expired-key") user = frappe.get_doc("User", user) user_data = (user.first_name, user.middle_name, user.last_name, user.email, user.birth_date) result = test_password_strength(new_password, '', None, user_data) feedback = result.get("feedback", None) if feedback and not feedback.get('password_policy_validation_passed', False): return frappe._dict( updated=0, reason="weak-password" ) from frappe.utils.password import update_password as _update_password _update_password(user.name, new_password) frappe.db.set_value("User", user.name, "reset_password_key", "") return frappe._dict( updated=1 )
def add_usres_email(): import sys from frappe.utils.csvutils import read_csv_content from frappe.core.doctype.data_import.importer import upload # print "Importing " + path with open('/home/frappe/frappe-bench/apps/client/client/emp.csv', "r") as infile: rows = read_csv_content(infile.read()) cc = 0 for index, row in enumerate(rows): cc += 1 string = str(row[1]) tt = string.split() if row[11]: print tt[0] + '.' + tt[-1] frappe.get_doc({ "doctype": "User", "user_type": 'System User', "email": row[11], "first_name": tt[0], "last_name": tt[-1], "language": "ar", "civil_id_no": row[9], "username": tt[0] + '.' + tt[-1], "new_password": 123, "send_welcome_email": 0 }).insert(ignore_permissions=True) _update_password(row[11], row[5]) print cc
def email_new_password(self, new_password=None): if new_password and not self.flags.in_insert: _update_password(self.name, new_password) if self.send_password_update_notification: self.password_update_mail(new_password) frappe.msgprint(_("New password emailed"))
def email_new_password(self, new_password=None): if new_password and not self.in_insert: _update_password(self.name, new_password) if self.send_password_update_notification: self.password_update_mail(new_password) frappe.msgprint(_("New password emailed"))
def update_password(new_password, logout_all_sessions=0, key=None, old_password=None): result = test_password_strength(new_password, key, old_password) feedback = result.get("feedback", None) if feedback and not feedback.get('password_policy_validation_passed', False): handle_password_test_fail(result) res = _get_user_for_update_password(key, old_password) if res.get('message'): return res['message'] else: user = res['user'] _update_password(user, new_password, logout_all_sessions=int(logout_all_sessions)) user_doc, redirect_url = reset_user_data(user) # get redirect url from cache redirect_to = frappe.cache().hget('redirect_after_login', user) if redirect_to: redirect_url = redirect_to frappe.cache().hdel('redirect_after_login', user) frappe.local.login_manager.login_as(user) if user_doc.user_type == "System User": return "/desk" else: return redirect_url if redirect_url else "/"
def userSignup(phoneNo, firstName, lastName, designation=None): response = {} try: otpobj = frappe.db.get("UserOTP", {"mobile": phoneNo}) user = frappe.db.get("User", {"name": phoneNo}) print otpobj.otp print user if user: frappe.db.sql("""UPDATE `tabUser` SET `last_name`='""" + lastName + """', `first_name`='""" + firstName + """' WHERE `name`='""" + phoneNo + """'""") else: #return frappe.db.sql("""insert into tabUser (`name`,`first_name`,`last_name`) VALUES ('9852417445','asasd','adcd')""") frappe.db.sql( """INSERT INTO `tabUser` (`name`, `creation`, `modified`, `modified_by`, `owner`, `docstatus`, `parent`, `parentfield`, `parenttype`, `idx`, `last_ip`, `user_type`, `github_username`, `reset_password_key`, `last_name`, `google_userid`, `last_known_versions`, `user_image`, `thread_notify`, `first_name`, `middle_name`, `new_password`, `last_login`, `location`, `github_userid`, `login_after`, `email`, `restrict_ip`, `username`, `send_welcome_email`, `fb_userid`, `background_style`, `background_image`, `send_password_update_notification`, `email_signature`, `language`, `mute_sounds`, `gender`, `login_before`, `enabled`, `time_zone`, `fb_username`, `unsubscribed`, `bio`,`designation`) VALUES ('""" + phoneNo + """', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, 'Guest', 'Guest', '0', '', '', '', '0', '', 'System User', '', '', '""" + lastName + """', '', '', 'https://secure.gravatar.com/avatar/adb831a7fdd83dd1e2a309ce7591dff8?d=retro', '1', '""" + firstName + """', '', '', '', '', '', '0', '""" + phoneNo + """@example.com', '', '""" + phoneNo + """', '1', '', 'Fill Screen', '', '0', '', '', '0', '', '0', '1', '', '', '0', '','""" + designation + """')""") frappe.db.sql( """INSERT INTO `tabUserRole` (`name`, `creation`, `modified`, `modified_by`, `owner`, `docstatus`, `parent`, `parentfield`, `parenttype`, `idx`, `role`) VALUES ('""" + id_generator(10) + """', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '""" + phoneNo + """', '""" + phoneNo + """', '0', '""" + phoneNo + """', 'user_roles', 'User', '1', 'KYC')""") frappe.db.sql( """INSERT INTO `tabHas Role` (`name`, `creation`, `modified`, `modified_by`, `owner`, `docstatus`, `parent`, `parentfield`, `parenttype`, `idx`, `role`) VALUES ('""" + id_generator(10) + """', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '""" + phoneNo + """', '""" + phoneNo + """', '0', '""" + phoneNo + """', 'roles', 'User', '1', 'KYC')""") # frappe.db.sql("""INSERT INTO `tabUserRole` (`name`, `creation`, `modified`, `modified_by`, `owner`, `docstatus`, `parent`, `parentfield`, `parenttype`, `idx`, `role`) VALUES ('"""+id_generator(10)+"""', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '"""+phoneNo+"""', '"""+phoneNo+"""', '0', '"""+phoneNo+"""', 'user_roles', 'User', '1', 'Customer')""") # frappe.db.sql("""INSERT INTO `tabHas Role` (`name`, `creation`, `modified`, `modified_by`, `owner`, `docstatus`, `parent`, `parentfield`, `parenttype`, `idx`, `role`) VALUES ('"""+id_generator(10)+"""', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '"""+phoneNo+"""', '"""+phoneNo+"""', '0', '"""+phoneNo+"""', 'roles', 'User', '1', 'Customer')""") _update_password(phoneNo, otpobj.otp) return generateResponse("S", message="User Added Succesfully", data="True") except Exception as e: error_log = app_error_log(frappe.session.user, str(e)) return generateResponse("F", error=e)
def send_password_notification(self, new_password): try: if self.in_insert: if self.name not in STANDARD_USERS: if new_password: # new password given, no email required _update_password(self.name, new_password) if not self.flags.no_welcome_mail and self.send_welcome_email: self.send_welcome_mail_to_user() msgprint(_("Welcome email sent")) return else: self.email_new_password(new_password) except frappe.OutgoingEmailError: pass # email server not set, don't send email
def update_password(new_password, key=None, old_password=None): res = _get_user_for_update_password(key, old_password) if res.get('message'): return res['message'] else: user = res['user'] _update_password(user, new_password) user_doc, redirect_url = reset_user_data(user) frappe.local.login_manager.login_as(user) if user_doc.user_type == "System User": return "/desk" else: return redirect_url if redirect_url else "/"
def reset_password(): pwd = frappe.form_dict.get('pwd') apwd = frappe.form_dict.get('apwd') key = frappe.form_dict.get('key') if pwd and key and pwd == apwd: res = _get_user_for_update_password(key, None) if res.get('message'): frappe.local.response.http_status_code = 410 return res['message'] else: user = res['user'] _update_password(user, pwd, logout_all_sessions=1) return "SUCCESS" else: raise frappe.ValidationError( "Passwords does not match or key is missing")
def send_password_notification(self, new_password): try: if self.flags.in_insert: if self.name not in STANDARD_USERS: if new_password: # new password given, no email required _update_password(user=self.name, pwd=new_password, logout_all_sessions=self.logout_all_sessions) if not self.flags.no_welcome_mail and self.send_welcome_email: self.send_welcome_mail_to_user() self.flags.email_sent = 1 if frappe.session.user != 'Guest': msgprint(_("Welcome email sent")) return else: self.email_new_password(new_password) except frappe.OutgoingEmailError: print(frappe.get_traceback()) pass # email server not set, don't send email
def update_password(new_password, logout_all_sessions=0, key=None, old_password=None): # validate key to avoid key input like ['like', '%'], '', ['in', ['']] if key and not isinstance(key, str): frappe.throw(_("Invalid key type")) result = test_password_strength(new_password, key, old_password) feedback = result.get("feedback", None) if feedback and not feedback.get("password_policy_validation_passed", False): handle_password_test_fail(result) res = _get_user_for_update_password(key, old_password) if res.get("message"): frappe.local.response.http_status_code = 410 return res["message"] else: user = res["user"] logout_all_sessions = cint(logout_all_sessions) or frappe.db.get_single_value( "System Settings", "logout_on_password_reset" ) _update_password(user, new_password, logout_all_sessions=cint(logout_all_sessions)) user_doc, redirect_url = reset_user_data(user) # get redirect url from cache redirect_to = frappe.cache().hget("redirect_after_login", user) if redirect_to: redirect_url = redirect_to frappe.cache().hdel("redirect_after_login", user) frappe.local.login_manager.login_as(user) frappe.db.set_value("User", user, "last_password_reset_date", today()) frappe.db.set_value("User", user, "reset_password_key", "") if user_doc.user_type == "System User": return "/app" else: return redirect_url if redirect_url else "/"
def on_update(self): if self.password: _update_password(self.email,get_decrypted_password("Vendor",self.name)) self.password=""
def on_update(self): if self.password: _update_password(self.email, get_decrypted_password("Principle", self.name)) self.password = ""
def email_new_password(self, new_password=None): if new_password and not self.flags.in_insert: _update_password(user=self.name, pwd=new_password, logout_all_sessions=self.logout_all_sessions)
def update_password(new_password, key=None, old_password=None): result = test_password_strength(new_password, key, old_password) feedback = result.get("feedback", None) if feedback and not feedback.get('password_policy_validation_passed', False): handle_password_test_fail(result) res = _get_user_for_update_password(key, old_password) if res.get('message'): return res['message'] else: user = res['user'] _update_password(user, new_password) #get default sales person to whome the lead will be assign. default_sales_person = frappe.db.get_value("Unlimited Settings", None, "default_sales_person") employee = frappe.db.get_value("Sales Person", default_sales_person, "employee") person_user_id = frappe.db.get_value("Employee", employee, "user_id") chek_if_user_lead_available = frappe.db.get_value("Lead", {"email_id": str(user)}, "name") if key and new_password and not chek_if_user_lead_available: #create a lead while setting up the password. lead = frappe.get_doc({ "doctype": "Lead", "lead_name": frappe.db.get_value("User", {"email": str(user)}, "first_name"), "email_id": str(user), "phone": frappe.db.get_value("User", {"email": str(user)}, "phone"), "lead_owner": str(person_user_id) }) lead.flags.ignore_permissions = True lead.insert() #assign created lead to the default sales person. from frappe.utils import nowdate args = { "assign_to": str(person_user_id), "description": lead.lead_name, "date": nowdate(), "notify": 1, "priority": "High", "doctype": "Lead", "name": lead.name, # "assigned_by": "Administrator" } add_assign(args) user_doc, redirect_url = reset_user_data(user) # frappe.msgprint(str(redirect_url)) # frappe.throw(str(user_doc)) # get redirect url from cache redirect_to = frappe.cache().hget('redirect_after_login', user) if redirect_to: redirect_url = redirect_to frappe.cache().hdel('redirect_after_login', user) frappe.local.login_manager.login_as(user) # frappe.msgprint(str(user_doc.user_type)) # frappe.throw(str(redirect_url) + " ---Hello") if user_doc.user_type == "System User": return "/desk" else: # frappe.throw("Hello 1") return redirect_url if redirect_url else "/"
def email_new_password(self, new_password=None): if new_password: _update_password(user=self.email, pwd=new_password, logout_all_sessions=self.logout_all_sessions)
def on_update(self): _update_password(self.email, get_decrypted_password("Driver", self.name)) self.password = ""