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);
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        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;
            }
        }
Beispiel #9
0
        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);
        }