Example #1
0
        /// <summary>
        /// Register user on site
        /// </summary>
        /// <param name="userIdentity">user Identity</param>
        /// <returns>New User</returns>
        private bool Register(IIdentity userIdentity)
        {
            using (new Service.PerformanceMonitor())
            {
                if (userIdentity.IsAuthenticated)
                {
                    var identity = (IClaimsIdentity)userIdentity;

                    var register = new RegisterModel()
                    {
                        Email          = User.Identity.EmailAddress(),
                        NameIdentifier = User.Identity.NameIdentifier(),
                        UserName       = identity.Name,
                    };

                    var      source = new DomainSource();
                    UserData user   = null;
                    if (!string.IsNullOrWhiteSpace(register.NameIdentifier) && null != (user = source.GetUserByNameIdentifier(ServerConfiguration.ApplicationIdentifier, register.NameIdentifier)))
                    {
                        user.LastLoggedInOn = DateTime.UtcNow;
                        user.LastActivityOn = DateTime.UtcNow;

                        source.Update(user);
                    }
                    else if (!string.IsNullOrWhiteSpace(register.Email) && null != (user = source.GetUserByEmail(ServerConfiguration.ApplicationIdentifier, register.Email)))
                    {
                        user.LastLoggedInOn = DateTime.UtcNow;
                        user.LastActivityOn = DateTime.UtcNow;
                        user.NameIdentifier = register.NameIdentifier;

                        source.Update(user);
                    }
                    else
                    {
                        var provider = new TableMembershipProvider();
                        MembershipCreateStatus status;
                        provider.CreateUser(register.UserName, Guid.NewGuid().ToString(), register.Email, null, null, true, register.NameIdentifier, out status);
                        if (status == MembershipCreateStatus.Success)
                        {
                            log.Log("New user signed up.");
                            return(true);
                        }
                        else
                        {
                            log.Log("New user failed to signed up; status: '{0}'".FormatWithCulture(status));
                        }
                    }
                }
            }

            return(false);
        }
        private bool Login(GitHubProfile profile)
        {
            var newUser  = false;
            var register = new RegisterModel()
            {
                Email          = profile.Email,
                NameIdentifier = string.Format("github{0}", profile.Id),
                UserName       = profile.Name,
            };

            var      source = new DomainSource();
            UserData user   = null;

            if (!string.IsNullOrWhiteSpace(register.NameIdentifier) && null != (user = source.GetUserByNameIdentifier(Application.Default.Identifier, register.NameIdentifier)))
            {
                user.LastLoggedInOn = DateTime.UtcNow;
                user.LastActivityOn = DateTime.UtcNow;

                source.Update(user);
            }
            else if (!string.IsNullOrWhiteSpace(register.Email) && null != (user = source.GetUserByEmail(Application.Default.Identifier, register.Email)))
            {
                user.LastLoggedInOn = DateTime.UtcNow;
                user.LastActivityOn = DateTime.UtcNow;
                user.NameIdentifier = register.NameIdentifier;

                source.Update(user);
            }
            else
            {
                var provider = new TableMembershipProvider();
                MembershipCreateStatus status;
                provider.CreateUser(register.UserName, Guid.NewGuid().ToString(), register.Email, null, null, true, register.NameIdentifier, out status);
                if (status == MembershipCreateStatus.Success)
                {
                    log.Log("New user signed up.");
                    newUser = true;
                }
                else
                {
                    log.Log(string.Format("New user failed to signed up; status: '{0}'", status));
                }
            }

            FormsAuthentication.SetAuthCookie(register.Email, true);

            return(newUser);
        }
        public void UpdateInvalidPasswordLastChangedOn()
        {
            var source = new DomainSource();
            var user   = User();

            user.PasswordLastChangedOn = DateTime.UtcNow.AddDays(1);
            source.Update(user);
        }
        public void UpdateInvalidLastLockedOutOn()
        {
            var source = new DomainSource();
            var user   = User();

            user.LastLockedOutOn = DateTime.UtcNow.AddDays(1);
            source.Update(user);
        }
        public void UpdateInvalidRoleValuePositive()
        {
            var source = new DomainSource();
            var user   = User();

            user.RoleValue = 2;
            source.Update(user);
        }
        public void UpdateInvalidPartitionKey()
        {
            var source = new DomainSource();
            var user   = User();

            user.PartitionKey = StringHelper.NullEmptyWhiteSpace();
            source.Update(user);
        }
        public void UpdateInvalidNameIdentifier()
        {
            var source = new DomainSource();
            var user   = User();

            user.NameIdentifier = StringHelper.NullEmptyWhiteSpace();
            source.Update(user);
        }
        public void UpdateInvalidRoleValueNegative()
        {
            var    source = new DomainSource();
            var    user   = User();
            Random random = new Random();

            user.RoleValue = random.Next(-1);
            source.Update(user);
        }
        public void UpdateUser()
        {
            var source = new DomainSource();
            var user   = User();

            source.Insert(user);

            var saved = source.GetUserById(user.ApplicationId, user.Id);

            Assert.IsNotNull(saved);
            Assert.AreEqual <DateTime>(saved.CreatedOn, user.CreatedOn);
            Assert.AreEqual <DateTime>(saved.LastLoggedInOn, user.LastLoggedInOn);
            Assert.AreEqual <DateTime>(saved.LastActivityOn, user.LastActivityOn);
            Assert.AreEqual <DateTime>(saved.PasswordLastChangedOn, user.PasswordLastChangedOn);
            Assert.AreEqual <string>(saved.Email, user.Email);
            Assert.AreEqual <string>(saved.OpenId, user.OpenId);
            Assert.AreEqual <string>(saved.UserName, user.UserName);
            Assert.AreEqual <int>(saved.RoleValue, user.RoleValue);
            Assert.AreEqual <bool>(saved.IsApproved, user.IsApproved);
            Assert.AreEqual <bool>(saved.IsLockedOut, user.IsLockedOut);
            Assert.AreEqual <DateTime>(saved.LastLockedOutOn, user.LastLockedOutOn);

            var preUpdate = user;

            preUpdate.LastLoggedInOn        = DateTime.UtcNow.AddHours(-34);
            preUpdate.IsLockedOut           = true;
            preUpdate.IsApproved            = false;
            preUpdate.LastActivityOn        = DateTime.UtcNow.AddHours(-88);
            preUpdate.Email                 = StringHelper.ValidString();
            preUpdate.OpenId                = StringHelper.ValidString();
            preUpdate.PasswordLastChangedOn = DateTime.UtcNow.AddHours(-22);

            source.Update(preUpdate);

            var updated = source.GetUserById(user.ApplicationId, user.Id);

            Assert.IsNotNull(preUpdate);
            Assert.AreEqual <DateTime>(preUpdate.CreatedOn, updated.CreatedOn);
            Assert.AreEqual <DateTime>(preUpdate.LastLoggedInOn.Date, updated.LastLoggedInOn.Date);
            Assert.AreEqual <DateTime>(preUpdate.LastActivityOn.Date, updated.LastActivityOn.Date);
            Assert.AreEqual <DateTime>(preUpdate.PasswordLastChangedOn.Date, updated.PasswordLastChangedOn.Date);
            Assert.AreEqual <string>(preUpdate.Email, updated.Email);
            Assert.AreEqual <string>(preUpdate.OpenId, updated.OpenId);
            Assert.AreEqual <string>(preUpdate.UserName, updated.UserName);
            Assert.AreEqual <int>(preUpdate.RoleValue, updated.RoleValue);
            Assert.AreEqual <bool>(preUpdate.IsApproved, updated.IsApproved);
            Assert.AreEqual <bool>(preUpdate.IsLockedOut, updated.IsLockedOut);
            Assert.AreEqual <DateTime>(preUpdate.LastLockedOutOn, updated.LastLockedOutOn);
        }
        /// <summary>
        /// Get User
        /// </summary>
        /// <param name="username">Open Id</param>
        /// <param name="userIsOnline">User Is Online</param>
        /// <returns>Membership User</returns>
        public override MembershipUser GetUser(string username, bool userIsOnline)
        {
            using (new PerformanceMonitor())
            {
                var user = source.GetUserByUserName(Application.Default.Identifier, username);

                MembershipUser member = null;
                if (null != user)
                {
                    if (!user.IsApproved)
                    {
                        throw new InvalidOperationException("User is not approved.");
                    }
                    else if (user.IsLockedOut)
                    {
                        throw new InvalidOperationException("User is locked out.");
                    }
                    else
                    {
                        member = new MembershipUser(ProviderName, user.UserName, user.NameIdentifier, user.Email, null, null, user.IsApproved, user.IsLockedOut, user.CreatedOn, user.LastLoggedInOn, user.LastActivityOn, user.PasswordLastChangedOn, user.LastLockedOutOn);

                        user.LastLoggedInOn = DateTime.UtcNow;
                    }

                    user.LastActivityOn = DateTime.UtcNow;

                    source.Update(user);
                }
                else
                {
                    logger.Log("User was not found.");
                }

                return(member);
            }
        }
