UNPKG

kaizen-login

Version:

A default login using express and mongoose

55 lines (43 loc) 1.85 kB
var path = require('path'); var UserControllerApi = require('./userApi'); var UserController = function UserController(baseUrl, options) { this.loginViewPath = path.resolve(__dirname, '../views/login'); this.createViewPath = path.resolve(__dirname, '../views/create'); UserControllerApi.apply(this, [baseUrl, options]); } UserController.prototype = Object.create(UserControllerApi.prototype); UserController.prototype.getCreatePage = function getCreatePage(request, response) { this.setDefaultLocal(request, response); response.render(this.createViewPath); } UserController.prototype.handleCreateCallback = function handleCreateCallback(response) { return (error, user) => { if(error) return response.redirect(this.router.getPath('new', {errorMessage: "create_user_error"})); return response.redirect(this.router.getPath("", {successMessage: "user_created"})); } } UserController.prototype.getLoginPage = function getLoginPage(request, response) { this.setDefaultLocal(request, response); response.render(this.loginViewPath); } UserController.prototype.setDefaultLocal = function(request, response) { response.locals.router = this.router; response.locals.errorMessage = request.query.errorMessage; response.locals.successMessage = request.query.successMessage; } UserController.prototype.handleLoginCallback = function handleLoginCallback(response) { return (error, user) => { if(error || !user) return response.redirect(this.router.getPath("", {errorMessage: "invalid_login"})); response.cookie("user",this.tokenHandler.getUserToken(user.getCredential())) return response.redirect(this.router.getPath("", {successMessage: "login_success"})); } } module.exports = UserController;