/// <summary> /// Takes username and hashed password /// returns new Session for user /// </summary> /// <param name="username">username for user to log in</param> /// <param name="password">hashed password for user</param> /// <returns>User session</returns> public Session authenticate(string username, string password) { string message = ""; AccountRegistry accountRegistryInstance = AccountRegistry.Instance; User user = findUser(accountRegistryInstance, username); if (user != null) { if (user.validatePassword(password, ref message)) { return(new Session(user)); } } if (message == "") { message = "Username or password incorrect"; } return(new Session(null, message)); }
/// <summary> /// return user with username from accountRegistry /// </summary> /// <param name="accountRegistry">Account registry instance</param> /// <param name="username">username to search for</param> /// <returns>User in account registry with given username</returns> public User findUser(AccountRegistry accountRegistry, string username) { return(accountRegistry.users.Find(x => x.getUsername().CompareTo(username) == 0)); }