Esempio n. 1
0
        public HttpResponseMessage UpdateSslSettings(UpdateSslSettingsRequest request)
        {
            try
            {
                PortalController.UpdatePortalSetting(PortalId, "SSLEnabled", request.SSLEnabled.ToString(), false);
                PortalController.UpdatePortalSetting(PortalId, "SSLEnforced", request.SSLEnforced.ToString(), false);
                PortalController.UpdatePortalSetting(PortalId, "SSLURL", AddPortalAlias(request.SSLURL, PortalId), false);
                PortalController.UpdatePortalSetting(PortalId, "STDURL", AddPortalAlias(request.STDURL, PortalId), false);

                if (UserInfo.IsSuperUser)
                {
                    HostController.Instance.Update("SSLOffloadHeader", request.SSLOffloadHeader);
                }

                DataCache.ClearPortalCache(PortalId, false);

                return(Request.CreateResponse(HttpStatusCode.OK, new { Success = true }));
            }
            catch (Exception exc)
            {
                Logger.Error(exc);
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc));
            }
        }
        public static void LocalizeSitePages(LocalizationProgress progress, int portalId, bool translatePages, string defaultLanguage)
        {
            Task.Factory.StartNew(() =>
            {
                try
                {
                    var languageCount   = LocaleController.Instance.GetLocales(portalId).Count;
                    var languageCounter = 0;

                    var pageList = GetPages(portalId).Where(p => string.IsNullOrEmpty(p.CultureCode)).ToList();

                    if (translatePages)
                    {
                        // populate default language
                        ProcessLanguage(pageList, LocaleController.Instance.GetLocale(defaultLanguage),
                                        defaultLanguage, languageCounter, languageCount, progress);
                    }
                    PublishLanguage(defaultLanguage, portalId, true);

                    PortalController.UpdatePortalSetting(portalId, "ContentLocalizationEnabled", "True");

                    if (translatePages)
                    {
                        // populate other languages
                        pageList = GetPages(portalId).Where(p => p.CultureCode == defaultLanguage).ToList();

                        foreach (var locale in LocaleController.Instance.GetLocales(portalId).Values.Where(l => l.Code != defaultLanguage))
                        {
                            languageCounter++;

                            //add translator role
                            Localization.AddTranslatorRole(portalId, locale);

                            //populate pages
                            ProcessLanguage(pageList, locale, defaultLanguage, languageCounter, languageCount, progress);

                            //Map special pages
                            PortalController.Instance.MapLocalizedSpecialPages(portalId, locale.Code);
                        }
                    }

                    //clear portal cache
                    DataCache.ClearPortalCache(portalId, true);
                    progress.Reset();
                    SaveProgressToFile(progress);
                }
                catch (Exception ex)
                {
                    try
                    {
                        Logger.Error(ex);
                        progress.Reset().Error = ex.ToString();
                        SaveProgressToFile(progress);
                    }
                    catch (Exception)
                    {
                        //ignore
                    }
                }
            });
        }
