Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const bcrypt = require('bcrypt');
- const redis = require('redis');
- var PersistService = class {
- constructor() {
- this.client = redis.createClient(
- process.env.REDIS_URL || 'redis://127.0.0.1:6379');
- }
- create_user(user, password) {
- var self = this;
- return self.client.hlen('users', function(err, userlength) {
- const role = userlength == 0 ? 'admin' : 'user';
- const valido = userlength == 0 ? '1' : '0';
- bcrypt.hash(password, 10, function(err, hash){
- self.client.hmset(
- 'users',
- user,
- JSON.stringify(
- {'password': hash, 'valido': valido, 'role': role} ));
- });
- });
- }
- set_user(user, valido){
- var self = this;
- let keys;
- let password;
- let role;
- let datos;
- let data;
- let map;
- this.get_all_users(
- function(err, reply) {
- keys = Object.keys(reply);
- datos = Object.values(reply);
- data = datos.map(function(element){
- return JSON.parse(element);
- });
- map = keys.map( function(x, i){
- return {"user": x, "passwd": data[i].password, "valido": data[i].valido, "role": data[i].role};
- }.bind(this));
- map.forEach(function(element) {
- if(element.user == user){
- password = element.passwd;
- role = element.role;
- self.client.hmset(
- 'users',
- user,
- JSON.stringify(
- {'password': password, 'role': role, 'valido': valido } ));
- }
- });
- });
- }
- validate_user(user){
- this.set_user(user, '1');
- }
- deny_user(user){
- this.set_user(user, '0');
- }
- get_all_users(callback) {
- return this.client.hgetall('users', callback);
- }
- }
- module.exports = PersistService;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement