Advertisement
Guest User

Untitled

a guest
Aug 26th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.49 KB | None | 0 0
  1. 'use strict';
  2.  
  3. // This class is used for logins
  4. class Login {
  5. constructor(hash) {
  6. this.sessions = [];
  7. this.users = [];
  8. this.passwords = [];
  9. Object.keys(hash).map(k => ({k, v: hash[k]})).map(e => {
  10. this.users = this.users.concat([e.k]);
  11. this.passwords = this.passwords.concat([e.v]);
  12. });
  13. }
  14.  
  15. logout(user) {
  16. this.sessions.forEach((session, i) => {
  17. if (session === user) {
  18. this.sessions[i] = null;
  19. }
  20. });
  21. this.sessions = this.sessions.filter(session => session !== null);
  22. }
  23.  
  24. // Checks if user exists
  25. userExists(user) {
  26. // Temp variable for storing the user if found
  27. let temp = '';
  28. for (let i of this.users) {
  29. if (i === user) {
  30. temp = user;
  31. }
  32. }
  33. let exists = (temp !== '' && temp === user);
  34. return exists;
  35. }
  36.  
  37. // Register user
  38. registerUser(user, password) {
  39. let lastIndex = this.users.length;
  40. this.users[lastIndex] = user;
  41. this.passwords[lastIndex] = password;
  42. }
  43.  
  44. removeUser(user) {
  45. let index = this.idx(user, this.users);
  46. this.users[index] = null;
  47. this.passwords[index] = null;
  48. this.users = this.users.filter(user => user !== null);
  49. this.passwords = this.passwords.filter(password => password !== null);
  50. }
  51.  
  52. checkPassword(user, password) {
  53. let index = this.idx(user, this.users);
  54. let passwordCorrect = this.passwords[index] === password;
  55. return passwordCorrect;
  56. }
  57.  
  58. updatePassword(user, oldPassword, newPassword) {
  59. // First we check if the user exists
  60. let user1 = '';
  61. for (let i of this.users) {
  62. if (i === user) {
  63. user1 = user;
  64. }
  65. }
  66. if (user1 === user) {
  67. let index = this.idx(user, this.users);
  68. if (this.passwords[index] === oldPassword) {
  69. this.passwords[index] = newPassword;
  70. return true;
  71. }
  72. }
  73. return false;
  74. }
  75.  
  76. login(user, password) {
  77. let index = this.idx(user, this.users);
  78. if (this.passwords[index] === password) {
  79. this.sessions.push(user);
  80. }
  81. }
  82.  
  83. // Gets index of an element in an array
  84. idx(element, array) {
  85. let cont=0;
  86. for (let i of array) {
  87. if (i === element) {
  88. return cont;
  89. }
  90. cont += 1;
  91. }
  92. return cont;
  93. }
  94. }
  95.  
  96. let registeredUsers = {
  97. user1: 'pass1',
  98. user2: 'pass2',
  99. user3: 'pass3'
  100. };
  101.  
  102. let login = new Login(registeredUsers);
  103.  
  104. login.registerUser('user4', 'pass4');
  105. login.login('user4', 'pass4');
  106. login.updatePassword('user3', 'pass3', 'pass5');
  107. login.login('user3', 'pass5');
  108. login.logout('user4');
  109. login.logout('user3');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement