/// <summary> /// Adds a user in the signup stage /// If the user is in the removed state, move the user back to the signed up state /// </summary> /// <param name="user">The user to signup for the event</param> /// <returns></returns> public bool RegisterUser(User user) { if (user == null) { throw new ArgumentNullException("user", "user cant be null"); } var eventArgs = new RegisterUserEventArgs() { EventItem = this, User = user }; Event.RaiseEvent("eventmanager:registeruser", this, eventArgs); return(!eventArgs.Error); }
/// <summary> /// Create new user /// </summary> /// <param name="newUser"></param> /// <returns></returns> public MembershipCreateStatus CreateUser(MembershipUser newUser) { newUser = SanitizeUser(newUser); var settings = _settingsService.GetSettings(false); var status = MembershipCreateStatus.Success; var e = new RegisterUserEventArgs { User = newUser }; EventManager.Instance.FireBeforeRegisterUser(this, e); if (e.Cancel) { status = e.CreateStatus; } else { if (string.IsNullOrWhiteSpace(newUser.UserName)) { status = MembershipCreateStatus.InvalidUserName; } // get by username if (GetUser(newUser.UserName, true) != null) { status = MembershipCreateStatus.DuplicateUserName; } // Add get by email address if (GetUserByEmail(newUser.Email, true) != null) { status = MembershipCreateStatus.DuplicateEmail; } if (string.IsNullOrWhiteSpace(newUser.Password)) { status = MembershipCreateStatus.InvalidPassword; } if (status == MembershipCreateStatus.Success) { // Hash the password var salt = StringUtils.CreateSalt(AppConstants.SaltSize); var hash = StringUtils.GenerateSaltedHash(newUser.Password, salt); newUser.Password = hash; newUser.PasswordSalt = salt; newUser.Roles = new List <MembershipRole> { settings.NewMemberStartingRole }; // Set dates newUser.CreateDate = newUser.LastPasswordChangedDate = DateTime.UtcNow; newUser.LastLockoutDate = (DateTime)SqlDateTime.MinValue; newUser.LastLoginDate = DateTime.UtcNow; newUser.IsLockedOut = false; var manuallyAuthoriseMembers = settings.ManuallyAuthoriseNewMembers; var memberEmailAuthorisationNeeded = settings.NewMemberEmailConfirmation == true; if (manuallyAuthoriseMembers || memberEmailAuthorisationNeeded) { newUser.IsApproved = false; } else { newUser.IsApproved = true; } // url generator newUser.Slug = ServiceHelpers.GenerateSlug(newUser.UserName, GetUserBySlugLike(ServiceHelpers.CreateUrl(newUser.UserName)), null); try { Add(newUser); if (settings.EmailAdminOnNewMemberSignUp) { var sb = new StringBuilder(); sb.Append( $"<p>{string.Format(_localizationService.GetResourceString("Members.NewMemberRegistered"), settings.ForumName, settings.ForumUrl)}</p>"); sb.Append($"<p>{newUser.UserName} - {newUser.Email}</p>"); var email = new Email { EmailTo = settings.AdminEmailAddress, NameTo = _localizationService.GetResourceString("Members.Admin"), Subject = _localizationService.GetResourceString("Members.NewMemberSubject") }; email.Body = _emailService.EmailTemplate(email.NameTo, sb.ToString()); _emailService.SendMail(email); } _activityService.MemberJoined(newUser); EventManager.Instance.FireAfterRegisterUser(this, new RegisterUserEventArgs { User = newUser }); } catch (Exception) { status = MembershipCreateStatus.UserRejected; } } } return(status); }
private void EventManagerInstance_BeforeRegisterUserAllow(object sender, RegisterUserEventArgs args) { args.User.Email = TestString; args.Cancel = false; }
private void EventManagerInstance_AfterRegisterUser(object sender, RegisterUserEventArgs args) { args.User.Email = TestString; }
private void EventManagerInstance_BeforeRegisterUserCancel(object sender, RegisterUserEventArgs args) { args.Cancel = true; }
/// <summary> /// Create new user /// </summary> /// <param name="newUser"></param> /// <returns></returns> public MembershipCreateStatus CreateUser(MembershipUser newUser) { newUser = SanitizeUser(newUser); var status = MembershipCreateStatus.Success; var e = new RegisterUserEventArgs { User = newUser }; EventManager.Instance.FireBeforeRegisterUser(this, e); if (e.Cancel) { status = e.CreateStatus; } else { if (string.IsNullOrEmpty(newUser.UserName)) { status = MembershipCreateStatus.InvalidUserName; } // get by username if (_membershipRepository.GetUser(newUser.UserName) != null) { status = MembershipCreateStatus.DuplicateUserName; } // Add get by email address if (_membershipRepository.GetUserByEmail(newUser.Email) != null) { status = MembershipCreateStatus.DuplicateEmail; } if (string.IsNullOrEmpty(newUser.Password)) { status = MembershipCreateStatus.InvalidPassword; } if (status == MembershipCreateStatus.Success) { // Hash the password var salt = CreateSalt(SaltSize); var hash = GenerateSaltedHash(newUser.Password, salt); newUser.Password = hash; newUser.PasswordSalt = salt; newUser.Roles = new List <MembershipRole> { _settingsRepository.GetSettings().NewMemberStartingRole }; // Set dates newUser.CreateDate = newUser.LastPasswordChangedDate = DateTime.UtcNow; newUser.LastLockoutDate = (DateTime)SqlDateTime.MinValue; newUser.LastLoginDate = DateTime.UtcNow; newUser.IsApproved = !_settingsRepository.GetSettings().ManuallyAuthoriseNewMembers; newUser.IsLockedOut = false; // url generator newUser.Slug = ServiceHelpers.GenerateSlug(newUser.UserName, _membershipRepository.GetUserBySlugLike(ServiceHelpers.CreateUrl(newUser.UserName)), null); try { _membershipRepository.Add(newUser); if (_settingsRepository.GetSettings().EmailAdminOnNewMemberSignUp) { var sb = new StringBuilder(); sb.AppendFormat("<p>{0}</p>", string.Format(_localizationService.GetResourceString("Members.NewMemberRegistered"), _settingsRepository.GetSettings().ForumName, _settingsRepository.GetSettings().ForumUrl)); sb.AppendFormat("<p>{0} - {1}</p>", newUser.UserName, newUser.Email); var email = new Email { EmailTo = _settingsRepository.GetSettings().AdminEmailAddress, EmailFrom = _settingsRepository.GetSettings().NotificationReplyEmail, NameTo = _localizationService.GetResourceString("Members.Admin"), Subject = _localizationService.GetResourceString("Members.NewMemberSubject") }; email.Body = _emailService.EmailTemplate(email.NameTo, sb.ToString()); _emailService.SendMail(email); } _activityService.MemberJoined(newUser); EventManager.Instance.FireAfterRegisterUser(this, new RegisterUserEventArgs { User = newUser }); } catch (Exception) { status = MembershipCreateStatus.UserRejected; } } } return(status); }
public MembershipCreateStatus CreateUser(MembershipUser newUser) { newUser = SanitizeUser(newUser); var settings = _settingsService.GetSettings(false); var status = MembershipCreateStatus.Success; var e = new RegisterUserEventArgs { User = newUser }; //fire event....left off here. Admin 5/5/2016 EventManager.Instance.FireBeforeRegisterUser(this, e); if (e.Cancel) { status = e.CreateStatus; } else { // Add get by email address if (GetUserByEmail(newUser.Email, true) != null) { status = MembershipCreateStatus.DuplicateEmail; } if (string.IsNullOrEmpty(newUser.Password)) { status = MembershipCreateStatus.InvalidPassword; } if (status == MembershipCreateStatus.Success) { // Hash the password var salt = StringUtils.CreateSalt(AppConstants.SaltSize); var hash = StringUtils.GenerateSaltedHash(newUser.Password, salt); newUser.Password = hash; newUser.PasswordSalt = salt; newUser.Roles = new List <MembershipRole> { settings.NewMemberStartingRole }; // Set dates newUser.CreateDate = DateTime.UtcNow; newUser.LastLoginDate = DateTime.UtcNow; //we will need this!.....(I think) //------------------------------- //var manuallyAuthoriseMembers = settings.ManuallyAuthoriseNewMembers; //var memberEmailAuthorisationNeeded = settings.NewMemberEmailConfirmation == true; //if (manuallyAuthoriseMembers || memberEmailAuthorisationNeeded) //{ // newUser.IsApproved = false; //} //else //{ // newUser.IsApproved = true; //} // url generator newUser.Slug = ServiceHelpers.GenerateSlug(newUser.Email, GetUserBySlugLike(ServiceHelpers.CreateUrl(newUser.Email)), null); try { Add(newUser); //if (settings.EmailAdminOnNewMemberSignUp) //{ // var sb = new StringBuilder(); // sb.AppendFormat("<p>{0}</p>", string.Format(_localizationService.GetResourceString("Members.NewMemberRegistered"), settings.ForumName, settings.ForumUrl)); // sb.AppendFormat("<p>{0} - {1}</p>", newUser.UserName, newUser.Email); // var email = new Email // { // EmailTo = settings.AdminEmailAddress, // NameTo = _localizationService.GetResourceString("Members.Admin"), // Subject = _localizationService.GetResourceString("Members.NewMemberSubject") // }; // email.Body = _emailService.EmailTemplate(email.NameTo, sb.ToString()); // _emailService.SendMail(email); //} _activityService.MemberJoined(newUser); EventManager.Instance.FireAfterRegisterUser(this, new RegisterUserEventArgs { User = newUser }); } catch (Exception) { status = MembershipCreateStatus.UserRejected; } } } return(status); }