コード例 #1
0
ファイル: user.py プロジェクト: britlog/frappe
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 "/"
コード例 #2
0
ファイル: user.py プロジェクト: britlog/frappe
	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"))
コード例 #3
0
	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"))
コード例 #4
0
ファイル: user.py プロジェクト: doaakhalf/Finance
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 "/"
コード例 #5
0
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
  )
コード例 #6
0
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
コード例 #7
0
    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"))
コード例 #8
0
ファイル: user.py プロジェクト: MostafaBalata/frappe
	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"))
コード例 #9
0
ファイル: user.py プロジェクト: bopopescu/frappe11
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 "/"
コード例 #10
0
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)
コード例 #11
0
ファイル: user.py プロジェクト: MostafaBalata/frappe
	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
コード例 #12
0
ファイル: user.py プロジェクト: MostafaBalata/frappe
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 "/"
コード例 #13
0
ファイル: user.py プロジェクト: rahults/frappe
    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
コード例 #14
0
ファイル: user.py プロジェクト: rahults/frappe
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 "/"
コード例 #15
0
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")
コード例 #16
0
	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
コード例 #17
0
ファイル: user.py プロジェクト: britlog/frappe
	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
コード例 #18
0
ファイル: user.py プロジェクト: erpnext-tm/frappe
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 "/"
コード例 #19
0
	def on_update(self):
		if self.password:
			_update_password(self.email,get_decrypted_password("Vendor",self.name))
		self.password=""
コード例 #20
0
 def on_update(self):
     if self.password:
         _update_password(self.email,
                          get_decrypted_password("Principle", self.name))
     self.password = ""
コード例 #21
0
ファイル: user.py プロジェクト: GPD-ERP/frappe
 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)
コード例 #22
0
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 "/"
コード例 #23
0
	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)
コード例 #24
0
 def on_update(self):
     _update_password(self.email,
                      get_decrypted_password("Driver", self.name))
     self.password = ""