Guest User

Untitled

a guest
Jan 1st, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.73 KB | None | 0 0
  1. User Scheme for Mongoose:
  2. var mongoose = require('mongoose');
  3. var Schema = mongoose.Schema;
  4. var passportLocalMongoose = require('passport-local-mongoose');
  5.  
  6.  
  7. //enhanced userSchema
  8. var UserSchema = new Schema({
  9. user_id: Schema.ObjectId,
  10. username: {type :String, required : true, unique : true}, //serves as unique identifier
  11. password: {type : String, required: true},
  12. name: {type : String, required : true},
  13. surname: String,
  14. created_at : Date,
  15. updated_at : Date,
  16. skills: [{type : String}],
  17. lectures: [{type : String}],
  18. groups: [{type : String}] //todo: Change for later cross referencing with group schemes
  19. });
  20.  
  21. UserSchema.plugin(passportLocalMongoose);
  22.  
  23. module.exports = mongoose.model('User', UserSchema);
  24.  
  25. var express = require('express');
  26. var router = express.Router();
  27. var auth = require("../controllers/AuthController.js");
  28. var profile = require ("../controllers/ProfileController");
  29.  
  30. // restrict index for logged in user only
  31. router.get('/', auth.home);
  32.  
  33. // route to register page
  34. router.get('/register.html', auth.register);
  35.  
  36. // route for register action
  37. router.post('/register.html', auth.doRegister);
  38.  
  39. // route to login page
  40. router.get('/login.html', auth.login);
  41.  
  42. // route for login action
  43. router.post('/login.html', auth.doLogin);
  44.  
  45. // route for logout action
  46. router.get('/logout.html', auth.logout);
  47.  
  48. //route to profile
  49. router.get('/profile.html', profile.goToProfile);
  50.  
  51. //route for changing profile
  52. router.post('/profile.html', profile.changeProfile);
  53.  
  54.  
  55. module.exports = router;
  56.  
  57. /**
  58. * Controller for editing the profile
  59. */
  60.  
  61. var mongoose = require("mongoose");
  62. var passport = require("passport");
  63. var User = require("../models/User");
  64. var path = require('path');
  65.  
  66. //Change Name
  67.  
  68. var profileController = {};
  69.  
  70. //go to Profile
  71. profileController.goToProfile = function (req, res){
  72. res.sendFile(path.resolve('login.html')), {user : req.user};
  73. }
  74.  
  75. profileController.changeProfile= function (req, res){
  76. console.log("REQUEST: " + req.body.toString());
  77. if (req.body.surname.isEmpty()){
  78.  
  79. }
  80. else {
  81. User.findByIdAndUpdate(req.user._id, { $set: { surname: req.body.surname }}, { new: true }, function (err, User) {
  82. if (err) {
  83. console.log(err.toString());}
  84. res.alert('Changed surname');
  85. console.log('changed surname')
  86. });
  87. };
  88. if (req.body.name.isEmpty()){}
  89. else {
  90. User.findByIdAndUpdate(req.user._id, { $set: { name: req.body.name }}, { new: true }, function (err, User) {
  91. if (err) {
  92. console.log(err.toString());}
  93. res.alert('Changed name');
  94. console.log('changed name')
  95. });
  96.  
  97. };
  98.  
  99. if (req.body.skills.length === 0){}
  100. else {
  101. User.findByIdAndUpdate(req.user._id, { $set: { skills: req.body.skills }}, { new: true }, function (err, User) {
  102. console.log("Old Skills: " + User.skills.toString());
  103. if (err) {
  104. console.log(err.toString());}
  105. console.log("New skills: " + User.skills.toString());
  106. console.log('changed skills')
  107. });
  108.  
  109. }
  110. };
  111.  
  112. module.exports = profileController;
  113.  
  114. <!-- register container -->
  115. <div class="container">
  116. <form role="form" action="profile.html" method="post" style="max-width: 300px;">
  117. <h2 class="form-heading">Your Profile</h2>
  118. <input type="text" name="name" placeholder="Name" class="form-control" />
  119. <input type="text" name="username" placeholder="Username" class="form-control" />
  120. <input type="text" name="surname" placeholder="Last Name" class="form-control"/>
  121. <input type="text" name="skills[]" placeholder="Your skills" class="form-control"/>
  122. <button type="submit" class="btn btn-lg btn-primary btn-block">Save</button>
  123. </form>
  124. </div>
Add Comment
Please, Sign In to add comment