Example #11
0
        public ActionResult Profile(FormCollection collection)
        {
            using (new Service.PerformanceMonitor())
            {
                try
                {
                    var preference = new UserPreference()
                    {
                        Application = Application.Current,
                        User        = User.Identity.Data(),
                    };

                    var timeZoneId = collection["TimeZone.Id"];
                    preference               = userCore.Get(preference);
                    preference.TimeZone      = TimeZoneInfo.FindSystemTimeZoneById(timeZoneId);
                    preference.TwitterHandle = collection["TwitterHandle"];
                    preference.GitHubHandle  = collection["GitHubHandle"];
                    preference.AbcHandle     = collection["AbcHandle"];
                    preference.Country       = collection["Country"];
                    preference.City          = collection["City"];
                    userCore.Save(preference);

                    var source = new DomainSource();

                    var user = source.GetUserByNameIdentifier(Application.Current.Identifier, User.Identity.NameIdentifier());
                    user.Email          = collection["Email"];
                    user.UserName       = collection["UserName"];
                    user.LastActivityOn = DateTime.UtcNow;

                    source.Update(user);
                }
                catch (Exception ex)
                {
                    log.Log(ex, EventTypes.Warning, (int)Fault.Unknown);
                }

                return(this.Profile());
            }
        }
        public void UpdateNullUserData()
        {
            var source = new DomainSource();

            source.Update(null);
        }