public bool TryLoginCredentials(string username, string password) { CollectorUser user = _wrapper.UserRepository.GetOne <CollectorUser>(f => f.Username == username); if (user == null) { long usercount = _wrapper.UserRepository.Count <CollectorUser>(c => c.Id != null); if (usercount == 0) { CollectorUser newUser = new CollectorUser(); newUser.PasswordHash = HashPassword(password); newUser.Username = username; newUser.IsOrganizationAdmin = true; newUser.OrganizationRoles = new List <string>(); newUser.OrganizationRoles.Add("Admin"); _wrapper.UserRepository.AddOne <CollectorUser>(newUser); user = newUser; } else { return(false); } } if (VerifyPassword(password, user.PasswordHash)) { return(true); } return(false); }
/// <summary> /// Creates a new web session and return it for a given user. /// </summary> /// <param name="username">The username for which the session is for.</param> /// <returns>A WebSession</returns> public WebSession CreateWebSession(string username) { WebSession webSession = new WebSession(); CollectorUser reportUser = _wrapper.UserRepository.GetOne <CollectorUser>(f => f.Username == username); if (reportUser != null) { webSession.Expiry = DateTime.UtcNow.AddDays(14); webSession.ReportUserId = reportUser.Id; webSession.ForReportUsername = username; webSession.SessionCookie = GenerationHelper.CreateRandomString(true, true, false, 32); _wrapper.WebSessionRepository.AddOne <WebSession>(webSession); } return(webSession); }