如何防止用户使用sugarcrm中的ajax在新密码字段中输入以前的密码?

时间:2014-12-02 09:35:27

标签: php ajax validation passwords sugarcrm

我想在用户更改密码时在现有JavaScript验证中添加一些JavaScript验证。

现在,我想使用AJAX连接PHP文件,该文件对当前用户运行db查询,并检查new_password字段中输入的密码是否与他最近10个密码匹配。
<现在,我发现了SugarCRM用来匹配密码和存储在数据库中的散列密码的函数。但是,问题是我不知道如何使用AJAX连接到SugarCRM中的PHP文件。

我想使用onblur函数添加JavaScript验证。当用户输入他的新密码时,使用onblur,我想使用AJAX将该密码值发送到PHP文件并返回该值。当用户点击保存按钮时,如果他的新密码与他的上一个密码匹配,它应该给出警告框,如果没有,则应该允许他更改密码。

这里有人可以指导我吗?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

首先,您必须存储用户的最后10个密码,因为在Sugar的默认行为中,您只能获得旧密码和新密码。

对于AJAX,您必须在控制器的帮助下在“用户”模块中创建操作,或者只需在 custom / modules / Users 中创建文件 actionName.php 。 (参考Link

var URL = "index.php?module=Users&action=actionName";
YAHOO.util.Connect.asyncRequest('POST', URL, callBack);
var callBack = {
   success: function(){},
   failure:function(){}
}

您可以将此代码用于AJAX调用,或者您也可以使用此Link

答案 1 :(得分:0)

我已经设法找到了我想要的答案。我和你们分享我的代码。

if(form.new_password.value!=''){
        $.ajax({
            url:'index.php?entryPoint=check_last_passwords',
            data:{new_password: $('#new_password').val(),
            record: $('#record').val()},
            success: function(data){
                if(data!=''){
                    alert("Error: New password should not match with the last 10 passwords.");
                    return false;
                }else{
                    var _form = $('#EditView')[0];
                    if (!Admin_check())
                        return false;
                    _form.action.value='Save';
                    set_chooser();
                    if(verify_data(EditView))
                        _form.submit();
                }
            }
        });
    }