public User LoginUser(string pinValue)
        {
            Debug.Assert(_applicationState.CurrentLoggedInUser == User.Nobody);
            var user = CheckPinCodeStatus(pinValue) == LoginStatus.CanLogin ? GetUserByPinCode(pinValue) : User.Nobody;

            _applicationStateSetter.SetCurrentLoggedInUser(user);
            Reset();
            if (user != User.Nobody)
            {
                user.PublishEvent(EventTopicNames.UserLoggedIn);
                _applicationState.NotifyEvent(RuleEventNames.UserLoggedIn, new { User = user, UserName = user.Name, RoleName = user.UserRole.Name });
            }
            return(user);
        }
Exemple #2
0
        /// <summary>Logs in a the given Horeb user and updates the last-activity date/time stamp if sucessful.</summary>
        /// <param name="username">The user name to log-in.</param>
        /// <param name="logInStatus">The status of the log-in action.</param>
        /// <returns> True if the user was logged on successfully. False otherwise.</returns>
        /// <exception cref="T:System.ArgumentNullException">
        public bool Login(string username, out LoginStatus logInStatus)
        {
            SecureUtility.CheckParameter(ref username, true, false, true, 256, nameof(username));
            if (!_userDao.DoesUserExist(username))
            {
                logInStatus = LoginStatus.UserDoesNotExist;
                return(false);
            }
            HorebUser user = _userDao.Find(username);

            _userDao.UpdateUserActivity(user.Id);
            _applicationStateSetter.SetCurrentLoggedInUser(username);
            logInStatus = LoginStatus.LoggedIn;
            return(true);
        }