Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }