Ejemplo n.º 1
0
        public static void LoadDefaultSettings(string settingPath)
        {
            SettingManager settingManager = new SettingManager();

            if (!string.IsNullOrWhiteSpace(settingPath))
            {
                settingManager.SettingPath = settingPath;
            }

            var listSettingInfo = settingManager.GetSettings();

            if (listSettingInfo != null)
            {
                YearFormat = listSettingInfo.Where(d => d.Name == Constant.YearFormat).Select(d => d.Value).FirstOrDefault();
                MonthFormat = listSettingInfo.Where(d => d.Name == Constant.MonthFormat).Select(d => d.Value).FirstOrDefault();
                DateFormat = listSettingInfo.Where(d => d.Name == Constant.DateFormat).Select(d => d.Value).FirstOrDefault();
                DecimalFormat = listSettingInfo.Where(d => d.Name == Constant.DecimalFormat).Select(d => d.Value).FirstOrDefault();
                IntegerFormat = listSettingInfo.Where(d => d.Name == Constant.IntegerFormat).Select(d => d.Value).FirstOrDefault();
                ShortTimeFormat = listSettingInfo.Where(d => d.Name == Constant.ShortTimeFormat).Select(d => d.Value).FirstOrDefault();
                LongTimeFormat = listSettingInfo.Where(d => d.Name == Constant.LongTimeFormat).Select(d => d.Value).FirstOrDefault();
                DateTimeFormat = listSettingInfo.Where(d => d.Name == Constant.DateTimeFormat).Select(d => d.Value).FirstOrDefault();
                string languages = listSettingInfo.Where(d => d.Name == Constant.Languages).Select(d => d.Value).FirstOrDefault();
                Languages = languages.GetString().Split(',').Select(d => d.Trim()).Distinct().ToArray();
            }
        }
Ejemplo n.º 2
0
        public virtual string EncryptText(string plainText, string encryptionPrivateKey = "")
        {
            if (string.IsNullOrEmpty(plainText))
            {
                return(plainText);
            }

            if (String.IsNullOrEmpty(encryptionPrivateKey))
            {
                encryptionPrivateKey = SettingManager.GetSettingValue("EncryptionKey");
            }

            var tDESalg = new TripleDESCryptoServiceProvider();

            tDESalg.Key = new ASCIIEncoding().GetBytes(encryptionPrivateKey.Substring(0, 16));
            tDESalg.IV  = new ASCIIEncoding().GetBytes(encryptionPrivateKey.Substring(8, 8));

            byte[] encryptedBinary = EncryptTextToMemory(plainText, tDESalg.Key, tDESalg.IV);
            return(Convert.ToBase64String(encryptedBinary));
        }
        private async Task UpdateEmailSettingsAsync(EmailSettingsEditDto settings)
        {
            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.DefaultFromAddress, settings.DefaultFromAddress);

            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.DefaultFromDisplayName, settings.DefaultFromDisplayName);

            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.Host, settings.SmtpHost);

            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.Port, settings.SmtpPort.ToString(CultureInfo.InvariantCulture));

            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.UserName, settings.SmtpUserName);

            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.Password, SimpleStringCipher.Instance.Encrypt(settings.SmtpPassword));

            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.Domain, settings.SmtpDomain);

            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.EnableSsl, settings.SmtpEnableSsl.ToString().ToLowerInvariant());

            await SettingManager.ChangeSettingForApplicationAsync(EmailSettingNames.Smtp.UseDefaultCredentials, settings.SmtpUseDefaultCredentials.ToString().ToLowerInvariant());
        }