Esempio n. 3
0
        public UserBasicDto UpdateUserBasicInfo(UserBasicDto userBasicDto, int requestPortalId = -1)
        {
            int            portalId = this.PortalSettings.PortalId;
            PortalSettings requestPortalSettings = this.PortalSettings;

            if (requestPortalId != -1)
            {
                portalId = requestPortalId;
                requestPortalSettings = new PortalSettings(portalId);
            }

            var user = UserController.Instance.GetUser(portalId, userBasicDto.UserId);

            if (user == null)
            {
                throw new ArgumentException("UserNotExist");
            }

            if (userBasicDto.UserId == requestPortalSettings.AdministratorId)
            {
                //Clear the Portal Cache
                DataCache.ClearPortalCache(portalId, true);
            }
            if (user.IsSuperUser)
            {
                DataCache.ClearHostCache(true);
            }
            user.DisplayName = userBasicDto.Displayname;
            user.Email       = userBasicDto.Email;
            user.FirstName   = !string.IsNullOrEmpty(userBasicDto.Firstname) ? userBasicDto.Firstname : user.FirstName;
            user.LastName    = !string.IsNullOrEmpty(userBasicDto.Lastname) ? userBasicDto.Lastname : user.LastName;
            //Update DisplayName to conform to Format
            if (!string.IsNullOrEmpty(requestPortalSettings.Registration.DisplayNameFormat))
            {
                user.UpdateDisplayName(requestPortalSettings.Registration.DisplayNameFormat);
            }
            //either update the username or update the user details

            if (this.CanUpdateUsername(user) && !requestPortalSettings.Registration.UseEmailAsUserName)
            {
                UserController.ChangeUsername(user.UserID, userBasicDto.Username);
                user.Username = userBasicDto.Username;
            }

            //DNN-5874 Check if unique display name is required
            if (requestPortalSettings.Registration.RequireUniqueDisplayName)
            {
                var usersWithSameDisplayName = (List <UserInfo>)MembershipProvider.Instance().GetUsersBasicSearch(portalId, 0, 2, "DisplayName", true, "DisplayName", user.DisplayName);
                if (usersWithSameDisplayName.Any(u => u.UserID != user.UserID))
                {
                    throw new ArgumentException("DisplayNameNotUnique");
                }
            }

            UserController.UpdateUser(portalId, user);

            if (requestPortalSettings.Registration.UseEmailAsUserName && (user.Username.ToLowerInvariant() != user.Email.ToLowerInvariant()))
            {
                UserController.ChangeUsername(user.UserID, user.Email);
            }
            return
                (UserBasicDto.FromUserInfo(UserController.Instance.GetUser(requestPortalSettings.PortalId, userBasicDto.UserId)));
        }
        public override ConsoleResultModel Run()
        {
            try
            {
                var messages = new List <PromptMessage>();
                var portals  = PortalController.Instance.GetPortals();

                if (portals == null || portals.Count == 0)
                {
                    messages.Add(new PromptMessage(LocalizeString("NoPortalsFound")));
                }
                else
                {
                    messages.Add(new PromptMessage(string.Format(LocalizeString("PortalsFound"), portals.Count)));
                }

                foreach (PortalInfo portal in portals)
                {
                    messages.Add(new PromptMessage(string.Format(LocalizeString("ClearingImages"), portal.PortalName)));

                    var folderPath = string.Format("\\Portals\\{0}\\Hotcakes\\Data\\temp\\", portal.PortalID);
                    var fullPath   = System.Web.Hosting.HostingEnvironment.MapPath(folderPath);

                    var tempFolder = new System.IO.DirectoryInfo(fullPath);

                    if (tempFolder != null && tempFolder.Exists)
                    {
                        // delete everything inside of the folder, but leave the folder in place
                        tempFolder.Empty();
                    }
                }

                // clearing DNN CRM cache
                ClientResourceManager.ClearCache();
                messages.Add(new PromptMessage(LocalizeString("ClearedCrmCache")));

                // clearing cache in each portal
                foreach (PortalInfo portal in portals)
                {
                    DataCache.ClearPortalCache(portal.PortalID, true);
                    messages.Add(new PromptMessage(string.Format(LocalizeString("ClearedPortalCache"), portal.PortalName)));
                }

                // clear DNN cache
                DataCache.ClearCache();
                DotNetNuke.Web.Client.ClientResourceManagement.ClientResourceManager.ClearCache();
                messages.Add(new PromptMessage(LocalizeString("ClearedDnnCache")));

                // clear HCC cache here
                CacheManager.ClearAll();
                messages.Add(new PromptMessage(LocalizeString("ClearedHccCache")));

                return(new ConsoleResultModel
                {
                    Data = messages,
                    Output = string.Concat(Constants.OutputPrefix, string.Format(LocalizeString("ClearedCache")))
                });
            }
            catch (Exception e)
            {
                LogError(e);
                return(new ConsoleErrorResultModel(string.Concat(Constants.OutputPrefix, LocalizeString("ErrorOccurred"))));
            }
        }
Esempio n. 5
0
 public static void ClearPortalCache(int portalId)
 {
     DataCache.ClearPortalCache(portalId, true);
 }
        //NOTE - While making modifications in this method, developer must refer to call tree in Register.ascx.cs.
        //Especially Validate and CreateUser methods. Register class inherits from UserModuleBase, which also contains bunch of logic.
        //This method can easily be modified to pass passowrd, display name, etc.
        //It is recommended to write unit tests.
        public UserBasicDto Register(RegisterationDetails registerationDetails)
        {
            var portalSettings = registerationDetails.PortalSettings;
            var username       = registerationDetails.UserName;
            var email          = registerationDetails.Email;

            Requires.NotNullOrEmpty("email", email);

            var disallowRegistration = !registerationDetails.IgnoreRegistrationMode &&
                                       ((portalSettings.UserRegistration == (int)Globals.PortalRegistrationType.NoRegistration) ||
                                        (portalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PrivateRegistration));

            if (disallowRegistration)
            {
                throw new Exception(Localization.GetString("RegistrationNotAllowed", Library.Constants.SharedResources));
            }

            //initial creation of the new User object
            var newUser = new UserInfo
            {
                PortalID = portalSettings.PortalId,
                Email    = email
            };

            //ensure this user doesn't exist
            if (!string.IsNullOrEmpty(username) && UserController.GetUserByName(portalSettings.PortalId, username) != null)
            {
                throw new Exception(Localization.GetString("RegistrationUsernameAlreadyPresent",
                                                           Library.Constants.SharedResources));
            }

            //set username as email if not specified
            newUser.Username = string.IsNullOrEmpty(username) ? email : username;

            if (!string.IsNullOrEmpty(registerationDetails.Password) && !registerationDetails.RandomPassword)
            {
                newUser.Membership.Password = registerationDetails.Password;
            }
            else
            {
                //Generate a random password for the user
                newUser.Membership.Password = UserController.GeneratePassword();
            }

            newUser.Membership.PasswordConfirm = newUser.Membership.Password;

            //set other profile properties
            newUser.Profile.PreferredLocale = new Localization().CurrentUICulture;
            newUser.Profile.InitialiseProfile(portalSettings.PortalId);
            newUser.Profile.PreferredTimeZone = portalSettings.TimeZone;

            //derive display name from supplied firstname, lastname or from email
            if (!string.IsNullOrEmpty(registerationDetails.FirstName) &&
                !string.IsNullOrEmpty(registerationDetails.LastName))
            {
                newUser.DisplayName = registerationDetails.FirstName + " " + registerationDetails.LastName;
                newUser.FirstName   = registerationDetails.FirstName;
                newUser.LastName    = registerationDetails.LastName;
            }
            else
            {
                newUser.DisplayName = newUser.Email.Substring(0, newUser.Email.IndexOf("@", StringComparison.Ordinal));
            }

            //read all the user account settings
            var settings = UserController.GetUserSettings(portalSettings.PortalId);

            //Verify Profanity filter
            if (GetBoolSetting(settings, "Registration_UseProfanityFilter"))
            {
                var portalSecurity = new PortalSecurity();
                if (!portalSecurity.ValidateInput(newUser.Username, PortalSecurity.FilterFlag.NoProfanity) || !portalSecurity.ValidateInput(newUser.DisplayName, PortalSecurity.FilterFlag.NoProfanity))
                {
                    throw new Exception(Localization.GetString("RegistrationProfanityNotAllowed",
                                                               Library.Constants.SharedResources));
                }
            }

            //Email Address Validation
            var emailValidator = GetStringSetting(settings, "Security_EmailValidation");

            if (!string.IsNullOrEmpty(emailValidator))
            {
                var regExp  = RegexUtils.GetCachedRegex(emailValidator, RegexOptions.IgnoreCase | RegexOptions.Multiline);
                var matches = regExp.Matches(newUser.Email);
                if (matches.Count == 0)
                {
                    throw new Exception(Localization.GetString("RegistrationInvalidEmailUsed",
                                                               Library.Constants.SharedResources));
                }
            }

            //Excluded Terms Verification
            var excludeRegex = GetExcludeTermsRegex(settings);

            if (!string.IsNullOrEmpty(excludeRegex))
            {
                var regExp  = RegexUtils.GetCachedRegex(excludeRegex, RegexOptions.IgnoreCase | RegexOptions.Multiline);
                var matches = regExp.Matches(newUser.Username);
                if (matches.Count > 0)
                {
                    throw new Exception(Localization.GetString("RegistrationExcludedTermsUsed",
                                                               Library.Constants.SharedResources));
                }
            }

            //User Name Validation
            var userNameValidator = GetStringSetting(settings, "Security_UserNameValidation");

            if (!string.IsNullOrEmpty(userNameValidator))
            {
                var regExp  = RegexUtils.GetCachedRegex(userNameValidator, RegexOptions.IgnoreCase | RegexOptions.Multiline);
                var matches = regExp.Matches(newUser.Username);
                if (matches.Count == 0)
                {
                    throw new Exception(Localization.GetString("RegistrationInvalidUserNameUsed",
                                                               Library.Constants.SharedResources));
                }
            }

            //ensure unique username
            var user = UserController.GetUserByName(portalSettings.PortalId, newUser.Username);

            if (user != null)
            {
                if (GetBoolSetting(settings, "Registration_UseEmailAsUserName"))
                {
                    throw new Exception(UserController.GetUserCreateStatus(UserCreateStatus.DuplicateEmail));
                }

                var    i        = 1;
                string userName = null;
                while (user != null)
                {
                    userName = newUser.Username + "0" + i.ToString(CultureInfo.InvariantCulture);
                    user     = UserController.GetUserByName(portalSettings.PortalId, userName);
                    i++;
                }
                newUser.Username = userName;
            }

            //ensure unique display name
            if (GetBoolSetting(settings, "Registration_RequireUniqueDisplayName"))
            {
                user = UserController.Instance.GetUserByDisplayname(portalSettings.PortalId, newUser.DisplayName);
                if (user != null)
                {
                    var    i           = 1;
                    string displayName = null;
                    while (user != null)
                    {
                        displayName = newUser.DisplayName + " 0" + i.ToString(CultureInfo.InvariantCulture);
                        user        = UserController.Instance.GetUserByDisplayname(portalSettings.PortalId, displayName);
                        i++;
                    }
                    newUser.DisplayName = displayName;
                }
            }

            //Update display name format
            var displaynameFormat = GetStringSetting(settings, "Security_DisplayNameFormat");

            if (!string.IsNullOrEmpty(displaynameFormat))
            {
                newUser.UpdateDisplayName(displaynameFormat);
            }

            //membership is approved only for public registration
            newUser.Membership.Approved =
                (registerationDetails.IgnoreRegistrationMode ||
                 portalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PublicRegistration) && registerationDetails.Authorize;

            //final creation of user
            var createStatus = UserController.CreateUser(ref newUser);

            //clear cache
            if (createStatus == UserCreateStatus.Success)
            {
                DataCache.ClearPortalCache(portalSettings.PortalId, true);
            }

            if (createStatus != UserCreateStatus.Success)
            {
                throw new Exception(UserController.GetUserCreateStatus(createStatus));
            }

//            if (registerationDetails.IgnoreRegistrationMode)
//            {
//                Mail.SendMail(newUser, MessageType.UserRegistrationPublic, portalSettings);
//                return UserBasicDto.FromUserInfo(newUser);
//            }

            //send notification to portal administrator of new user registration
            //check the receive notification setting first, but if register type is Private, we will always send the notification email.
            //because the user need administrators to do the approve action so that he can continue use the website.
            if (!registerationDetails.IgnoreRegistrationMode &&
                (portalSettings.EnableRegisterNotification || portalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PrivateRegistration))
            {
                Mail.SendMail(newUser, MessageType.UserRegistrationAdmin, portalSettings);
                SendAdminNotification(newUser, portalSettings);
            }

            //send email to user
            if (registerationDetails.Notify)
            {
                switch (portalSettings.UserRegistration)
                {
                case (int)Globals.PortalRegistrationType.PrivateRegistration:
                    Mail.SendMail(newUser, MessageType.UserRegistrationPrivate, portalSettings);
                    break;

                case (int)Globals.PortalRegistrationType.PublicRegistration:
                    Mail.SendMail(newUser, MessageType.UserRegistrationPublic, portalSettings);
                    break;

                case (int)Globals.PortalRegistrationType.VerifiedRegistration:
                    Mail.SendMail(newUser, MessageType.UserRegistrationVerified, portalSettings);
                    break;
                }
            }

            return(UserBasicDto.FromUserInfo(newUser));
        }
