/
forgotPassword.html
124 lines (124 loc) · 5.78 KB
/
forgotPassword.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!DOCTYPE html>
<div data-bb-type="screen" style="background-image:url('images/background.png'); background-color: #181818" data-bb-effect="fade" data-bb-scroll-effect="off">
<script src="js/sha1.js"></script>
<script type="text/javascript">
function sendRequest(url, callback) {
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
if (xmlhttp.responseText == "" || JSON.parse(xmlhttp.responseText) == ""){
document.getElementById("message").innerHTML = "Email not found";
document.getElementById('indicator').style.display="none";
} else {
callback(JSON.parse(xmlhttp.responseText));
}
}
}
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function trim(s) {
return s.replace(/^\s*/, "").replace(/\s*$/, "");
}
function validate() {
if (trim(document.getElementById("email2").value) == "") {
document.getElementById("message").innerHTML = "Email field cannot be empty";
document.getElementById("email2").focus();
return false;
}
else
resetPassword();
}
function resetPassword() {
document.getElementById("message").innerHTML = "";
document.getElementById('indicator').style.display="block";
var email = document.getElementById("email2").value;
sendRequest("http://seederserver.aws.af.cm/index.php?users&command=getSaltByEmail&values[]=" +email, function (data){
sendRequest("http://seederserver.aws.af.cm/index.php?users&command=createUserPasswordKey&values[]=" +email, function (data){
var key = document.getElementById("keyDiv");
key.style.display="block";
document.getElementById("confirmButton").style.display = "block";
document.getElementById("reset").style.display = "none";
document.getElementById("message").innerHTML = "Check your email for the key";
document.getElementById("key").focus();
document.getElementById('indicator').style.display="none";
});
});
}
function confirmKey() {
var email = document.getElementById("email2").value;
sendRequest("http://seederserver.aws.af.cm/index.php?users&command=getUserPasswordKey&values[]=" +email, function (data){
emailKey = data[0][0][0];
var key = document.getElementById("key").value;
if (emailKey != key || key == "NULL") {
document.getElementById("message").innerHTML = "Invalid key";
document.getElementById("key").value="";
document.getElementById("key").focus();
}
else {
document.getElementById("message").innerHTML = "";
document.getElementById("emailDiv").style.display = "none";
document.getElementById("keyDiv").style.display = "none";
document.getElementById("confirmButton").style.display = "none";
document.getElementById("passwordDiv").style.display = "block";
document.getElementById("changePassword").style.display = "block";
}
});
}
function validatePassword() {
if (trim(document.getElementById("password").value) == "") {
document.getElementById("password").placeholder="Please enter your password";
return false;
} else if (document.getElementById("password").value.length < 6) {
document.getElementById("password").value="";
document.getElementById("password").placeholder="Your password is too short";
return false;
} else if (trim(document.getElementById("password2").value) == "") {
document.getElementById("password2").placeholder="Please enter your password again";
return false;
} else if (document.getElementById("password").value != document.getElementById("password2").value) {
document.getElementById("password2").value="";
document.getElementById("password2").placeholder="Please enter the same password";
return false;
}
else
changePassword();
}
function changePassword() {
var email = document.getElementById("email2").value;
var password = document.getElementById("password").value;
var salt = Sha1.hash(Math.random().toString());
var hash = Sha1.hash(password + salt);
document.getElementById('indicator').style.display="block";
sendRequest("http://seederserver.aws.af.cm/index.php?users&command=changeUserPassword&values[]="+email+"&values[]="+salt+"&values[]="+hash+"&values[]="+emailKey, function (data){
bb.pushScreen('login.html', 'loginPassChanged', {userEmail:email});
});
}
</script>
<div data-bb-type="round-panel" width="100%" style="margin: 0 50 0 50;">
<div style="background-image:url('images/seeder.png'); background-repeat: no-repeat; background-position: bottom; height: 300px; margin: 60px 0 80px 0"></div>
<hr style="width:100%; height:1px; border-color: #8A8A8A; border-bottom: 5px; background-color: #181818"/>
<div id="passwordDiv" style="margin-bottom:20px; display: none">
<input id="password" type="password" placeholder="Password"/>
<input id="password2" type="password" placeholder="Confirm password"/>
</div>
<div id="emailDiv" style="margin-bottom:20px;">
<input id="email2" type="email" placeholder="Email"/>
</div>
<div id = "keyDiv" style="width: 50%; margin-bottom:30px; display:none;">
<input id="key" type="text" placeholder="Key"/>
</div>
<div>
<div id = "reset" data-bb-type="button" data-bb-style="stretch" style="margin:20px 0 20px 0;" onclick="validate()">Reset Password</div>
<div id = "confirmButton" data-bb-type="button" data-bb-style="stretch" style="display: none; margin:20px 0 20px 0;" onclick="confirmKey()">Confirm key</div>
<div id = "changePassword" data-bb-type="button" data-bb-style="stretch" style="display: none; margin:20px 0 20px 0;" onclick="validatePassword()">Change password</div>
<div id = "indicator" data-bb-type="activity-indicator" data-bb-size="small" style="display: none;"></div>
<div id = "message" style="color: white"></div>
</div>
</div>
<div data-bb-type="action-bar" data-bb-back-caption ="Back"> </div>
</div>