Ejemplo n.º 4
0
        public async Task <RegisterOutput> Register(RegisterInput input)
        {
            var user = await _userRegistrationManager.RegisterAsync(
                input.Name,
                input.Surname,
                input.EmailAddress,
                input.UserName,
                input.Password,
                true // Assumed email address is always confirmed. Change this if you want to implement email confirmation.
                );

            var isEmailConfirmationRequiredForLogin =
                await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement
                                                                 .IsEmailConfirmationRequiredForLogin);

            return(new RegisterOutput
            {
                CanLogin = user.IsActive && (user.IsEmailConfirmed || !isEmailConfirmationRequiredForLogin)
            });
        }
        public virtual async Task <ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            var tenantId = model.TenantId.IsNullOrEmpty() ? (int?)null : SimpleStringCipher.Instance.Decrypt(model.TenantId).To <int>();
            var userId   = SimpleStringCipher.Instance.Decrypt(model.UserId).To <long>();

            _unitOfWorkManager.Current.SetTenantId(tenantId);

            var user = await _userManager.GetUserByIdAsync(userId);

            if (user == null || user.PasswordResetCode.IsNullOrEmpty() || user.PasswordResetCode != model.ResetCode)
            {
                throw new UserFriendlyException(L("InvalidPasswordResetCode"), L("InvalidPasswordResetCode_Detail"));
            }

            var setting = await SettingManager.GetSettingValueForUserAsync(AppSettings.Security.PasswordComplexity, tenantId, userId);

            model.PasswordComplexitySetting = JsonConvert.DeserializeObject <PasswordComplexitySetting>(setting);

            return(View(model));
        }
        private async Task UpdateSecuritySettingsAsync(SecuritySettingsEditDto settings)
        {
            if (settings.UseDefaultPasswordComplexitySettings)
            {
                await SettingManager.ChangeSettingForApplicationAsync(
                    AppSettings.Security.PasswordComplexity,
                    settings.DefaultPasswordComplexity.ToJsonString()
                    );
            }
            else
            {
                await SettingManager.ChangeSettingForApplicationAsync(
                    AppSettings.Security.PasswordComplexity,
                    settings.PasswordComplexity.ToJsonString()
                    );
            }

            await UpdateUserLockOutSettingsAsync(settings.UserLockOut);
            await UpdateTwoFactorLoginSettingsAsync(settings.TwoFactorLogin);
        }
Ejemplo n.º 7
0
        private async Task UpdateTwoFactorLoginSettingsAsync(TwoFactorLoginSettingsEditDto settings)
        {
            if (_multiTenancyConfig.IsEnabled &&
                !await IsTwoFactorLoginEnabledForApplicationAsync()) //Two factor login can not be used by tenants if disabled by the host
            {
                return;
            }

            await SettingManager.ChangeSettingForTenantAsync(AbpSession.GetTenantId(), AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEnabled, settings.IsEnabled.ToString(CultureInfo.InvariantCulture).ToLower());

            await SettingManager.ChangeSettingForTenantAsync(AbpSession.GetTenantId(), AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsRememberBrowserEnabled, settings.IsRememberBrowserEnabled.ToString(CultureInfo.InvariantCulture).ToLower());

            if (!_multiTenancyConfig.IsEnabled)
            {
                //These settings can only be changed by host, in a multitenant application.
                await SettingManager.ChangeSettingForTenantAsync(AbpSession.GetTenantId(), AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsEmailProviderEnabled, settings.IsEmailProviderEnabled.ToString(CultureInfo.InvariantCulture).ToLower());

                await SettingManager.ChangeSettingForTenantAsync(AbpSession.GetTenantId(), AbpZeroSettingNames.UserManagement.TwoFactorLogin.IsSmsProviderEnabled, settings.IsSmsProviderEnabled.ToString(CultureInfo.InvariantCulture).ToLower());
            }
        }
        public async Task UpdateTenantUiManagementSettingsAsync(int tenantId, ThemeSettingsDto settings)
        {
            await SettingManager.ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.Theme, settings.Theme);

            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.Header.DesktopFixedHeader, settings.Header.DesktopFixedHeader.ToString());
            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.Header.MobileFixedHeader, settings.Header.MobileFixedHeader.ToString());
            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.Header.Skin, settings.Header.HeaderSkin);

            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.SubHeader.Fixed, settings.SubHeader.FixedSubHeader.ToString());
            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.SubHeader.Style, settings.SubHeader.SubheaderStyle);

            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.LeftAside.AsideSkin, settings.Menu.AsideSkin);
            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.LeftAside.FixedAside, settings.Menu.FixedAside.ToString());
            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.LeftAside.AllowAsideMinimizing, settings.Menu.AllowAsideMinimizing.ToString());
            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.LeftAside.DefaultMinimizedAside, settings.Menu.DefaultMinimizedAside.ToString());
            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.LeftAside.SubmenuToggle, settings.Menu.SubmenuToggle);
            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.SearchActive, settings.Menu.SearchActive.ToString());

            await ChangeSettingForTenantAsync(tenantId, AppSettings.UiManagement.Footer.FixedFooter, settings.Footer.FixedFooter.ToString());
        }