Esempio n. 7
0
        public void Execute(BasePage Context)
        {
            Dictionary <String, Object> jsonDicts    = new Dictionary <String, Object>();
            JavaScriptSerializer        jsSerializer = new JavaScriptSerializer();

            Common.UpdateDictionary(jsonDicts, "Message", "");

            Boolean Result       = false;
            int     UpdateResult = 0;
            var     json         = WebHelper.GetStringParam(Context.Request, "json", "");
            var     UserItem     = Context.UserInfo;

            if (UserItem != null && UserItem.UserID > 0)
            {
                ProfilePropertyDefinitionCollection profileProperties = new ProfilePropertyDefinitionCollection();

                var FirstName = WebHelper.GetStringParam(Context.Request, "FirstName", "");
                if (!String.IsNullOrEmpty(FirstName) && FirstName != UserItem.Profile.FirstName)
                {
                    UserItem.FirstName = FirstName;
                    UpdateResult++;
                }


                var LastName = WebHelper.GetStringParam(Context.Request, "LastName", "");
                if (!String.IsNullOrEmpty(LastName) && LastName != UserItem.Profile.LastName)
                {
                    UserItem.LastName = LastName;
                    UpdateResult++;
                }

                var Company = WebHelper.GetStringParam(Context.Request, "Company", "");
                if (!String.IsNullOrEmpty(Company) && Company != UserItem.Profile.GetPropertyValue("Company"))
                {
                    //DotNetNuke.Entities.Profile.ProfileController.UpdateUserProfile()
                    //UserItem.Profile["Company"] = Company;
                    UserItem.Profile.SetProfileProperty("Company", Company);
                    UpdateResult++;
                }


                var Newsletter_GameSheets = WebHelper.GetStringParam(Context.Request, "Newsletter_GameSheets", "");
                if (Newsletter_GameSheets != UserItem.Profile.GetPropertyValue("Newsletter_GameSheets").ToLower())
                {
                    UserItem.Profile.SetProfileProperty("Newsletter_GameSheets", ConvertBool(Newsletter_GameSheets));
                    UpdateResult++;
                }


                var Newsletter_Downloads = WebHelper.GetStringParam(Context.Request, "Newsletter_Downloads", "");
                if (Newsletter_Downloads != UserItem.Profile.GetPropertyValue("Newsletter_Downloads").ToLower())
                {
                    UserItem.Profile.SetProfileProperty("Newsletter_Downloads", ConvertBool(Newsletter_Downloads));
                    UpdateResult++;
                }



                var Newsletter_Campaigns = WebHelper.GetStringParam(Context.Request, "Newsletter_Campaigns", "");
                if (Newsletter_Campaigns != UserItem.Profile.GetPropertyValue("Newsletter_Campaigns").ToLower())
                {
                    UserItem.Profile.SetProfileProperty("Newsletter_Campaigns", ConvertBool(Newsletter_Campaigns));
                    UpdateResult++;
                }



                var Newsletter_Events = WebHelper.GetStringParam(Context.Request, "Newsletter_Events", "");
                if (Newsletter_Events != UserItem.Profile.GetPropertyValue("Newsletter_Events").ToLower())
                {
                    UserItem.Profile.SetProfileProperty("Newsletter_Events", ConvertBool(Newsletter_Events));
                    UpdateResult++;
                }


                if (UpdateResult > 0)
                {
                    DataCache.ClearPortalCache(Context.PortalId, true);
                    DataCache.ClearCache();


                    UserController.UpdateUser(Context.PortalId, UserItem);

                    ProfileController.UpdateUserProfile(UserItem);

                    Common.UpdateDictionary(jsonDicts, "Message", "Update user account success!");
                    Result = true;
                }
                else
                {
                    Result = false;
                    Common.UpdateDictionary(jsonDicts, "Message", "User Profile no change.");
                }


                var Password = WebHelper.GetStringParam(Context.Request, "Password", "");
                if (!String.IsNullOrEmpty(Password))
                {
                    if (UserController.ValidatePassword(Password))
                    {
                        string resetPassword = UserController.ResetPassword(UserItem, String.Empty);

                        if (UserController.ChangePassword(UserItem, resetPassword, Password))
                        {
                            //DataCache.ClearPortalCache(UserItem.PortalID, false);
                            //DataCache.ClearUserCache(UserItem.PortalID, UserItem.Username);
                            Common.UpdateDictionary(jsonDicts, "Message", "Update user account success!");
                            Result = true;
                        }
                        else
                        {
                            Common.UpdateDictionary(jsonDicts, "Message", Localization.GetString("PasswordResetFailed"));
                            Result = false;
                        }
                    }
                    else
                    {
                        Common.UpdateDictionary(jsonDicts, "Message", Localization.GetString("PasswordInvalid"));
                        Result = false;
                    }
                }
            }



            jsonDicts.Add("UserItem", UserItem);
            jsonDicts.Add("UpdateResult", UpdateResult);
            jsonDicts.Add("Result", Result);


            //转换数据为json
            ResponseString = jsSerializer.Serialize(jsonDicts);
        }
