Advertisement
Guest User

Untitled

a guest
Jun 18th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.19 KB | None | 0 0
  1. const bcrypt = require('bcrypt');
  2. const redis = require('redis');
  3.  
  4.  
  5. var PersistService = class {
  6. constructor() {
  7. this.client = redis.createClient(
  8. process.env.REDIS_URL || 'redis://127.0.0.1:6379');
  9. }
  10.  
  11. create_user(user, password) {
  12. var self = this;
  13. return self.client.hlen('users', function(err, userlength) {
  14. const role = userlength == 0 ? 'admin' : 'user';
  15. const valido = userlength == 0 ? '1' : '0';
  16.  
  17. bcrypt.hash(password, 10, function(err, hash){
  18. self.client.hmset(
  19. 'users',
  20. user,
  21. JSON.stringify(
  22. {'password': hash, 'valido': valido, 'role': role} ));
  23. });
  24. });
  25. }
  26.  
  27. set_user(user, valido){
  28. var self = this;
  29. let keys;
  30. let password;
  31. let role;
  32. let datos;
  33. let data;
  34. let map;
  35. this.get_all_users(
  36. function(err, reply) {
  37. keys = Object.keys(reply);
  38. datos = Object.values(reply);
  39. data = datos.map(function(element){
  40. return JSON.parse(element);
  41. });
  42. map = keys.map( function(x, i){
  43. return {"user": x, "passwd": data[i].password, "valido": data[i].valido, "role": data[i].role};
  44. }.bind(this));
  45. map.forEach(function(element) {
  46. if(element.user == user){
  47. password = element.passwd;
  48. role = element.role;
  49. self.client.hmset(
  50. 'users',
  51. user,
  52. JSON.stringify(
  53. {'password': password, 'role': role, 'valido': valido } ));
  54. }
  55. });
  56. });
  57. }
  58.  
  59. validate_user(user){
  60. this.set_user(user, '1');
  61. }
  62.  
  63. deny_user(user){
  64. this.set_user(user, '0');
  65. }
  66.  
  67. get_all_users(callback) {
  68. return this.client.hgetall('users', callback);
  69. }
  70. }
  71.  
  72. module.exports = PersistService;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement