summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/ui/SignInModal.js11
-rw-r--r--server/lib/auth.js13
-rw-r--r--server/lib/schemas/User.js2
-rw-r--r--views/login.ejs2
4 files changed, 18 insertions, 10 deletions
diff --git a/public/assets/javascripts/ui/SignInModal.js b/public/assets/javascripts/ui/SignInModal.js
index e5cd02a..0112513 100644
--- a/public/assets/javascripts/ui/SignInModal.js
+++ b/public/assets/javascripts/ui/SignInModal.js
@@ -8,6 +8,12 @@ var SignInModal = ModalView.extend({
"submit form": "submit"
},
+ initialize: function(){
+ this.$form = this.$("form")
+ this.$errors = this.$(".errors")
+ this.$errorList = this.$(".errorList")
+ },
+
reset: function(){
this.$("input").not("[type='submit']").not("[type='hidden']").val("")
},
@@ -23,14 +29,13 @@ var SignInModal = ModalView.extend({
this.$errors.hide();
this.$errorList.empty()
- if (! this.validate()) return
-
var fields = this.$form.serializeArray()
fields.forEach(function(pair){
if (pair.name == "password" && pair.value.length > 0) {
pair.value = SHA1.hex('lol$' + pair.value + '$vvalls')
}
})
+
var request = $.post(this.action, $.param(fields));
request.done($.proxy(function (response) {
if (response.error) {
@@ -38,7 +43,7 @@ var SignInModal = ModalView.extend({
for (var key in response.error.errors) {
this.$errorList.append('<div>' + response.error.errors[key].message + '</div>');
}
- return;
+ return
}
else {
window.location.href = "/profile"
diff --git a/server/lib/auth.js b/server/lib/auth.js
index 262d5f8..ede52b6 100644
--- a/server/lib/auth.js
+++ b/server/lib/auth.js
@@ -94,7 +94,7 @@ var auth = {
User.findOne({ username: username }, function (err, user) {
if (user) {
- res.json({ error: { errors: { username: "Username has been taken" } } })
+ res.json({ error: { errors: { username: { message: "Username has been taken" } } } })
return
}
var data = {
@@ -103,9 +103,12 @@ var auth = {
password: password,
email: email
}
- new User(data).save(function(err, data){
+ new User(data).save(function(err, user){
if (err || ! data) { return res.json({ error: err }) }
- res.json({ status: "OK", payload: data })
+
+ req.login(user, function(){
+ res.json({ status: "OK", payload: user })
+ })
})
})
},
@@ -114,10 +117,10 @@ var auth = {
User.findOne({ username: username }, function(err, user){
if (err) { return done(err); }
if (!user) {
- return done(null, false, { message: 'Incorrect username.' });
+ return done(null, false, { error: { errors: { username: { message: 'Incorrect username.' } }}})
}
if (! user.validPassword(password)) {
- return done(null, false, { message: 'Incorrect password.' });
+ return done(null, false, { error: { errors: { password: { message: 'Incorrect password.' } }}})
}
return done(null, user);
});
diff --git a/server/lib/schemas/User.js b/server/lib/schemas/User.js
index c619685..ef8fef6 100644
--- a/server/lib/schemas/User.js
+++ b/server/lib/schemas/User.js
@@ -64,7 +64,7 @@ var UserSchema = new mongoose.Schema({
});
UserSchema.methods.validPassword = function (pw) {
- return this.password !== pw
+ return this.password === pw
}
module.exports = exports = mongoose.model('user', UserSchema);
diff --git a/views/login.ejs b/views/login.ejs
index af78f83..b37d18d 100644
--- a/views/login.ejs
+++ b/views/login.ejs
@@ -23,7 +23,7 @@
[[ include partials/scripts ]]
<script>
setTimeout(function(){
- $("[data-role='show-signup-modal']").trigger("click")
+ $("[data-role='show-signin-modal']").trigger("click")
})
</script>
</html>