public override MembershipCreateStatus RegisterUser(RegistrationViewModel viewModel) { MembershipCreateStatus createStatus = base.RegisterUser(viewModel); //do your own stuff here if (createStatus == MembershipCreateStatus.Success) { JXTNext_MemberRegister memberReg = new JXTNext_MemberRegister { Email = viewModel.Email, FirstName = viewModel.Profile.Keys.Contains("FirstName") ? viewModel.Profile["FirstName"] : null, LastName = viewModel.Profile.Keys.Contains("LastName") ? viewModel.Profile["LastName"] : null, Password = viewModel.Password }; bool registerSuccess = _businessLogicsConnector.MemberRegister(memberReg, out string errorMessage); if (!registerSuccess) { //can we delete? createStatus = MembershipCreateStatus.ProviderError; } } return(createStatus); }
public bool MemberRegister(IMemberRegister memberDetails, out string errorMessage) { JXTNext_MemberRegister regRequest = memberDetails as JXTNext_MemberRegister; //convert with mapper dynamic apiObj = _memberMapper.Register_ConvertToAPIEntity <JXTNext_MemberRegister>(regRequest); ConnectorPostRequest connectorRequest = new ConnectorPostRequest(HTTP_Requests_MaxWaitTime) { HeaderValues = base.HTTP_Request_HeaderValues, Data = apiObj, TargetUri = new Uri(CONFIG_DataAccessTarget + $"/api/member/register") }; ConnectorResponse response = JXTNext.Common.API.Connector.Post(connectorRequest); if (response.Success) { errorMessage = null; return(true); } errorMessage = null; return(response.Success); }
/// <summary> /// Authenticate a user by email address. /// </summary> /// <param name="emailAddress"></param> /// <returns></returns> private bool AuthenticateUser(string emailAddress) { // check user exist in the JXT Next database Telerik.Sitefinity.Security.Model.User existingUser = SitefinityHelper.GetUserByEmail(emailAddress); var memberResponse = _blConnector.GetMemberByEmail(emailAddress); if (memberResponse.Member == null) { 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 = emailAddress, FirstName = fName.ToString(), LastName = lName.ToString(), Password = existingUser.Password }; if (_blConnector.MemberRegister(memberReg, out string errorMessage)) { Log.Write("User created JXT next DB" + existingUser.Email, ConfigurationPolicy.ErrorLog); } } // end of the code for the user check in the JXT Next DB var userManager = UserManager.GetManager(); SecurityManager.AuthenticateUser(userManager.Provider.Name, emailAddress, false, out User user); return(user != null); }
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); }
public dynamic Register_ConvertToAPIEntity <T>(T registerDetails) { JXTNext_MemberRegister jxtRegDetails = registerDetails as JXTNext_MemberRegister; //do the assignment from the local register model to API dynamic apiObj = new { firstName = jxtRegDetails.FirstName, lastName = jxtRegDetails.LastName, email = jxtRegDetails.Email, password = jxtRegDetails.Password }; return(apiObj); }
//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 UserCreating(UserCreating eventinfo) { UserProfileManager userProfileManager = UserProfileManager.GetManager(); SitefinityProfile profile = userProfileManager.GetUserProfile(eventinfo.User.Id, typeof(SitefinityProfile).FullName) as SitefinityProfile; JXTNext_MemberRegister memberReg = new JXTNext_MemberRegister { Email = eventinfo.Email, FirstName = profile.FirstName, LastName = profile.LastName, Password = eventinfo.User.FirstName }; bool registerSuccess = _businessLogicsConnector.MemberRegister(memberReg, out string errorMessage); if (!registerSuccess) { //eventinfo.IsApproved = false; } }
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; } }
public string GetOverrideEmail(ref JobApplicationStatus status, ref ApplicantInfo applicantInfo, bool isSocialMedia = false) { string ovverideEmail = null; if (SitefinityHelper.IsUserLoggedIn()) // User already logged in { var currUser = SitefinityHelper.GetUserById(ClaimsManager.GetCurrentIdentity().UserId); if (currUser != null) { Log.Write("User is already logged In " + currUser.Email, ConfigurationPolicy.ErrorLog); return(currUser.Email); } } // User not looged in if (!string.IsNullOrEmpty(applicantInfo.Email)) { Telerik.Sitefinity.Security.Model.User existingUser = SitefinityHelper.GetUserByEmail(applicantInfo.Email); if (existingUser != null) { #region Entered Email exists in Sitefinity User list Log.Write("User is already exists in portal " + existingUser.Email, ConfigurationPolicy.ErrorLog); ovverideEmail = existingUser.Email; // check user exists in the JXT next DB var memberResponse = _blConnector.GetMemberByEmail(applicantInfo.Email); if (memberResponse.Member == null) { 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 }; if (_blConnector.MemberRegister(memberReg, out string errorMessage)) { Log.Write("User created JXT next DB" + existingUser.Email, ConfigurationPolicy.ErrorLog); } } return(ovverideEmail); #endregion } else { #region Entered email does not exists in sitefinity User list var membershipCreateStatus = SitefinityHelper.CreateUser(applicantInfo.Email, applicantInfo.Password, applicantInfo.FirstName, applicantInfo.LastName, applicantInfo.Email, applicantInfo.PhoneNumber, null, null, true, true); applicantInfo.IsNewUser = true; if (membershipCreateStatus != MembershipCreateStatus.Success) { Log.Write("User is created in portal " + existingUser.Email, ConfigurationPolicy.ErrorLog); status = JobApplicationStatus.NotAbleToCreateUser; return(ovverideEmail); } else { //instantiate the Sitefinity user manager //if you have multiple providers you have to pass the provider name as parameter in GetManager("ProviderName") in your case it will be the asp.net membership provider user UserManager userManager = UserManager.GetManager(); if (userManager.ValidateUser(applicantInfo.Email, applicantInfo.Password)) { //if you need to get the user instance use the out parameter Telerik.Sitefinity.Security.Model.User userToAuthenticate = null; SecurityManager.AuthenticateUser(userManager.Provider.Name, applicantInfo.Email, applicantInfo.Password, false, out userToAuthenticate); if (userToAuthenticate == null) { status = JobApplicationStatus.NotAbleToLoginCreatedUser; return(ovverideEmail); } else { ovverideEmail = userToAuthenticate.Email; } } } #endregion } } return(ovverideEmail); }