Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- // This class is used for logins
- class Login {
- constructor(hash) {
- this.sessions = [];
- this.users = [];
- this.passwords = [];
- Object.keys(hash).map(k => ({k, v: hash[k]})).map(e => {
- this.users = this.users.concat([e.k]);
- this.passwords = this.passwords.concat([e.v]);
- });
- }
- login(user, password) {
- if (this.userExists(user)) {
- if (this.checkPassword(user, password)) {
- this.sessions.push(user);
- console.log("Login success!");
- } else {
- console.error('Error password incorrect!');
- }
- } else {
- console.error("Error, usuario: " + user + " no existe!");
- }
- //console.log(this.sessions);
- }
- logout(user) {
- if (this.userExists(user)) {
- let index = this.sessions.indexOf(user);
- if (index != -1) {
- this.sessions.splice(index, 1);
- console.log("Logout success!");
- } else {
- console.error("Error, user:" + user + " no está logeado!");
- }
- } else {
- console.error("Error, usuario no existe!");
- }
- }
- // Usuario existe?
- userExists(user) {
- return (this.users.indexOf(user) != -1);
- }
- // Register user
- registerUser(user, password) {
- let lastIndex = this.users.length;
- this.users[lastIndex] = user;
- this.passwords[lastIndex] = password;
- }
- removeUser(user) {
- let index = this.idx(user, this.users);
- this.users[index] = null;
- this.passwords[index] = null;
- this.users = this.users.filter(user => user !== null);
- this.passwords = this.passwords.filter(password => password !== null);
- }
- checkPassword(user, password) {
- let index = this.users.indexOf(user);
- return this.passwords[index] === password;
- }
- updatePassword(user, oldPassword, newPassword) {
- // Primero vemos si usuario existe
- let index = this.users.indexOf(user);
- if (index !== -1) {
- if (this.passwords[index] === oldPassword) {
- this.passwords[index] = newPassword;
- console.log("Password updated!");
- }else{
- console.error("Error, clave no coincide!")
- }
- } else {
- console.error("Error, usuario: " + user + " no existe!");
- }
- }
- }
- // Gets index of an element in an array
- idx(element, array) {
- let cont=0;
- for (let i of array) {
- if (i === element) {
- return cont;
- }
- cont += 1;
- }
- return cont;
- }
- }
- let registeredUsers = {
- user1: 'pass1',
- user2: 'pass2',
- user3: 'pass3'
- };
- let login = new Login(registeredUsers);
- login.registerUser('user4', 'pass4');
- login.login('user4', 'pass4');
- login.updatePassword('user3', 'pass3', 'pass5');
- login.login('user3', 'pass5');
- login.logout('user4');
- login.logout('user3');
Add Comment
Please, Sign In to add comment