Advertisement
Guest User

Untitled

a guest
Mar 10th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.52 KB | None | 0 0
  1. var express = require('express');
  2. var router = express.Router();
  3. var usuario = require('./../models').Usuario;
  4. var tipoUsuario = require('./../models').TipoUsuario
  5. var pass = require('pwd');
  6. var jwt = require('jsonwebtoken');
  7. var crypto = require("crypto");
  8. var querystring = require('querystring');
  9. var request = require('request')
  10. var mime = require('mime');
  11. var secret = 'supersecret';
  12. var recaptcha = require('../config/recaptcha.json')[process.env.NODE_ENV];
  13. var aws = require('aws-sdk');
  14. var awsConfig = require('../config/aws.json')
  15. aws.config = new aws.Config(awsConfig);
  16.  
  17. router.route('/getSignedURL/:fileName')
  18. .get(function(req, res) {
  19.  
  20.  
  21. console.dir(aws.config)
  22. // ---------------------------------
  23. // now say you want fetch a URL for an object named `objectName`
  24. var s3 = new aws.S3();
  25. var contentType = mime.lookup(req.params.fileName);
  26. var s3_params = {
  27. Bucket: "arca",
  28. Key: req.params.fileName,
  29. Expires: 120,
  30. ACL: 'public-read',
  31. Body: '',
  32. ContentType: contentType
  33. };
  34. s3.getSignedUrl('putObject', s3_params, function (err, signedUrl) {
  35. res.send({url:signedUrl,contentType:contentType});
  36. });
  37.  
  38.  
  39. })
  40. router.route('/login')
  41. .post(function(req, res) {
  42. usuario.getUsuario(req.body.usuario).then(function(usuarioResult){
  43. if(usuarioResult){
  44. pass.hash(req.body.password, usuarioResult.salt, function(err, hash){
  45.  
  46. if(err){
  47. res.status(500);
  48. res.send(err)
  49. }
  50. if (usuarioResult.hash == hash) {
  51.  
  52. var result = usuarioResult.get();
  53. var tokenInfo = {id: result.id, rol: result.rol,AgenciumId:result.AgenciumId}
  54. delete result.hash;
  55. delete result.salt;
  56. var resultToken = JSON.parse(JSON.stringify(tokenInfo));;
  57. console.dir(resultToken);
  58. var token = jwt.sign(resultToken, secret, {
  59. expiresIn: "1y",
  60. noTimestamp:true
  61. });
  62. if(req.body.desarrollo){
  63. res.json({
  64. user:result,
  65. token: token
  66. });
  67. }else{
  68. res.cookie('auth', token, { /*expires: new Date(Date.now() + 1440*60),*/ httpOnly: true });
  69. res.send(result);
  70. }
  71.  
  72. }else {
  73. res.status(401);
  74. res.send("401");
  75. }
  76. })
  77. }else {
  78. res.status(404);
  79. res.send("404");
  80. }
  81. });
  82. });
  83.  
  84. router.route('/chkLoggedIn')
  85. .get(function(req, res) {
  86. res.status(200);
  87. res.send("logueado");
  88. });
  89.  
  90. router.route('/crearUsuario')
  91. .post(function(req, res) {
  92. var nuevoUsuario = req.body.usuario;
  93. var userDecoded = req.usuario;
  94. var nuevoRol = nuevoUsuario.rol;
  95. var rolCreador = userDecoded.rol;
  96. nuevoUsuario.AgenciumId = req.usuario.AgenciumId;
  97.  
  98. var puedeCrear = usuario.tienePermiso(rolCreador,nuevoRol)
  99. if(puedeCrear){
  100. nuevoUsuario.password = nuevoUsuario.password || "123456"
  101. pass.hash(nuevoUsuario.password, function (err, salt, hash) {
  102. if (err) {
  103. res.status(500);
  104. res.send(err);
  105. }
  106. nuevoUsuario.salt = salt;
  107. nuevoUsuario.hash = hash;
  108. usuario.build(nuevoUsuario).save().then(function (result) {
  109. res.send(result);
  110. }).catch(function (error) {
  111. console.dir(error)
  112. if (error.name == 'SequelizeUniqueConstraintError') {
  113. res.status(409);
  114. res.send(error);
  115. }
  116. })
  117.  
  118.  
  119. });
  120. }
  121. else{
  122. res.status(412);
  123. console.log("error de permisos")
  124. res.send("Error de permisos");
  125. return;
  126. }
  127.  
  128. });
  129.  
  130. router.route('/logout')
  131. .post(function(req, res) {
  132. if(req.user){
  133. delete req.user;
  134. }
  135. res.clearCookie('auth');
  136. res.status(200);
  137. res.send("Deslogueo exitoso");
  138. });
  139.  
  140. router.route('/register')
  141. .post(function(req,res) {
  142.  
  143. if (req.cookies.auth) {
  144. res.status(403);
  145. res.send("Deslogueate primero");
  146. return;
  147. }
  148. var usuarioInfo = req.body.usuario;
  149. usuario.getUsuario(usuarioInfo.cedula).then(function(usuarioResult){
  150.  
  151. if(usuarioResult){// ya hay un usuario registrado
  152. res.status(412);
  153. res.send("Ese usuario ya esta registrado");
  154. return;
  155. }
  156.  
  157.  
  158. pass.hash(usuarioInfo.password, function (err, salt, hash) {
  159. if (err) {
  160. res.status(500);
  161. res.send(err);
  162. }
  163.  
  164. usuarioInfo.salt = salt;
  165. usuarioInfo.hash = hash;
  166. usuarioInfo.rol = "agendador";
  167.  
  168.  
  169. var usr = usuario.build(usuarioInfo).save().then(function (result) {
  170. var result = {
  171. id: result.get('id'),
  172. username: result.get('username')
  173. };
  174.  
  175. res.send(result);
  176. }).catch(function (error) {
  177. console.dir(error)
  178. if (error.name == 'SequelizeUniqueConstraintError') {
  179. res.status(409);
  180. res.send(error);
  181. }
  182. })
  183.  
  184. });
  185. })
  186.  
  187. })
  188.  
  189. module.exports = router;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement