public override MembershipCreateStatus RegisterUser(RegistrationViewModel viewModel) { var userManager = UserManager.GetManager(this.MembershipProviderName); Telerik.Sitefinity.Security.Model.User user; MembershipCreateStatus status; using (new ElevatedModeRegion(userManager)) { if (this.TryCreateUser(userManager, viewModel, out user, out status)) { userManager.SaveChanges(); this.CreateUserProfiles(user, viewModel.Profile); this.AssignRolesToUser(user); this.ConfirmRegistration(userManager, user); //this.ExecuteUserProfileSuccessfullUpdateActions(); } if (status == MembershipCreateStatus.DuplicateUserName) { IEnumerable <IJobListingMapper> jobListingMappers = new List <IJobListingMapper> { new JXTNext_JobListingMapper() }; IEnumerable <IMemberMapper> memberMappers = new List <IMemberMapper> { new JXTNext_MemberMapper() }; IRequestSession requestSession = new SFEventRequestSession { UserEmail = viewModel.Email }; IBusinessLogicsConnector blConnector = new JXTNextBusinessLogicsConnector(jobListingMappers, memberMappers, requestSession); var res = blConnector.GetMemberByEmail(viewModel.Email); if (res.Member == null) { Telerik.Sitefinity.Security.Model.User existingUser = JXTNext.Sitefinity.Common.Helpers.SitefinityHelper.GetUserByEmail(viewModel.Email); UserProfileManager userProfileManager = UserProfileManager.GetManager(); UserProfile profile = userProfileManager.GetUserProfile(existingUser.Id, typeof(SitefinityProfile).FullName); var fName = Telerik.Sitefinity.Model.DataExtensions.GetValue(profile, "FirstName"); var lName = Telerik.Sitefinity.Model.DataExtensions.GetValue(profile, "LastName"); JXTNext_MemberRegister memberReg = new JXTNext_MemberRegister { Email = existingUser.Email, FirstName = fName.ToString(), LastName = lName.ToString(), Password = existingUser.Password }; blConnector.MemberRegister(memberReg, out string errorMessage); } } } return(status); }
//IBusinessLogicsConnector _blConnector; //public CustomLoginFormModel(IBusinessLogicsConnector blConnector) : base() //{ // _blConnector = blConnector; //} public override LoginFormViewModel Authenticate(LoginFormViewModel input, HttpContextBase context) { input.LoginError = false; var cmsUser = JXTNext.Sitefinity.Common.Helpers.SitefinityHelper.GetUserByEmail(input.UserName); if (cmsUser != null) { IEnumerable <IJobListingMapper> jobListingMappers = new List <IJobListingMapper> { new JXTNext_JobListingMapper() }; IEnumerable <IMemberMapper> memberMappers = new List <IMemberMapper> { new JXTNext_MemberMapper() }; IRequestSession requestSession = new SFEventRequestSession { UserEmail = input.UserName }; IBusinessLogicsConnector connector = new JXTNextBusinessLogicsConnector(jobListingMappers, memberMappers, requestSession); var memberResponse = connector.GetMemberByEmail(input.UserName); if (memberResponse.Member == null) { UserProfileManager userProfileManager = UserProfileManager.GetManager(); UserProfile profile = userProfileManager.GetUserProfile(cmsUser.Id, typeof(SitefinityProfile).FullName); var fName = Telerik.Sitefinity.Model.DataExtensions.GetValue(profile, "FirstName"); var lName = Telerik.Sitefinity.Model.DataExtensions.GetValue(profile, "LastName"); JXTNext_MemberRegister memberReg = new JXTNext_MemberRegister { Email = input.UserName, FirstName = fName.ToString(), LastName = lName.ToString(), Password = input.UserName }; if (connector.MemberRegister(memberReg, out string errorMessage)) { Log.Write($"User created in the JXT DB ", ConfigurationPolicy.ErrorLog); } } } var result = base.Authenticate(input, context); return(input); }
public void ProfileCreated(ProfileCreated eventinfo) { UserManager userManager = UserManager.GetManager(); Telerik.Sitefinity.Security.Model.User user = userManager.GetUser(eventinfo.UserId); UserProfileManager userProfileManager = UserProfileManager.GetManager(); SitefinityProfile profile = userProfileManager.GetUserProfile(user, eventinfo.ProfileType) as SitefinityProfile; // user.ExternalProviderName is null means registrating through normal registration // Otherwise registring through External provider like LinkedIn, Facebook, etc... // In case external provider, we will recieve the password as null but JXTNext Member database table requires // password should not be empty, so generating some random password of 8 characters length. JXTNext_MemberRegister memberReg = new JXTNext_MemberRegister { Email = user.Email, FirstName = profile.FirstName, LastName = profile.LastName, Password = user.ExternalProviderName.IsNullOrEmpty() ? user.Password : GeneralHelper.GeneratePassword(8) }; IEnumerable <IJobListingMapper> jobListingMappers = new List <IJobListingMapper> { new JXTNext_JobListingMapper() }; IEnumerable <IMemberMapper> memberMappers = new List <IMemberMapper> { new JXTNext_MemberMapper() }; IRequestSession requestSession = new SFEventRequestSession { UserEmail = user.Email }; IBusinessLogicsConnector connector = new JXTNextBusinessLogicsConnector(jobListingMappers, memberMappers, requestSession); bool registerSuccess = connector.MemberRegister(memberReg, out string errorMessage); if (!registerSuccess) { //eventinfo.IsApproved = false; } }