Guest User

Untitled

a guest
Oct 9th, 2018
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. var bcrypt = require('bcrypt');
  2.  
  3. load('application');
  4.  
  5. before(loadUser, {only: ['show', 'edit', 'update', 'destroy']});
  6. before(loadGroups, {only: ['new', 'edit']});
  7.  
  8. action('new', function () {
  9. this.title = 'New user';
  10. this.user = new User;
  11. render();
  12. });
  13.  
  14. action(function create() {
  15. var user = {};
  16. user = req.body.User;
  17.  
  18. //create temporary password
  19. //hash password
  20. var salt = bcrypt.genSaltSync(10);
  21. user.password = bcrypt.hashSync('password', salt);
  22.  
  23. //create token
  24. var tokensalt = bcrypt.genSaltSync(10);
  25. user.token = bcrypt.hashSync(req.body.User['email'], tokensalt);
  26.  
  27. User.create(user, function (err, user) {
  28. if (err) {
  29. flash('error', 'User can not be created');
  30. render('new', {
  31. user: user,
  32. title: 'New user'
  33. });
  34. } else {
  35. flash('info', 'User created');
  36. redirect(path_to.users());
  37. }
  38. });
  39. });
  40.  
  41. action(function index() {
  42. var query = {};
  43. if (session.passport.user.role == 'participant') {
  44. query = {user: session.passport.user.id};
  45. } else if (session.passport.user.role == 'group') {
  46. query = {group: session.passport.user.group};
  47. }
  48. this.title = 'Users index';
  49. User.find(query, function (err, users) {
  50. render({
  51. users: users
  52. });
  53. });
  54. });
  55.  
  56. action(function show() {
  57. this.title = 'User show';
  58. render();
  59. });
  60.  
  61. action(function edit() {
  62. this.title = 'User edit';
  63. render();
  64. });
  65.  
  66. action(function update() {
  67. var user = body.User
  68.  
  69. //hash password
  70. var salt = bcrypt.genSaltSync(10);
  71. user.password = bcrypt.hashSync(user.password, salt);
  72.  
  73. //find doc by id
  74. User.findOne({_id: user._id}, function (err, doc) {
  75. if (!err) {
  76. //update doc with user input
  77. for(var key in user) {
  78. if (user.hasOwnProperty(key)) {
  79. doc[key] = user[key];
  80. }
  81. }
  82. //save updates
  83. doc.save(function (err) {
  84. if (!err) {
  85. flash('info', 'Update successful.');
  86. redirect('/users/' + user._id);
  87. }
  88. });
  89. } else {
  90. flash('error', 'Update failed.');
  91. this.title = 'Edit details';
  92. render('edit');
  93. }
  94. }.bind(this));
  95. });
  96.  
  97. action(function destroy() {
  98. User.findOne({_id: this.user._id}, function (err, doc) {
  99. if (err) {
  100. flash('error', 'Can not destroy user');
  101. } else {
  102. doc.remove();
  103. flash('info', 'User successfully removed');
  104. }
  105. send("'" + path_to.users() + "'");
  106. });
  107. });
  108.  
  109. function loadUser() {
  110. User.findOne({_id: params.id}, function (err, user) {
  111. if (err) {
  112. redirect(path_to.users());
  113. } else {
  114. this.user = user;
  115. next();
  116. }
  117. }.bind(this));
  118. }
  119.  
  120. function loadGroups() {
  121. Group.find({}, function (err, groups){
  122. this.groups = groups;
  123. next();
  124. }.bind(this));
  125. }
Add Comment
Please, Sign In to add comment