Ejemplo n.º 9
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public async Task <CurrentUserProfileEditDto> GetCurrentUserProfileForEdit()
        {
            var user = await GetCurrentUserAsync();

            var userProfileEditDto = user.MapTo <CurrentUserProfileEditDto>();

            if (Clock.SupportsMultipleTimezone)
            {
                userProfileEditDto.Timezone = await SettingManager.GetSettingValueAsync(TimingSettingNames.TimeZone);

                var defaultTimeZoneId = await _timeZoneService.GetDefaultTimezoneAsync(SettingScopes.User, AbpSession.TenantId);

                if (userProfileEditDto.Timezone == defaultTimeZoneId)
                {
                    userProfileEditDto.Timezone = string.Empty;
                }
            }

            return(userProfileEditDto);
        }
Ejemplo n.º 10
0
        public async Task <ActionResult> Index()
        {
            var output = await _tenantSettingsAppService.GetAllSettings();

            ViewBag.IsMultiTenancyEnabled = _multiTenancyConfig.IsEnabled;

            var timezoneItems = await _timingAppService.GetTimezoneComboboxItems(new GetTimezoneComboboxItemsInput
            {
                DefaultTimezoneScope = SettingScopes.Tenant,
                SelectedTimezoneId   = await SettingManager.GetSettingValueForTenantAsync(TimingSettingNames.TimeZone, AbpSession.GetTenantId())
            });

            var model = new SettingsViewModel
            {
                Settings      = output,
                TimezoneItems = timezoneItems
            };

            return(View(model));
        }
Ejemplo n.º 11
0
        public virtual string DecryptText(string cipherText, string encryptionPrivateKey = "")
        {
            if (String.IsNullOrEmpty(cipherText))
            {
                return(cipherText);
            }

            if (String.IsNullOrEmpty(encryptionPrivateKey))
            {
                encryptionPrivateKey = SettingManager.GetSettingValue("EncryptionKey");
            }

            var tDESalg = new TripleDESCryptoServiceProvider();

            tDESalg.Key = new ASCIIEncoding().GetBytes(encryptionPrivateKey.Substring(0, 16));
            tDESalg.IV  = new ASCIIEncoding().GetBytes(encryptionPrivateKey.Substring(8, 8));

            byte[] buffer = Convert.FromBase64String(cipherText);
            return(DecryptTextFromMemory(buffer, tDESalg.Key, tDESalg.IV));
        }
Ejemplo n.º 12
0
        public async Task <GetNotificationSettingsOutput> GetNotificationSettings()
        {
            var output = new GetNotificationSettingsOutput();

            output.ReceiveNotifications = await SettingManager.GetSettingValueAsync <bool>(NotificationSettingNames.ReceiveNotifications);

            //Get general notifications, not entity related notifications.
            var notificationDefinitions = (await _notificationDefinitionManager.GetAllAvailableAsync(AbpSession.ToUserIdentifier())).Where(nd => nd.EntityType == null);

            output.Notifications = ObjectMapper.Map <List <NotificationSubscriptionWithDisplayNameDto> >(notificationDefinitions);

            var subscribedNotifications = (await _notificationSubscriptionManager
                                           .GetSubscribedNotificationsAsync(AbpSession.ToUserIdentifier()))
                                          .Select(ns => ns.NotificationName)
                                          .ToList();

            output.Notifications.ForEach(n => n.IsSubscribed = subscribedNotifications.Contains(n.Name));

            return(output);
        }
        private async Task UpdateUserManagementSessionTimeOutSettingsAsync(SessionTimeOutSettingsEditDto settings)
        {
            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AppSettings.UserManagement.SessionTimeOut.IsEnabled,
                settings.IsEnabled.ToString().ToLowerInvariant()
                );

            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AppSettings.UserManagement.SessionTimeOut.TimeOutSecond,
                settings.TimeOutSecond.ToString()
                );

            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AppSettings.UserManagement.SessionTimeOut.ShowTimeOutNotificationSecond,
                settings.ShowTimeOutNotificationSecond.ToString()
                );
        }
        public PartialViewResult Header(string currentPageName = "")
        {
            var headerModel = new HeaderViewModel();

            if (AbpSession.UserId.HasValue)
            {
                headerModel.LoginInformations = AsyncHelper.RunSync(() => _sessionCache.GetCurrentLoginInformationsAsync());
            }

            headerModel.Languages       = _languageManager.GetLanguages();
            headerModel.CurrentLanguage = _languageManager.CurrentLanguage;

            headerModel.Menu            = AsyncHelper.RunSync(() => _userNavigationManager.GetMenuAsync(FrontEndNavigationProvider.MenuName, AbpSession.ToUserIdentifier()));
            headerModel.CurrentPageName = currentPageName;

            headerModel.IsMultiTenancyEnabled     = _multiTenancyConfig.IsEnabled;
            headerModel.TenantRegistrationEnabled = SettingManager.GetSettingValue <bool>(AppSettings.TenantManagement.AllowSelfRegistration);

            return(PartialView("~/Views/Layout/_Header.cshtml", headerModel));
        }
