diff options
Diffstat (limited to 'bucky/app/bucky.js')
| -rw-r--r-- | bucky/app/bucky.js | 52 |
1 files changed, 49 insertions, 3 deletions
diff --git a/bucky/app/bucky.js b/bucky/app/bucky.js index f3ea689..7dac066 100644 --- a/bucky/app/bucky.js +++ b/bucky/app/bucky.js @@ -384,7 +384,6 @@ var bucky = module.exports = { } db.getUserByUsername(username).then(function(user){ if (user) { - res.user = util.sanitizeUser(user) next() } else { @@ -392,12 +391,59 @@ var bucky = module.exports = { } }) }, + sanitizeUser: function(req, res, next) { + res.user = util.sanitizeUser(res.user) + next() + }, bumpLastSeen: function(req, res, next) { req.user.set('lastseen', util.now()) req.user.save().then( () => next() ) }, - updateUser: function(req, res, next) { - + updateProfile: function(req, res, next) { + var user = res.user + "realname location email phone website twitter".split(" ").forEach( (field) => { + res.user.set("field", req.body[field]) + }) + next() + }, + changePassword: function(req, res, next) { + if (! req.body.oldpassword && ! req.body.newpassword) return next() + if (req.body.newpassword !== req.body.newpassword2) { + return res.send({ error: 'Passwords don\'t match.' }) + } + if (! auth.validPassword(res.user, req.body.oldpassword)) { + return res.send({ error: 'Password is incorrect.' }) + } + var newPassword = auth.makePassword(res.user, req.body.newpassword) + res.user.set('password', newPassword) + next() + }, + uploadAvatar: function(req, res, next) { + upload.put({ + file: file, + preserveFilename: true, + dirname: dirname, + unacceptable: function(err){ + reject(err) + }, + success: function(url){ + var data = { + thread: res.thread.get('id'), + username: req.user.get('username'), + filename: file.originalname, + date: util.now(), + size: file.size, + private: false, + storage: 'i.asdf.us', + } + db.createFile(data).then(function(file){ + resolve(file) + }).catch( (err) => reject(err) ) + } + }) + }, + saveUser: function(req, res, next){ + res.user.save().then( () => next() ) }, /* PRIVACY */ |
