Skip to content

Commit 6a8eb04

Browse files
committed
forgot password completely functional now
1 parent 1f21501 commit 6a8eb04

File tree

7 files changed

+102
-5
lines changed

7 files changed

+102
-5
lines changed

api/api.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,7 @@ module.exports = function(app) {
4747
app.post("/api/forgot", function(req, res) {
4848
forgot.send_reset_email(req, res);
4949
});
50+
app.post("/api/forgot/reset", function(req, res) {
51+
forgot.verify_code(req, res);
52+
});
5053
};

app.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ var app = express();
1313

1414
app.configure(function() {
1515
app.set("port", process.env.PORT || 3000);
16+
app.set("views", __dirname + "/app/jade");
17+
app.set("view engine", "jade");
18+
app.locals.pretty = true;
1619

1720
app.use(express.bodyParser());
1821
app.use(express.cookieParser());

app/jade/verify.jade

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
doctype html(lang='en')
2+
html
3+
head
4+
meta(charset='utf-8')
5+
meta(name='viewport', content='width=device-width, initial-scale=1.0, user-scalable=yes')
6+
title Reset Password - CTF Platform
7+
link(rel='stylesheet', href='/css/main.css', media='screen')
8+
link(rel='icon', href='images/logo.ico', media='screen')
9+
body
10+
nav.navbar.navbar-default(role='navigation')
11+
.container-fluid
12+
.navbar-header
13+
button.navbar-toggle.collapsed(type='button', data-toggle='collapse', data-target='#navbar-content')
14+
span.sr-only Toggle Navigation
15+
span.icon-bar
16+
span.icon-bar
17+
span.icon-bar
18+
a.navbar-brand(href='/') CTF-Platform
19+
#navbar-content.collapse.navbar-collapse
20+
ul#nav-left.nav.navbar-nav
21+
ul#nav-right.nav.navbar-nav.navbar-right
22+
.container
23+
.page-header
24+
h1 Reset your Password
25+
.container
26+
#verify_msg
27+
.well.col-lg-7
28+
div
29+
form(class='form-horizontal', action='javascript:dispatch();')
30+
fieldset
31+
legend Change Password
32+
div(class='form-group')
33+
label(for='verify-code' class='col-lg-3 control-label') Code
34+
div(class='col-lg-8')
35+
input(type='text', class='form-control', name='-verify-code', id='-verify-code', placeholder='Code', value='#{code}', disabled)
36+
div(class='form-group')
37+
label(for='verify-password1' class='col-lg-3 control-label') Password
38+
div(class='col-lg-8')
39+
input(type='password', class='form-control', name='verify-password1', id='verify-password1', placeholder='Password', autofocus='on')
40+
div(class='form-group')
41+
label(for='verify-password2' class='col-lg-3 control-label') Confirm Password
42+
div(class='col-lg-8')
43+
input(type='password', class='form-control', name='verify-password2', id='verify-password2', placeholder='Confirm Password', autofocus='on')
44+
div(class='form-group')
45+
label(class='col-lg-3 control-label')
46+
div(class='col-lg-7')
47+
button(class='btn btn-primary', id='verify-btn', onClick='javascript:dispatch(); return false;') Change Password
48+
#footer
49+
script(type='text/javascript', src='/js/jquery.js')
50+
script(type='text/javascript', src='/js/bootstrap.min.js')
51+
script(type='text/javascript', src='/js/dependencies.js')
52+
script(type='text/javascript', src='/js/passreset.js')
53+
script(type='text/javascript').
54+
$(function() { display_navbar(); load_footer(); });

app/pages/updates.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
</button><a href="/" class="navbar-brand">CTF-Platform</a>
2020
</div>
2121
<div id="navbar-content" class="collapse navbar-collapse">
22-
<ul class="nav navbar-nav" id="nav-left">
23-
</ul>
24-
<ul class="nav navbar-nav navbar-right" id="nav-right">
25-
</ul>
22+
<ul class="nav navbar-nav" id="nav-left">
23+
</ul>
24+
<ul class="nav navbar-nav navbar-right" id="nav-right">
25+
</ul>
2626
</div>
2727
</div>
2828
</nav>
29-
29+
3030
<div class="container">
3131
<div class="container">
3232
<div class="jumbotron">

app/router.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,10 @@ module.exports = function(app) {
6363
});
6464
})(i);
6565
}
66+
67+
app.get("/forgot/:code", function(req, res) {
68+
res.render("verify", {
69+
code: req.params.code
70+
});
71+
})
6672
};

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"dotenv": "^0.4.0",
88
"express": "3.x",
99
"html-entities": "^1.1.1",
10+
"jade": "^1.8.1",
1011
"moment": "^2.8.4",
1112
"mongodb": "^1.4.23",
1213
"sendgrid": "^1.3.0"

web/js/passreset.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
(function() {
2+
window.dispatch = function() {
3+
$("[id^=verify-]").attr("disabled", "disabled");
4+
$.ajax({
5+
url: "/api/forgot/reset",
6+
dataType: "json",
7+
data: {
8+
code: $("#-verify-code").val(),
9+
p1: $("#verify-password1").val(),
10+
p2: $("#verify-password2").val(),
11+
},
12+
type: "POST",
13+
success: function(data) {
14+
var alert_class = "";
15+
if (data.success == 1) {
16+
alert_class = "success";
17+
} else {
18+
alert_class = "danger";
19+
$("[id^=verify-]").removeAttr("disabled");
20+
}
21+
$("#verify_msg").hide().html("<div class=\"alert alert-" + alert_class + "\"> " + data['message'] + " </div>").slideDown("normal");
22+
setTimeout(function() {
23+
$("#verify_msg").slideUp("normal", function() {
24+
return $("#verify_msg").html("").show();
25+
});
26+
}, 2000);
27+
},
28+
});
29+
};
30+
})();

0 commit comments

Comments
 (0)