Esempio n. 8
0
        protected void CtrlItemCommand(object source, RepeaterCommandEventArgs e)
        {
            var cArg          = e.CommandArgument.ToString();
            var param         = new string[3];
            var redirecttabid = "";
            var emailtemplate = "";

            switch (e.CommandName.ToLower())
            {
            case "saveprofile":
                _profileData.UpdateProfile(rpInp, DebugMode);

                emailtemplate = ModSettings.Get("emailtemplate");
                if (emailtemplate != "")
                {
                    NBrightBuyUtils.SendEmailToManager(emailtemplate, _profileData.GetProfile(), "profileupdated_emailsubject.Text");
                }

                param[0] = "msg=" + NotifyRef + "_" + NotifyCode.ok;
                NBrightBuyUtils.SetNotfiyMessage(ModuleId, NotifyRef, NotifyCode.ok);
                Response.Redirect(Globals.NavigateURL(TabId, "", param), true);
                break;

            case "register":

                var notifyCode = NotifyCode.fail;
                var failreason = "";

                var cap = (DotNetNuke.UI.WebControls.CaptchaControl)rpInp.Controls[0].FindControl("captcha");;
                if (cap == null || cap.IsValid)
                {
                    //create a new user and login
                    if (!this.UserInfo.IsInRole("Registered Users"))
                    {
                        // Create and hydrate User
                        var objUser = new UserInfo();
                        objUser.Profile.InitialiseProfile(this.PortalId, true);
                        objUser.PortalID                = PortalId;
                        objUser.DisplayName             = GenXmlFunctions.GetField(rpInp, "DisplayName");
                        objUser.Email                   = GenXmlFunctions.GetField(rpInp, "Email");
                        objUser.FirstName               = GenXmlFunctions.GetField(rpInp, "FirstName");
                        objUser.LastName                = GenXmlFunctions.GetField(rpInp, "LastName");
                        objUser.Username                = GenXmlFunctions.GetField(rpInp, "Username");
                        objUser.Profile.PreferredLocale = Utils.GetCurrentCulture();

                        if (objUser.Username == "")
                        {
                            objUser.Username = GenXmlFunctions.GetField(rpInp, "Email");
                        }
                        objUser.Membership.CreatedDate = System.DateTime.Now;
                        var passwd = GenXmlFunctions.GetField(rpInp, "Password");
                        if (passwd == "")
                        {
                            objUser.Membership.UpdatePassword = true;
                            passwd = UserController.GeneratePassword(9);
                        }
                        objUser.Membership.Password = passwd;
                        objUser.Membership.Approved = PortalSettings.UserRegistration == (int)Globals.PortalRegistrationType.PublicRegistration;

                        // Create the user
                        var createStatus = UserController.CreateUser(ref objUser);

                        DataCache.ClearPortalCache(PortalId, true);

                        switch (createStatus)
                        {
                        case UserCreateStatus.Success:
                            //boNotify = true;
                            if (objUser.Membership.Approved)
                            {
                                UserController.UserLogin(this.PortalId, objUser, PortalSettings.PortalName, AuthenticationLoginBase.GetIPAddress(), false);
                            }
                            notifyCode = NotifyCode.ok;
                            break;

                        case UserCreateStatus.DuplicateEmail:
                            failreason = "exists";
                            break;

                        case UserCreateStatus.DuplicateUserName:
                            failreason = "exists";
                            break;

                        case UserCreateStatus.UsernameAlreadyExists:
                            failreason = "exists";
                            break;

                        case UserCreateStatus.UserAlreadyRegistered:
                            failreason = "exists";
                            break;

                        default:
                            // registration error
                            break;
                        }

                        if (notifyCode == NotifyCode.ok)
                        {
                            _profileData  = new ProfileData(objUser.UserID, rpInp, DebugMode);    //create and update a profile for this new logged in user.
                            emailtemplate = ModSettings.Get("emailregisteredtemplate");
                            if (emailtemplate != "")
                            {
                                NBrightBuyUtils.SendEmailToManager(emailtemplate, _profileData.GetProfile(), "profileregistered_emailsubject.Text");
                            }
                            emailtemplate = ModSettings.Get("emailregisteredclienttemplate");
                            if (emailtemplate != "")
                            {
                                NBrightBuyUtils.SendEmail(objUser.Email, emailtemplate, _profileData.GetProfile(), "profileregistered_emailsubject.Text", "", objUser.Profile.PreferredLocale);
                            }
                        }
                    }
                }
                else
                {
                    NBrightBuyUtils.SetFormTempData(ModuleId, GenXmlFunctions.GetGenXml(rpInp));
                    failreason = "captcha";
                }

                param[0] = "msg=" + NotifyRef + "_" + notifyCode;
                if (!UserInfo.IsInRole(StoreSettings.ClientEditorRole) && ModSettings.Get("clientrole") == "True" && notifyCode == NotifyCode.ok)
                {
                    NBrightBuyUtils.SetNotfiyMessage(ModuleId, NotifyRef + "clientrole", notifyCode);
                }
                else
                {
                    NBrightBuyUtils.SetNotfiyMessage(ModuleId, NotifyRef + failreason, notifyCode);
                }

                if (notifyCode == NotifyCode.ok)
                {
                    redirecttabid = ModSettings.Get("ddlredirecttabid");
                }
                if (!Utils.IsNumeric(redirecttabid))
                {
                    redirecttabid = TabId.ToString("");
                }
                Response.Redirect(Globals.NavigateURL(Convert.ToInt32(redirecttabid), "", param), true);
                break;
            }
        }