Ejemplo n.º 15
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task UpdateCurrentUserProfile(CurrentUserProfileEditDto input)
        {
            var user = await GetCurrentUserAsync();

            input.MapTo(user);
            CheckErrors(await UserManager.UpdateAsync(user));

            if (Clock.SupportsMultipleTimezone)
            {
                if (input.Timezone.IsNullOrEmpty())
                {
                    var defaultValue = await _timeZoneService.GetDefaultTimezoneAsync(SettingScopes.User, AbpSession.TenantId);

                    await SettingManager.ChangeSettingForUserAsync(AbpSession.ToUserIdentifier(), TimingSettingNames.TimeZone, defaultValue);
                }
                else
                {
                    await SettingManager.ChangeSettingForUserAsync(AbpSession.ToUserIdentifier(), TimingSettingNames.TimeZone, input.Timezone);
                }
            }
        }
Ejemplo n.º 16
0
        public bool IsAccountLienThong(int tenanId)
        {
            try
            {
                bool   isAccount           = false;
                string _UserLienThong      = SettingManager.GetSettingValueForTenant(AppSettings.LienThongInfo.USER_LIEN_THONG, tenanId);
                string _PassLienThongMaHoa = SettingManager.GetSettingValueForTenant(AppSettings.LienThongInfo.PASS_LIEN_THONG, tenanId);

                if (!string.IsNullOrEmpty(_UserLienThong) && !string.IsNullOrEmpty(_PassLienThongMaHoa))
                {
                    isAccount = true;
                }

                return(isAccount);
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message);
                return(false);
            }
        }
Ejemplo n.º 17
0
        private static void PreApplyDBFileIfNotExist()
        {
            var path = Path.GetFullPath(SettingManager.LoadSetting <GlobalSetting>().DBFilePath);

            if (File.Exists(path))
            {
                return;
            }

            //try get default empty database file
            var exe_path        = Directory.GetParent(Process.GetCurrentProcess().MainModule.FileName).FullName;
            var default_db_path = Path.Combine(exe_path, "default_empty.db");

            if (!File.Exists(default_db_path))
            {
                throw new Exception($"Wbooru没有数据库,也没从{default_db_path}找到default_empty.db以及其他的数据库文件资源,请自行生成数据库文件并放置到{path}.");
            }

            Log.Info($"user database file not found , move default database file {default_db_path} to {path}");
            File.Copy(default_db_path, path);
        }
 private async Task <TenantUserManagementSettingsEditDto> GetUserManagementSettingsAsync()
 {
     return(new TenantUserManagementSettingsEditDto
     {
         AllowSelfRegistration = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.AllowSelfRegistration),
         IsNewRegisteredUserActiveByDefault = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.IsNewRegisteredUserActiveByDefault),
         IsEmailConfirmationRequiredForLogin = await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.IsEmailConfirmationRequiredForLogin),
         UseCaptchaOnRegistration = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.UseCaptchaOnRegistration),
         UseCaptchaOnLogin = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.UseCaptchaOnLogin),
         IsCookieConsentEnabled = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.IsCookieConsentEnabled),
         IsQuickThemeSelectEnabled = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.IsQuickThemeSelectEnabled),
         AllowUsingGravatarProfilePicture = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.AllowUsingGravatarProfilePicture),
         SessionTimeOutSettings = new SessionTimeOutSettingsEditDto()
         {
             IsEnabled = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.SessionTimeOut.IsEnabled),
             TimeOutSecond = await SettingManager.GetSettingValueAsync <int>(AppSettings.UserManagement.SessionTimeOut.TimeOutSecond),
             ShowTimeOutNotificationSecond = await SettingManager.GetSettingValueAsync <int>(AppSettings.UserManagement.SessionTimeOut.ShowTimeOutNotificationSecond),
             ShowLockScreenWhenTimedOut = await SettingManager.GetSettingValueAsync <bool>(AppSettings.UserManagement.SessionTimeOut.ShowLockScreenWhenTimedOut)
         }
     });
 }
