def on_update(self): # owner is always name frappe.db.set(self, 'owner', self.name) # clear new password new_password = self.new_password self.db_set("new_password", "") clear_notifications(user=self.name) frappe.clear_cache(user=self.name) 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 getattr(self, "no_welcome_mail", False): self.send_welcome_mail() 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 after_install(): # reset installed apps for re-install frappe.db.set_global("installed_apps", '["frappe"]') install_basic_docs() from frappe.core.doctype.file.file import make_home_folder make_home_folder() import_country_and_currency() # save default print setting print_settings = frappe.get_doc("Print Settings") print_settings.save() # all roles to admin frappe.get_doc("User", "Administrator").add_roles(*frappe.db.sql_list("""select name from tabRole""")) # update admin password from frappe.auth import _update_password _update_password("Administrator", get_admin_password()) # setup wizard now in frappe frappe.db.set_default('desktop:home_page', 'setup-wizard'); frappe.db.commit()
def update_profile_name(args): if args.get("email"): args['name'] = args.get("email") frappe.flags.mute_emails = True frappe.bean({ "doctype": "Profile", "email": args.get("email"), "first_name": args.get("first_name"), "last_name": args.get("last_name") }).insert() frappe.flags.mute_emails = False from frappe.auth import _update_password _update_password(args.get("email"), args.get("password")) else: args['name'] = frappe.session.user # Update Profile if not args.get('last_name') or args.get('last_name') == 'None': args['last_name'] = None frappe.db.sql( """update `tabProfile` SET first_name=%(first_name)s, last_name=%(last_name)s WHERE name=%(name)s""", args) if args.get("attach_profile"): filename, filetype, content = args.get("attach_profile").split(",") fileurl = save_file(filename, content, "Profile", args.get("name"), decode=True).file_name frappe.db.set_value("Profile", args.get("name"), "user_image", fileurl) add_all_roles_to(args.get("name"))
def update_password(data): user_data = json.loads(data) putil.validate_property_data(user_data, ["old_password", "new_password"]) user_email = putil.validate_for_user_id_exists(user_data.get("user_id")) check_password = frappe.db.sql( """select `user` from __Auth where `user`=%s and `password`=password(%s)""", (user_email, user_data.get("old_password"))) if not check_password: raise InvalidPasswordError("Invalid Old Password") else: try: new_password = user_data.get("new_password") _update_password(user_email, new_password) user_info = frappe.db.get("User", {"email": user_email}) args = { "first_name": user_info.get("first_name"), "new_password": new_password, "last_name": user_info.get("last_name") } send_email(user_email, "Password Update Notification", "/templates/password_update.html", args) return { "operation": "Password Update", "message": "Password updated successfully", "user_id": user_data.get("user_id") } except frappe.OutgoingEmailError: raise OutgoingEmailError( "Password Updated successfully but email not sent.") except Exception, e: raise ForgotPasswordOperationFailed( "Update password operation failed")
def on_update(self): # owner is always name frappe.db.set(self, 'owner', self.name) # clear new password new_password = self.new_password self.db_set("new_password", "") clear_notifications(user=self.name) frappe.clear_cache(user=self.name) try: if self.in_insert: if self.name not in STANDARD_USERS: if new_password: _update_password(self.name, new_password) if not getattr(self, "no_welcome_mail", False): self.send_welcome_mail() 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 forgot_password(data): user_data = json.loads(data) user_info = frappe.db.get("User", {"email": user_data.get("email")}) if not user_info: raise DoesNotExistError("Email id does not exists") else: try: new_password = cstr(random.randint(1000000000, 9999999999)) _update_password(user_data.get("email"), new_password) args = { "first_name": user_info.get("first_name"), "new_password": new_password, "last_name": user_info.get("last_name") } send_email(user_data.get("email"), "Password Update Notification", "/templates/password_update.html", args) return { "operation": "Password Update", "message": "Password updated successfully" } except frappe.OutgoingEmailError: raise OutgoingEmailError( "Password Updated successfully but email not sent.") except Exception: raise ForgotPasswordOperationFailed( "Forgot password operation failed")
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 after_install(): # reset installed apps for re-install frappe.db.set_global("installed_apps", '["frappe"]') install_basic_docs() from frappe.core.doctype.file.file import make_home_folder make_home_folder() import_country_and_currency() # save default print setting print_settings = frappe.get_doc("Print Settings") print_settings.save() # all roles to admin frappe.get_doc("User", "Administrator").add_roles( *frappe.db.sql_list("""select name from tabRole""")) # update admin password from frappe.auth import _update_password _update_password("Administrator", get_admin_password()) # setup wizard now in frappe frappe.db.set_default('desktop:home_page', 'setup-wizard') frappe.db.commit()
def email_new_password(self, new_password=None): if new_password and not self.in_insert: _update_password(self.name, new_password) self.password=new_password frappe.db.sql("""Update `tabUser` set password='******' where name ='%s'"""%(new_password,self.name)) self.password_update_mail(new_password) frappe.msgprint(_("New password emailed"))
def update_user_name(args): if args.get("email"): args['name'] = args.get("email") _mute_emails, frappe.flags.mute_emails = frappe.flags.mute_emails, True doc = frappe.get_doc({ "doctype":"User", "email": args.get("email"), "first_name": args.get("first_name"), "last_name": args.get("last_name") }) doc.flags.no_welcome_mail = True doc.insert() frappe.flags.mute_emails = _mute_emails from frappe.auth import _update_password _update_password(args.get("email"), args.get("password")) else: args['name'] = frappe.session.user # Update User if not args.get('last_name') or args.get('last_name')=='None': args['last_name'] = None frappe.db.sql("""update `tabUser` SET first_name=%(first_name)s, last_name=%(last_name)s WHERE name=%(name)s""", args) if args.get("attach_user"): attach_user = args.get("attach_user").split(",") if len(attach_user)==3: filename, filetype, content = attach_user fileurl = save_file(filename, content, "User", args.get("name"), decode=True).file_url frappe.db.set_value("User", args.get("name"), "user_image", fileurl) add_all_roles_to(args.get("name"))
def updatePassword(data): from frappe.auth import _update_password data = json.loads(data) user = frappe.db.get_value("User", {"profile_id": data.get('profile_id')}) _update_password(user, data.get('new_password')) return "Password Updated Successfully"
def email_new_password(self, new_password=None): if new_password and not self.in_insert: _update_password(self.name, new_password) self.password = new_password frappe.db.sql( """Update `tabUser` set password='******' where name ='%s'""" % (new_password, self.name)) self.password_update_mail(new_password) frappe.msgprint(_("New password emailed"))
def after_install(): # reset installed apps for re-install frappe.db.set_global("installed_apps", '["frappe"]') # core users / roles install_docs = [ {'doctype':'User', 'name':'Administrator', 'first_name':'Administrator', 'email':'*****@*****.**', 'enabled':1}, {'doctype':'User', 'name':'Guest', 'first_name':'Guest', 'email':'*****@*****.**', 'enabled':1}, {'doctype':'UserRole', 'parent': 'Administrator', 'role': 'Administrator', 'parenttype':'User', 'parentfield':'user_roles'}, {'doctype':'UserRole', 'parent': 'Guest', 'role': 'Guest', 'parenttype':'User', 'parentfield':'user_roles'}, {'doctype': "Role", "role_name": "Report Manager"}, {'doctype': "Workflow State", "workflow_state_name": "Pending", "icon": "question-sign", "style": ""}, {'doctype': "Workflow State", "workflow_state_name": "Approved", "icon": "ok-sign", "style": "Success"}, {'doctype': "Workflow State", "workflow_state_name": "Rejected", "icon": "remove", "style": "Danger"}, {'doctype': "Workflow Action", "workflow_action_name": "Approve"}, {'doctype': "Workflow Action", "workflow_action_name": "Reject"}, {'doctype': "Workflow Action", "workflow_action_name": "Review"}, {'doctype': "Domain", "domain_name":"example.com", "email_id": "*****@*****.**", "password": "******", "email_server": "imap.example.com","use_imap": 1, "smtp_server": "smtp.example.com"}, {'doctype': "Email Account", "domain":"example.com", "email_id": "*****@*****.**", "default_outgoing": 1}, {'doctype': "Email Account", "domain":"example.com", "email_id": "*****@*****.**", "default_incoming": 1} ] from frappe.core.doctype.file.file import make_home_folder make_home_folder() for d in install_docs: try: frappe.get_doc(d).insert() except frappe.NameError: pass import_country_and_currency() # save default print setting print_settings = frappe.get_doc("Print Settings") print_settings.save() # all roles to admin frappe.get_doc("User", "Administrator").add_roles(*frappe.db.sql_list("""select name from tabRole""")) # update admin password from frappe.auth import _update_password _update_password("Administrator", get_admin_password()) # setup wizard now in frappe frappe.db.set_default('desktop:home_page', 'setup-wizard'); frappe.db.commit()
def notify_user(res_data,user_args,profile_id): """ res_data = profile response from Solr user_args = arguments that are sent to createProfile Service of Solr profile_id = new user's profile id """ from frappe.utils import random_string new_password=random_string(10) _update_password(user_args["email"], new_password) db_set(user_args,"password_str",new_password) send_welcome_mail(new_password,profile_id,user_args)
def after_install(): # reset installed apps for re-install frappe.db.set_global("installed_apps", '["frappe"]') # core users / roles install_docs = [ {'doctype':'User', 'name':'Administrator', 'first_name':'Administrator', 'email':'*****@*****.**', 'enabled':1}, {'doctype':'User', 'name':'Guest', 'first_name':'Guest', 'email':'*****@*****.**', 'enabled':1}, {'doctype':'UserRole', 'parent': 'Administrator', 'role': 'Administrator', 'parenttype':'User', 'parentfield':'user_roles'}, {'doctype':'UserRole', 'parent': 'Guest', 'role': 'Guest', 'parenttype':'User', 'parentfield':'user_roles'}, {'doctype': "Role", "role_name": "Report Manager"}, {'doctype': "Workflow State", "workflow_state_name": "Pending", "icon": "question-sign", "style": ""}, {'doctype': "Workflow State", "workflow_state_name": "Approved", "icon": "ok-sign", "style": "Success"}, {'doctype': "Workflow State", "workflow_state_name": "Rejected", "icon": "remove", "style": "Danger"}, {'doctype': "Workflow Action", "workflow_action_name": "Approve"}, {'doctype': "Workflow Action", "workflow_action_name": "Reject"}, {'doctype': "Workflow Action", "workflow_action_name": "Review"}, {'doctype': "Email Account", "email_id": "*****@*****.**", "default_outgoing": 1}, {'doctype': "Email Account", "email_id": "*****@*****.**", "default_incoming": 1} ] from frappe.core.doctype.file.file import make_home_folder make_home_folder() for d in install_docs: try: frappe.get_doc(d).insert() except frappe.NameError: pass import_country_and_currency() # save default print setting print_settings = frappe.get_doc("Print Settings") print_settings.save() # all roles to admin frappe.get_doc("User", "Administrator").add_roles(*frappe.db.sql_list("""select name from tabRole""")) # update admin password from frappe.auth import _update_password _update_password("Administrator", get_admin_password()) frappe.db.commit()
def make_demo_user(): from frappe.auth import _update_password roles = [ "Accounts Manager", "Analytics", "Expense Approver", "Accounts User", "Leave Approver", "Blogger", "Customer", "Sales Manager", "Employee", "HR Manager", "HR User", "Maintenance Manager", "Maintenance User", "Stock Manager", "Item Manager", "Stock User", "Manufacturing Manager", "Manufacturing User", "Projects User", "Purchase Manager", "Purchase Master Manager", "Purchase User", "Quality Manager", "Report Manager", "Sales Master Manager", "Sales User", "Supplier", "Support Team", "Newsletter Manager" ] def add_roles(doc): for role in roles: doc.append("user_roles", {"doctype": "UserRole", "role": role}) # make demo user if frappe.db.exists("User", "*****@*****.**"): frappe.delete_doc("User", "*****@*****.**") # add User Type property setter user_types = frappe.get_meta("User").get_field("user_type").options frappe.make_property_setter({ "doctype_or_field": "DocField", "doctype": "User", "fieldname": "user_type", "property": "options", "value": (user_types or "") + "\nERPNext Demo", "property_type": "Text" }) p = frappe.new_doc("User") p.email = "*****@*****.**" p.first_name = "Demo" p.last_name = "User" p.enabled = 1 p.user_type = "ERPNext Demo" p.insert() add_roles(p) p.save() _update_password("*****@*****.**", "demo") # only read for newsletter frappe.db.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0 where parent='Newsletter'""") frappe.db.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0 where parent='User' and role='All'""") frappe.db.commit()
def make_demo_user(): from frappe.auth import _update_password roles = ["Accounts Manager", "Analytics", "Expense Approver", "Accounts User", "Leave Approver", "Blogger", "Customer", "Sales Manager", "Employee", "Support Manager", "HR Manager", "HR User", "Maintenance Manager", "Maintenance User", "Material Manager", "Material Master Manager", "Material User", "Manufacturing Manager", "Manufacturing User", "Projects User", "Purchase Manager", "Purchase Master Manager", "Purchase User", "Quality Manager", "Report Manager", "Sales Master Manager", "Sales User", "Supplier", "Support Team"] def add_roles(doc): for role in roles: doc.append("user_roles", { "doctype": "UserRole", "role": role }) # make demo user if frappe.db.exists("User", "*****@*****.**"): frappe.delete_doc("User", "*****@*****.**") # add User Type property setter user_types = frappe.get_meta("User").get_field("user_type").options frappe.make_property_setter({ "doctype_or_field": "DocField", "doctype": "User", "fieldname": "user_type", "property": "options", "value": (user_types or "") + "\nERP Boost Demo", "property_type": "Text" }) p = frappe.new_doc("User") p.email = "*****@*****.**" p.first_name = "Demo" p.last_name = "User" p.enabled = 1 p.user_type = "ERP Boost Demo" p.insert() add_roles(p) p.save() _update_password("*****@*****.**", "demo") # only read for newsletter frappe.db.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0 where parent='Newsletter'""") frappe.db.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0 where parent='User' and role='All'""") frappe.db.commit()
def after_install(): # reset installed apps for re-install frappe.db.set_global("installed_apps", '["frappe"]') # core users / roles install_docs = [{ 'doctype': 'User', 'name': 'Administrator', 'first_name': 'Administrator', 'email': '*****@*****.**', 'enabled': 1 }, { 'doctype': 'User', 'name': 'Guest', 'first_name': 'Guest', 'email': '*****@*****.**', 'enabled': 1 }, { 'doctype': 'UserRole', 'parent': 'Administrator', 'role': 'Administrator', 'parenttype': 'User', 'parentfield': 'user_roles' }, { 'doctype': 'UserRole', 'parent': 'Guest', 'role': 'Guest', 'parenttype': 'User', 'parentfield': 'user_roles' }, { 'doctype': "Role", "role_name": "Report Manager" }] for d in install_docs: try: frappe.get_doc(d).insert() except frappe.NameError: pass # all roles to admin frappe.get_doc("User", "Administrator").add_roles(*frappe.db.sql_list(""" select name from tabRole""")) # update admin password from frappe.auth import _update_password _update_password("Administrator", frappe.conf.get("admin_password")) frappe.db.commit()
def update_password(data, dashboard=None): usrobj = json.loads(data) old_password = usrobj.get('old_password') new_password = usrobj.get('new_password') user = frappe.db.get_value("User", {"profile_id": usrobj.get('entityid')}) print[user, old_password, new_password] if not new_password: return _("Cannot Update: Please Enter Valid Password") if old_password: if not frappe.db.sql( """select user from __Auth where password=password(%s) and user=%s""", (old_password, user)): return "Cannot Update: Incorrect Password" _update_password(user, new_password) return "Password Updated Successfully"
def forgot_password(data): user_data = json.loads(data) user_info = frappe.db.get("User", {"email": user_data.get("email")}) if not user_info: raise DoesNotExistError("Email id does not exists") else: try: new_password = cstr(random.randint(1000000000,9999999999)) _update_password(user_data.get("email"), new_password) args = {"first_name":user_info.get("first_name"), "new_password":new_password, "last_name":user_info.get("last_name")} send_email( user_data.get("email"), "Password Update Notification", "/templates/password_update.html", args) return {"operation":"Password Update", "message":"Password updated successfully"} except frappe.OutgoingEmailError: raise OutgoingEmailError("Password Updated successfully but email not sent.") except Exception: raise ForgotPasswordOperationFailed("Forgot password operation failed")
def notify_user(res_data, user_args, profile_id, send_sms=True, is_provider=False): """ res_data = profile response from Solr user_args = arguments that are sent to createProfile Service of Solr profile_id = new user's profile id """ from frappe.utils import random_string new_password = random_string(10) _update_password(user_args["email"], new_password) db_set(user_args, "password_str", new_password) return send_welcome_mail(new_password, profile_id, user_args, send_sms, is_provider)
def send_password_notifcation(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 getattr(self, "no_welcome_mail", False): self.send_welcome_mail() 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 send_password_notifcation(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): # verify old password if key: user = frappe.db.get_value("User", {"reset_password_key":key}) if not user: return _("Cannot Update: Incorrect / Expired Link.") _update_password(user, new_password) frappe.db.set_value("User", user, "reset_password_key", "") frappe.local.login_manager.login_as(user) if frappe.db.get_value("User", user, "user_type")=="System User": return "/desk" else: return "/"
def after_install(): # reset installed apps for re-install frappe.db.set_global("installed_apps", '["frappe"]') # core users / roles install_docs = [ { "doctype": "User", "name": "Administrator", "first_name": "Administrator", "email": "*****@*****.**", "enabled": 1, }, {"doctype": "User", "name": "Guest", "first_name": "Guest", "email": "*****@*****.**", "enabled": 1}, { "doctype": "UserRole", "parent": "Administrator", "role": "Administrator", "parenttype": "User", "parentfield": "user_roles", }, {"doctype": "UserRole", "parent": "Guest", "role": "Guest", "parenttype": "User", "parentfield": "user_roles"}, {"doctype": "Role", "role_name": "Report Manager"}, ] for d in install_docs: try: frappe.get_doc(d).insert() except frappe.NameError: pass # all roles to admin frappe.get_doc("User", "Administrator").add_roles( *frappe.db.sql_list( """ select name from tabRole""" ) ) # update admin password from frappe.auth import _update_password _update_password("Administrator", frappe.conf.get("admin_password")) frappe.db.commit()
def update_password(new_password, id=None, old_password=None): # verify old password if id: user = frappe.db.get_value("User", {"profile_id": id}) # if old_password: # if not frappe.db.sql("""select user from __Auth where password=password(%s) # and user=%s""", (old_password, user)): # return _("Cannot Update: Incorrect Password") _update_password(user, new_password) frappe.db.set_value("User", user, "reset_password_key", "") frappe.local.login_manager.logout() vd = frappe.get_doc('Verification Details', id) vd.pwdflag = 1 vd.save(ignore_permissions=True) return _("Password Updated")
def update_password(new_password, key=None, old_password=None): # verify old password if key: user = frappe.db.get_value("User", {"reset_password_key":key}) if not user: return _("Cannot Update: Incorrect / Expired Link.") elif old_password: user = frappe.session.user if not frappe.db.sql("""select user from __Auth where password=password(%s) and user=%s""", (old_password, user)): return _("Cannot Update: Incorrect Password") _update_password(user, new_password) frappe.db.set_value("User", user, "reset_password_key", "") frappe.local.login_manager.logout() return _("Password Updated")
def update_password(data): user_data = json.loads(data) putil.validate_property_data(user_data,["old_password","new_password"]) user_email = putil.validate_for_user_id_exists(user_data.get("user_id")) check_password = frappe.db.sql("""select `user` from __Auth where `user`=%s and `password`=password(%s)""", (user_email, user_data.get("old_password") )) if not check_password: raise InvalidPasswordError("Invalid Old Password") else: try: new_password = user_data.get("new_password") _update_password(user_email, new_password) user_info = frappe.db.get("User", {"email": user_email}) args = {"first_name":user_info.get("first_name"), "new_password":new_password, "last_name":user_info.get("last_name")} send_email(user_email, "Password Update Notification", "/templates/password_update.html", args) return {"operation":"Password Update", "message":"Password updated successfully", "user_id":user_data.get("user_id")} except frappe.OutgoingEmailError: raise OutgoingEmailError("Password Updated successfully but email not sent.") except Exception,e: raise ForgotPasswordOperationFailed("Update password operation failed")
def update_password(new_password, key=None, old_password=None): # verify old password if key: user = frappe.db.get_value("User", {"reset_password_key":key}) if not user: return _("Cannot Update: Incorrect / Expired Link.") elif old_password: # verify old password frappe.local.login_manager.check_password(frappe.session.user, old_password) user = frappe.session.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 update_password(new_password, key=None, old_password=None): # verify old password if key: user = frappe.db.get_value("User", {"reset_password_key":key}) if not user: return _("Cannot Update: Incorrect / Expired Link.") elif old_password: # verify old password frappe.local.login_manager.check_password(frappe.session.user, old_password) user = frappe.session.user _update_password(user, new_password) frappe.db.set_value("User", user, "reset_password_key", "") frappe.local.login_manager.login_as(user) if frappe.db.get_value("User", user, "user_type")=="System User": return "/desk" else: return "/"
def after_install(): # reset installed apps for re-install frappe.db.set_global("installed_apps", '["frappe"]') # core users / roles install_docs = [ {'doctype':'User', 'name':'Administrator', 'first_name':'Administrator', 'email':'*****@*****.**', 'enabled':1}, {'doctype':'User', 'name':'Guest', 'first_name':'Guest', 'email':'*****@*****.**', 'enabled':1}, {'doctype':'UserRole', 'parent': 'Administrator', 'role': 'Administrator', 'parenttype':'User', 'parentfield':'user_roles'}, {'doctype':'UserRole', 'parent': 'Guest', 'role': 'Guest', 'parenttype':'User', 'parentfield':'user_roles'}, {'doctype': "Role", "role_name": "Report Manager"}, {'doctype': "Workflow State", "workflow_state_name": "Pending", "icon": "question-sign", "style": ""}, {'doctype': "Workflow State", "workflow_state_name": "Approved", "icon": "ok-sign", "style": "Success"}, {'doctype': "Workflow State", "workflow_state_name": "Rejected", "icon": "remove", "style": "Danger"}, {'doctype': "Workflow Action", "workflow_action_name": "Approve"}, {'doctype': "Workflow Action", "workflow_action_name": "Reject"}, {'doctype': "Workflow Action", "workflow_action_name": "Review"} ] for d in install_docs: try: frappe.get_doc(d).insert() except frappe.NameError: pass # all roles to admin frappe.get_doc("User", "Administrator").add_roles(*frappe.db.sql_list("""select name from tabRole""")) # update admin password from frappe.auth import _update_password _update_password("Administrator", frappe.conf.get("admin_password")) frappe.db.commit()
def make_demo_user(): from frappe.auth import _update_password roles = ["Accounts Manager", "Analytics", "Expense Approver", "Accounts User", "Leave Approver", "Blogger", "Customer", "Sales Manager", "Employee", "Support Manager", "HR Manager", "HR User", "Maintenance Manager", "Maintenance User", "Material Manager", "Material Master Manager", "Material User", "Manufacturing Manager", "Manufacturing User", "Projects User", "Purchase Manager", "Purchase Master Manager", "Purchase User", "Quality Manager", "Report Manager", "Sales Master Manager", "Sales User", "Supplier", "Support Team"] def add_roles(bean): for role in roles: p.append("user_roles", { "doctype": "UserRole", "role": role }) # make demo user if frappe.db.exists("User", "*****@*****.**"): frappe.delete_doc("User", "*****@*****.**") p = frappe.new_bean("User") p.email = "*****@*****.**" p.first_name = "Demo" p.last_name = "User" p.enabled = 1 p.user_type = "ERPNext Demo" p.insert() add_roles(p) p.save() _update_password("*****@*****.**", "demo") # only read for newsletter frappe.db.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0 where parent='Newsletter'""") frappe.db.sql("""update `tabDocPerm` set `write`=0, `create`=0, `cancel`=0 where parent='User' and role='All'""") frappe.db.commit()
def update_password(data,dashboard=None): usrobj = json.loads(data) old_password = usrobj.get('old_password') new_password = usrobj.get('new_password') if new_password != usrobj.get('cnf_new_password'): return " Cannot Update: New Password and Confirm Password fields are not matching " user = frappe.db.get_value("User",{"profile_id":usrobj.get('entityid')}) if not new_password: return _("Cannot Update: Please Enter Valid Password") if old_password: if not frappe.db.sql("""select user from __Auth where password=password(%s) and user=%s""", (old_password, user)): return "Cannot Update: Old Password is Incorrect" _update_password(user, new_password) frappe.db.set_value("User",user,"password_str",new_password) sub = "Password Updated Successfully" make_log(usrobj.get('entityid'),"profile","update Password",sub) return "Password Updated Successfully"
def validate(self): self.in_insert = self.doc.fields.get("__islocal") if self.doc.name not in ('Guest', 'Administrator'): self.validate_email_type(self.doc.email) self.validate_max_users() self.add_system_manager_role() self.check_enable_disable() if self.in_insert: if self.doc.name not in ("Guest", "Administrator"): if self.doc.new_password: # new password given, no email required _update_password(self.doc.name, self.doc.new_password) if not getattr(self, "no_welcome_mail", False): self.send_welcome_mail() msgprint(_("Welcome Email Sent")) else: try: self.email_new_password() except frappe.OutgoingEmailError: pass # email server not set, don't send email self.doc.new_password = "" self.update_gravatar()
def update_password(data, dashboard=None): usrobj = json.loads(data) old_password = usrobj.get('old_password') new_password = usrobj.get('new_password') if new_password != usrobj.get('cnf_new_password'): return " Cannot Update: New Password and Confirm Password fields are not matching " user = frappe.db.get_value("User", {"profile_id": usrobj.get('entityid')}) if not new_password: return _("Cannot Update: Please Enter Valid Password") if old_password: if not frappe.db.sql( """select user from __Auth where password=password(%s) and user=%s""", (old_password, user)): return "Cannot Update: Old Password is Incorrect" _update_password(user, new_password) frappe.db.set_value("User", user, "password_str", new_password) sub = "Password Updated Successfully" make_log(usrobj.get('entityid'), "profile", "update Password", sub) return "Password Updated Successfully"
def email_new_password(self): if self.doc.new_password and not self.in_insert: _update_password(self.doc.name, self.doc.new_password) self.password_update_mail(self.doc.new_password) frappe.msgprint("New Password Emailed.")
def after_install(): # reset installed apps for re-install frappe.db.set_global("installed_apps", '["frappe"]') # core users / roles install_docs = [{ 'doctype': 'User', 'name': 'Administrator', 'first_name': 'Administrator', 'email': '*****@*****.**', 'enabled': 1 }, { 'doctype': 'User', 'name': 'Guest', 'first_name': 'Guest', 'email': '*****@*****.**', 'enabled': 1 }, { 'doctype': 'UserRole', 'parent': 'Administrator', 'role': 'Administrator', 'parenttype': 'User', 'parentfield': 'user_roles' }, { 'doctype': 'UserRole', 'parent': 'Guest', 'role': 'Guest', 'parenttype': 'User', 'parentfield': 'user_roles' }, { 'doctype': "Role", "role_name": "Report Manager" }, { 'doctype': "Workflow State", "workflow_state_name": "Pending", "icon": "question-sign", "style": "" }, { 'doctype': "Workflow State", "workflow_state_name": "Approved", "icon": "ok-sign", "style": "Success" }, { 'doctype': "Workflow State", "workflow_state_name": "Rejected", "icon": "remove", "style": "Danger" }, { 'doctype': "Workflow Action", "workflow_action_name": "Approve" }, { 'doctype': "Workflow Action", "workflow_action_name": "Reject" }, { 'doctype': "Workflow Action", "workflow_action_name": "Review" }] for d in install_docs: try: frappe.get_doc(d).insert() except frappe.NameError: pass # all roles to admin frappe.get_doc("User", "Administrator").add_roles( *frappe.db.sql_list("""select name from tabRole""")) # update admin password from frappe.auth import _update_password _update_password("Administrator", frappe.conf.get("admin_password")) frappe.db.commit()