Esempio n. 9
0
        protected void cmdUpdate_Click(object sender, EventArgs e)
        {
            if (this.userForm.IsValid && (this.User != null))
            {
                if (this.User.UserID == this.PortalSettings.AdministratorId)
                {
                    // Clear the Portal Cache
                    DataCache.ClearPortalCache(this.UserPortalID, true);
                }
                else
                {
                    DataCache.ClearUserCache(this.PortalId, this.User.Username);
                }

                try
                {
                    // Update DisplayName to conform to Format
                    this.UpdateDisplayName();

                    // DNN-5874 Check if unique display name is required
                    if (this.PortalSettings.Registration.RequireUniqueDisplayName)
                    {
                        var usersWithSameDisplayName = (List <UserInfo>)MembershipProvider.Instance().GetUsersBasicSearch(this.PortalId, 0, 2, "DisplayName", true, "DisplayName", this.User.DisplayName);
                        if (usersWithSameDisplayName.Any(user => user.UserID != this.User.UserID))
                        {
                            throw new Exception("Display Name must be unique");
                        }
                    }

                    var prevUserEmail = UserController.Instance.GetUserById(this.PortalId, this.UserId)?.Email;

                    if (!string.IsNullOrWhiteSpace(prevUserEmail) && !prevUserEmail.Equals(this.User.Email, StringComparison.OrdinalIgnoreCase))
                    {
                        // on email address change need to invalidate existing 'reset password' link
                        this.User.PasswordResetExpiration = Null.NullDate;
                    }

                    UserController.UpdateUser(this.UserPortalID, this.User);

                    // make sure username matches possibly changed email address
                    if (this.PortalSettings.Registration.UseEmailAsUserName)
                    {
                        if (this.User.Username.ToLower() != this.User.Email.ToLower())
                        {
                            UserController.ChangeUsername(this.User.UserID, this.User.Email);

                            // after username changed, should redirect to login page to let user authenticate again.
                            var loginUrl = Globals.LoginURL(HttpUtility.UrlEncode(this.Request.RawUrl), false);
                            var spliter  = loginUrl.Contains("?") ? "&" : "?";
                            loginUrl = $"{loginUrl}{spliter}username={this.User.Email}&usernameChanged=true";
                            this.Response.Redirect(loginUrl, true);
                        }
                    }

                    this.Response.Redirect(this.Request.RawUrl);
                }
                catch (Exception exc)
                {
                    Logger.Error(exc);
                    if (exc.Message == "Display Name must be unique")
                    {
                        this.AddModuleMessage("DisplayNameNotUnique", ModuleMessage.ModuleMessageType.RedError, true);
                    }
                    else
                    {
                        this.AddModuleMessage("UserUpdatedError", ModuleMessage.ModuleMessageType.RedError, true);
                    }
                }
            }
        }