Ejemplo n.º 19
0
        public void Save()
        {
            TransactMode transactionMode = TransactMode.Authorize;

            if (rbAuthorize.Checked)
            {
                transactionMode = TransactMode.Authorize;
            }
            if (rbAuthorizeAndCapture.Checked)
            {
                transactionMode = TransactMode.AuthorizeAndCapture;
            }
            SetTransactionMode(transactionMode);

            SettingManager.SetParam("PaymentMethod.PaypalDirect.UseSandbox", cbUseSandbox.Checked.ToString());
            SettingManager.SetParam("PaymentMethod.PaypalDirect.APIAccountName", txtAPIAccountName.Text);
            SettingManager.SetParam("PaymentMethod.PaypalDirect.APIAccountPassword", txtAPIAccountPassword.Text);
            SettingManager.SetParam("PaymentMethod.PaypalDirect.Signature", txtSignature.Text);

            SettingManager.SetParamNative("PaymentMethod.PaypalDirect.AdditionalFee", txtAdditionalFee.Value);
        }
Ejemplo n.º 20
0
        /* Checkes two factor code and returns a token to remember the client (browser) if needed */
        private async Task <string> TwoFactorAuthenticateAsync(User user, AuthenticateModel authenticateModel)
        {
            var twoFactorCodeCache = _cacheManager.GetTwoFactorCodeCache();
            var userIdentifier     = user.ToUserIdentifier().ToString();
            var cachedCode         = await twoFactorCodeCache.GetOrDefaultAsync(userIdentifier);

            var provider = _cacheManager.GetCache("ProviderCache").Get("Provider", cache => cache).ToString();

            if (provider == GoogleAuthenticatorProvider.Name)
            {
                if (!await _googleAuthenticatorProvider.ValidateAsync("TwoFactor",
                                                                      authenticateModel.TwoFactorVerificationCode, _userManager, user))
                {
                    throw new UserFriendlyException(L("InvalidSecurityCode"));
                }
            }
            else if (cachedCode?.Code == null || cachedCode.Code != authenticateModel.TwoFactorVerificationCode)
            {
                throw new UserFriendlyException(L("InvalidSecurityCode"));
            }

            //Delete from the cache since it was a single usage code
            await twoFactorCodeCache.RemoveAsync(userIdentifier);

            if (authenticateModel.RememberClient)
            {
                if (await SettingManager.GetSettingValueAsync <bool>(AbpZeroSettingNames.UserManagement.TwoFactorLogin
                                                                     .IsRememberBrowserEnabled))
                {
                    return(CreateAccessToken(new[]
                    {
                        new Claim(UserIdentifierClaimType, user.ToUserIdentifier().ToString())
                    },
                                             TimeSpan.FromDays(365)
                                             ));
                }
            }

            return(null);
        }
