/// <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); } }
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); }