Ejemplo n.º 21
0
        private async Task UpdateUserManagementSettingsAsync(TenantUserManagementSettingsEditDto settings)
        {
            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AppSettings.UserManagement.AllowSelfRegistration,
                settings.AllowSelfRegistration.ToString().ToLowerInvariant()
                );

            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AppSettings.UserManagement.IsNewRegisteredUserActiveByDefault,
                settings.IsNewRegisteredUserActiveByDefault.ToString().ToLowerInvariant()
                );

            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AbpZeroSettingNames.UserManagement.IsEmailConfirmationRequiredForLogin,
                settings.IsEmailConfirmationRequiredForLogin.ToString().ToLowerInvariant()
                );

            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AppSettings.UserManagement.UseCaptchaOnRegistration,
                settings.UseCaptchaOnRegistration.ToString().ToLowerInvariant()
                );

            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AppSettings.UserManagement.UseCaptchaOnLogin,
                settings.UseCaptchaOnLogin.ToString().ToLowerInvariant()
                );

            await SettingManager.ChangeSettingForTenantAsync(
                AbpSession.GetTenantId(),
                AppSettings.UserManagement.IsCookieConsentEnabled,
                settings.IsCookieConsentEnabled.ToString().ToLowerInvariant()
                );

            await UpdateUserManagementSessionTimeOutSettingsAsync(settings.SessionTimeOutSettings);
        }
Ejemplo n.º 22
0
        public void Should_Delete_Setting_Values_On_Default_Value()
        {
            var session = new MyChangableSession();
            var store   = new MemorySettingStore();

            var settingManager = new SettingManager(CreateMockSettingDefinitionManager());

            settingManager.SettingStore = store;
            settingManager.Session      = session;

            session.TenantId = 1;
            session.UserId   = 1;

            //We can get user's personal stored value
            store.GetSettingOrNull(null, 1, MyAllLevelsSetting).ShouldNotBe(null);
            settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("user 1 stored value");

            //This will delete setting for the user since it's same as tenant's setting value
            settingManager.ChangeSettingForUser(1, MyAllLevelsSetting, "tenant 1 stored value");
            store.GetSettingOrNull(null, 1, MyAllLevelsSetting).ShouldBe(null);

            //We can get tenant's setting value
            store.GetSettingOrNull(1, null, MyAllLevelsSetting).ShouldNotBe(null);
            settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("tenant 1 stored value");

            //This will delete setting for tenant since it's same as application's setting value
            settingManager.ChangeSettingForTenant(1, MyAllLevelsSetting, "application level stored value");
            store.GetSettingOrNull(null, 1, MyAllLevelsSetting).ShouldBe(null);

            //We can get application's value
            store.GetSettingOrNull(null, null, MyAllLevelsSetting).ShouldNotBe(null);
            settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("application level stored value");

            //This will delete setting for application since it's same as the default value of the setting
            settingManager.ChangeSettingForApplication(MyAllLevelsSetting, "application level default value");
            store.GetSettingOrNull(null, null, MyAllLevelsSetting).ShouldBe(null);

            //Now, there is no setting value, default value should return
            settingManager.GetSettingValue(MyAllLevelsSetting).ShouldBe("application level default value");
        }
        public virtual ActionResult ChangeCulture(string cultureName, string returnUrl = "")
        {
            if (!GlobalizationHelper.IsValidCultureCode(cultureName))
            {
                throw new MajidException("Unknown language: " + cultureName + ". It must be a valid culture!");
            }

            var cookieValue = CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(cultureName, cultureName));

            Response.Cookies.Append(
                CookieRequestCultureProvider.DefaultCookieName,
                cookieValue,
                new CookieOptions
            {
                Expires  = Clock.Now.AddYears(2),
                HttpOnly = true
            }
                );

            if (MajidSession.UserId.HasValue)
            {
                SettingManager.ChangeSettingForUser(
                    MajidSession.ToUserIdentifier(),
                    LocalizationSettingNames.DefaultLanguage,
                    cultureName
                    );
            }

            if (Request.IsAjaxRequest())
            {
                return(Json(new AjaxResponse()));
            }

            if (!string.IsNullOrWhiteSpace(returnUrl) && MajidUrlHelper.IsLocalUrl(Request, returnUrl))
            {
                return(Redirect(returnUrl));
            }

            return(Redirect("/")); //TODO: Go to app root
        }
Ejemplo n.º 24
0
	void Awake ()
	{
		Instance = this;
	}