Пример #1
0
    public Task <string> GetOrNullAsync(SettingDefinition setting)
    {
        switch (setting.Name)
        {
        case LdapSettingNames.ServerHost:
            return(Task.FromResult("localhost"));

        case LdapSettingNames.ServerPort:
            return(Task.FromResult("389"));

        case LdapSettingNames.BaseDc:
            return(Task.FromResult("dc=abp,dc=io"));

        case LdapSettingNames.Domain:
            return(Task.FromResult <string>(null));

        case LdapSettingNames.UserName:
            return(Task.FromResult("admin"));

        case LdapSettingNames.Password:
            return(Task.FromResult("123qwe"));

        default:
            return(Task.FromResult <string>(null));
        }
    }
Пример #2
0
        public T GetSetting <T>(SettingDefinition <T> settingDefinition)
        {
            if (settingDefinition.IsRoaming)
            {
                if (_roamingSettings.Values.ContainsKey(settingDefinition.Name))
                {
                    if (typeof(T).IsEnum)
                    {
                        return((T)Enum.Parse(typeof(T), _roamingSettings.Values[settingDefinition.Name].ToString()));
                    }

                    return((T)_roamingSettings.Values[settingDefinition.Name]);
                }
            }
            else
            {
                if (_localSettings.Values.ContainsKey(settingDefinition.Name))
                {
                    if (typeof(T).IsEnum)
                    {
                        return((T)Enum.Parse(typeof(T), _localSettings.Values[settingDefinition.Name].ToString()));
                    }

                    return((T)_localSettings.Values[settingDefinition.Name]);
                }
            }

            SetSetting(settingDefinition, settingDefinition.DefaultValue);
            return(settingDefinition.DefaultValue);
        }
Пример #3
0
        public JsonResult GetEncryptionSecret()
        {
            SettingDefinition rd = new SettingDefinition("Settings:Abp.Mailing.Smtp.Password", "123456");
            var res = _settingEncryptionService.Encrypt(rd, _configuration.GetValue <string>("Settings:Abp.Mailing.Smtp.Password"));

            return(new JsonResult(res));
        }
Пример #4
0
        private SettingHtmlInfo CreateSettingHtmlInfo(SettingDefinition settingDefinition)
        {
            LocalizedString displayName;

            if (settingDefinition.DisplayName is FixedLocalizableString fls && fls.Value == settingDefinition.Name)
            {
                displayName = _localizer[$"DisplayName:{settingDefinition.Name}"];
            }
Пример #5
0
        public void AddSettingValue(SettingValue settingValue)
        {
            SettingDefinition settingDef = this.GetSettingDefinitionById(settingValue.SettingDefinitionID);

            settingValue = Encrypt(settingValue, settingDef);
            _dbContext.Set <SettingValue>().Add(settingValue);
            _dbContext.SaveChanges();
        }
Пример #6
0
    public virtual string Decrypt(SettingDefinition settingDefinition, string encryptedValue)
    {
        if (encryptedValue.IsNullOrEmpty())
        {
            return(encryptedValue);
        }

        return(StringEncryptionService.Decrypt(encryptedValue));
    }
Пример #7
0
    public virtual string Encrypt(SettingDefinition settingDefinition, string plainValue)
    {
        if (plainValue.IsNullOrEmpty())
        {
            return(plainValue);
        }

        return(StringEncryptionService.Encrypt(plainValue));
    }
        public async Task <string> GetOrNullAsync(SettingDefinition setting)
        {
            if (setting.Name == "Example.Setting3")
            {
                return(await Task.FromResult("www.xcode.me"));
            }

            return(null);
        }
Пример #9
0
        public override async Task <string> GetOrNullAsync(SettingDefinition setting)
        {
            if (CurrentUser.Id == null)
            {
                return(null);
            }

            return(await SettingStore.GetOrNullAsync(setting.Name, Name, CurrentUser.Id.ToString()));
        }
Пример #10
0
        public ActionResult UpdateMembershipSetting(string fieldName, string newValue)
        {
            SettingDefinition settingDef = _settingService.GetSettingDefinitionByName("MembershipSetting");
            SettingValue      settingVal = _settingService.SelectSettingValues(string.Empty, settingDef.Id).First();

            settingVal.Set(settingDef, fieldName, newValue);
            _settingService.UpdateSettingValue(settingVal);
            _cacheService.Clear();

            return(new EmptyResult());
        }
Пример #11
0
 public void ResetSetting <T>(SettingDefinition <T> settingDefinition)
 {
     if (settingDefinition.IsRoaming)
     {
         _roamingSettings.Values.Remove(settingDefinition.Name);
     }
     else
     {
         _localSettings.Values.Remove(settingDefinition.Name);
     }
 }
Пример #12
0
        public override IEnumerable <SettingDefinition> GetSettingDefinitions(SettingDefinitionProviderContext context)
        {
            //var interGroup = new SettingDefinitionGroup("InterSetting", L("内部设置"));
            //group设为null则不在设置页面中出现
            var menuSettingDefinition = new SettingDefinition(SettingNames.MenuSetting, "", L("菜单"), group: null, scopes: SettingScopes.Tenant | SettingScopes.User);


            var group  = new SettingDefinitionGroup("Core", L("基本设置"));
            var group2 = new SettingDefinitionGroup("Login", L("登录"));
            var group3 = new SettingDefinitionGroup("Email", L("邮件"));

            return(new SettingDefinition[]
            {
                menuSettingDefinition,
                new SettingDefinition(SettingNames.SoftTitle, "简法案例系统", L("系统标题"), group, scopes: SettingScopes.Application, isVisibleToClients: true),
                new SettingDefinition(SettingNames.login_lockoutCount, "6", L("失败次数"), group2, scopes: SettingScopes.Application, customData: new SettingUIInfo()
                {
                    ColumnType = Module.ColumnTypes.Number, Tips = "同一用户名登录失败超过此数字将被锁定登录"
                }),
                new SettingDefinition(SettingNames.login_lockoutDuration, "30", L("锁定时长"), group2, scopes: SettingScopes.Application, customData: new SettingUIInfo()
                {
                    ColumnType = Module.ColumnTypes.Number, Tips = "单位分钟", Renderer = "lay-lockout"
                }),
                new SettingDefinition(SettingNames.maxWorkbenchCaseCount, "10", L("工作台可选案例数"), group, scopes: SettingScopes.Application, isVisibleToClients: true),
                new SettingDefinition(SettingNames.receiveMailAddress, "", L("接收邮件地址"), group, scopes: SettingScopes.Application, isVisibleToClients: true),

                new SettingDefinition(SettingNames.mail_smtpServer, "", L("SMTP服务器"), group3, scopes: SettingScopes.Application, customData: new SettingUIInfo()
                {
                    ColumnType = Module.ColumnTypes.Text
                }),

                new SettingDefinition(SettingNames.mail_ssl, "false", L("SSL"), group3, scopes: SettingScopes.Application, customData: new SettingUIInfo()
                {
                    ColumnType = Module.ColumnTypes.Switch
                }),

                new SettingDefinition(SettingNames.mail_username, "", L("用户名"), group3, scopes: SettingScopes.Application, customData: new SettingUIInfo()
                {
                    ColumnType = Module.ColumnTypes.Text
                }),
                new SettingDefinition(SettingNames.mail_pwd, "", L("密码"), group3, scopes: SettingScopes.Application, customData: new SettingUIInfo()
                {
                    ColumnType = Module.ColumnTypes.Text
                }),
                new SettingDefinition(SettingNames.mail_nickname, "", L("昵称"), group3, scopes: SettingScopes.Application, customData: new SettingUIInfo()
                {
                    ColumnType = Module.ColumnTypes.Text
                }),
                new SettingDefinition(SettingNames.mail_fromname, "", L("发件人"), group3, scopes: SettingScopes.Application, isVisibleToClients: true, customData: new SettingUIInfo()
                {
                    ColumnType = Module.ColumnTypes.Text
                }),
            });
        }
        public static ILocalizableString GetGroupOrNull(
            this SettingDefinition setting)
        {
            var group = setting.Properties.GetOrDefault(SettingDefinitionPropertiesNames.GroupName);

            if (group != null)
            {
                return((ILocalizableString)group);
            }
            return(null);
        }
        public static string GetFieldControlProviderNameOrNull(
            this SettingDefinition setting)
        {
            var providerName = setting.Properties.GetOrDefault(SettingDefinitionPropertiesNames.ControlProviderName);

            if (providerName != null)
            {
                return((string)providerName);
            }
            return(null);
        }
        public override void Define(ISettingDefinitionContext context)
        {
            //Define your own settings here. Example:
            //context.Add(new SettingDefinition(AbpQa263DemoSettings.MySetting1));

            var userSetting = new SettingDefinition(AbpQa263DemoSettings.ExampleSetting);

            userSetting.Properties[AbpQa263DemoConsts.SettingPermissionNames] = new[]
            { "AbpQa263Demo.HostUserPermission", "AbpQa263Demo.UserPermission" };

            context.Add(userSetting);
        }
        public static SettingDefinition UseDataDictionary(
            this SettingDefinition settingDefinition,
            Action <DataDictionaryConfiguration> dataDictionaryConfigureAction)
        {
            var dataDictionaryConfiguration = new DataDictionaryConfiguration(new FieldControlConfigurationDictionary());

            dataDictionaryConfigureAction(dataDictionaryConfiguration);

            settingDefinition.WithProperty(SettingDefinitionPropertiesNames.ControlConfigurationName, dataDictionaryConfiguration);
            settingDefinition.WithProperty(SettingDefinitionPropertiesNames.ControlProviderName, DataDictionaryFieldControlProvider.ProviderName);

            return(settingDefinition);
        }
Пример #17
0
        public static SettingDefinition UseTextbox(
            this SettingDefinition settingDefinition,
            Action <TextboxConfiguration> textboxConfigureAction)
        {
            var textboxConfiguration = new TextboxConfiguration(new FieldControlConfigurationDictionary());

            textboxConfigureAction(textboxConfiguration);

            settingDefinition.WithProperty(SettingDefinitionPropertiesNames.ControlConfigurationName, textboxConfiguration.GetConfiguration());
            settingDefinition.WithProperty(SettingDefinitionPropertiesNames.ControlProviderName, TextboxFieldControlProvider.ProviderName);

            return(settingDefinition);
        }
Пример #18
0
        public ActionResult UpdateApplicationSetting(string name, string newValue)
        {
            SettingDefinition settingDef   = _settingService.GetSettingDefinitionByName("AppSetting");
            SettingValue      settingValue = _settingService.SelectSettingValues(null, settingDef.Id)
                                             .Where(s => s.Get(settingDef, "Name") == name)
                                             .First();

            settingValue.Set(settingDef, "Value", newValue);
            _settingService.UpdateSettingValue(settingValue);
            _cacheService.Clear();

            return(new EmptyResult());
        }
Пример #19
0
        public static void Set(this SettingValue settingValue, SettingDefinition settingDef, string fieldName, string value)
        {
            for (int i = 1; i <= FieldCount; i++)
            {
                string name = (string)settingDef.GetType().GetProperty("Field" + i.ToString()).GetValue(settingDef, null);

                if (fieldName == name)
                {
                    settingValue.GetType().GetProperty("Field" + i.ToString()).SetValue(settingValue, value);
                    return;
                }
            }
        }
        public static FieldControlConfigurationDictionary GetFieldControlConfigurationOrNull(
            this SettingDefinition setting)
        {
            var controlConfiguration = setting.Properties.GetOrDefault(SettingDefinitionPropertiesNames.ControlConfigurationName);

            if (controlConfiguration == null)
            {
                return(null);
            }
            else
            {
                return((FieldControlConfigurationDictionary)controlConfiguration);
            }
        }
Пример #21
0
 public SettingHtmlInfo(SettingDefinition settingDefinition,
                        LocalizedHtmlString displayName, LocalizedHtmlString description,
                        string value)
 {
     Name              = settingDefinition.Name;
     DisplayName       = displayName;
     Description       = description;
     Value             = value;
     Group1            = (string)settingDefinition.Properties[AbpSettingManagementMvcUIConst.Group1];
     Group2            = (string)settingDefinition.Properties[AbpSettingManagementMvcUIConst.Group2];
     FormName          = AbpSettingManagementMvcUIConst.FormNamePrefix + Name.DotToUnderscore();
     Type              = (string)settingDefinition.Properties[AbpSettingManagementMvcUIConst.Type];
     SettingDefinition = settingDefinition;
 }
Пример #22
0
        public override async Task <string> GetOrNullAsync(SettingDefinition setting, string providerKey)
        {
            if (providerKey == null)
            {
                if (CurrentTenant.Id == null)
                {
                    return(null);
                }

                providerKey = CurrentTenant.Id.ToString();
            }

            return(await SettingStore.GetOrNullAsync(setting.Name, Name, providerKey));
        }
        public override IEnumerable <SettingDefinition> GetSettingDefinitions(SettingDefinitionProviderContext context)
        {
            var interGroup            = new SettingDefinitionGroup("InterSetting", L("内部设置"));
            var menuSettingDefinition = new SettingDefinition(SettingNames.MenuSetting, "", L("菜单"), group: interGroup, scopes: SettingScopes.Tenant | SettingScopes.User);


            var group = new SettingDefinitionGroup("Core", L("基本设置"));

            return(new[]
            {
                menuSettingDefinition,
                new SettingDefinition(SettingNames.SoftTitle, "管理系统", L("系统标题"), group, scopes: SettingScopes.Tenant, isVisibleToClients: true)
            });
        }
Пример #24
0
        protected virtual SettingDefinitionOutput Convert(SettingDefinition definition)
        {
            var output = new SettingDefinitionOutput
            {
                Name        = definition.Name,
                DisplayName = definition.DisplayName?.Localize(_localizationContext)
            };

            if (definition.Group != null)
            {
                output.GroupName    = definition.Group.Name;
                output.GroupDisplay = definition.Group.DisplayName?.Localize(_localizationContext);
            }
            else
            {
                if (definition.Name.StartsWith("Abp.Zero.Ldap."))
                {
                    output.GroupName    = ZeroConsts.SettingGroups.SettingGroups_LDAP;
                    output.GroupDisplay = L(nameof(ZeroConsts.SettingGroups.SettingGroups_LDAP));
                }
                else if (output.Name.StartsWith("Abp.Net.Mail."))
                {
                    output.GroupName    = ZeroConsts.SettingGroups.SettingGroups_Mail;
                    output.GroupDisplay = L(nameof(ZeroConsts.SettingGroups.SettingGroups_Mail));
                }
                else if (output.Name.StartsWith("Abp.Zero.UserManagement."))
                {
                    output.GroupName    = ZeroConsts.SettingGroups.SettingGroups_UserManagement;
                    output.GroupDisplay = L(nameof(ZeroConsts.SettingGroups.SettingGroups_UserManagement));
                }
                else if (output.Name.Contains(".BackgroundWorkers."))
                {
                    output.GroupName    = ZeroConsts.SettingGroups.SettingGroups_BackgroundWorkers;
                    output.GroupDisplay = L(nameof(ZeroConsts.SettingGroups.SettingGroups_BackgroundWorkers));
                }
                else if (output.Name == "Abp.Localization.DefaultLanguageName" ||
                         output.Name == "Abp.Timing.TimeZone")
                {
                    output.GroupName    = ZeroConsts.SettingGroups.SettingGroups_LanguageTimeZone;
                    output.GroupDisplay = L(nameof(ZeroConsts.SettingGroups.SettingGroups_LanguageTimeZone));
                }
                else
                {
                    output.GroupName    = ZeroConsts.SettingGroups.SettingGroups_Others;
                    output.GroupDisplay = L(nameof(ZeroConsts.SettingGroups.SettingGroups_Others));
                }
            }
            return(output);
        }
Пример #25
0
        public void SettingsTest()
        {
            ISettingsProvider settingsProvider = ExportProvider.GetExport <ISettingsProvider>();

            var setting = new SettingDefinition <bool>("dummySetting", isRoaming: false, defaultValue: true);

            // Remove previous setting if exists.
            settingsProvider.ResetSetting(setting);

            Assert.IsTrue(settingsProvider.GetSetting(setting));

            settingsProvider.SetSetting(setting, false);

            Assert.IsFalse(settingsProvider.GetSetting(setting));
        }
Пример #26
0
    protected virtual async Task <string> GetOrNullValueFromProvidersAsync(
        IEnumerable <ISettingValueProvider> providers,
        SettingDefinition setting)
    {
        foreach (var provider in providers)
        {
            var value = await provider.GetOrNullAsync(setting);

            if (value != null)
            {
                return(value);
            }
        }

        return(null);
    }
Пример #27
0
        protected void ChangeSettingValue(SettingDefinition settings, object value)
        {
            var val = value?.ToString();

            if (settings.Scopes.HasFlag(SettingScopes.User) && this.AbpSession.UserId.HasValue)
            {
                this._settingManager.ChangeSettingForUser(this.AbpSession.ToUserIdentifier(), settings.Name, val);
            }
            else if (settings.Scopes.HasFlag(SettingScopes.Tenant) && this.AbpSession.TenantId.HasValue)
            {
                this._settingManager.ChangeSettingForTenant(this.AbpSession.TenantId.Value, settings.Name, val);
            }
            else if (settings.Scopes.HasFlag(SettingScopes.Application))
            {
                this._settingManager.ChangeSettingForApplication(settings.Name, val);
            }
        }
Пример #28
0
        public ActionResult List(SettingsListModel model)
        {
            if (model == null)
            {
                model = new SettingsListModel();
            }

            if (Request.IsAjaxRequest())
            {
                IList <SettingValue> values = _settingService.SelectSettingValues(model.Ordering, model.SettingDefId.Value).
                                              Where(value => value.IsHiddenFromUser == false).ToList();
                SettingDefinition settingDef = _settingService.GetSettingDefinitionById(model.SettingDefId.Value);

                foreach (SettingValue settingVal in values)
                {
                    for (int i = 1; i <= 15; i++)
                    {
                        FormInputType type = (FormInputType)typeof(SettingDefinition).GetProperty("FieldInputType" + i.ToString()).GetValue(settingDef, null);

                        if (type == FormInputType.Password)
                        {
                            typeof(SettingValue).GetProperty("Field" + i.ToString()).SetValue(settingVal, "******");
                        }
                    }
                }
                return(DataTableResult(values as IList));
            }
            else
            {
                IEnumerable <SettingDefinition> settingDefList = _settingService.SelectAllSettingDefinitions();
                //Some settings has their own maangement page
                model.SettingDefinitionSelectList = settingDefList
                                                    .Where(p => p.Name != AvailableSettings.EMailSetting &&
                                                           p.Name != AvailableSettings.HTMLTemplate &&
                                                           p.Name != AvailableSettings.MembershipSetting &&
                                                           p.Name != AvailableSettings.AppSetting)
                                                    .Select(p => new SelectListItem
                {
                    Value = p.Id.ToString(),
                    Text  = p.Name + " (" + p.Description + ")"
                }).ToList();
                model.SettingDefinitions = settingDefList;

                return(View(model));
            }
        }
Пример #29
0
    public virtual string Decrypt(SettingDefinition settingDefinition, string encryptedValue)
    {
        if (encryptedValue.IsNullOrEmpty())
        {
            return(encryptedValue);
        }

        try
        {
            return(StringEncryptionService.Decrypt(encryptedValue));
        }
        catch (Exception e)
        {
            Logger.LogException(e);
            return(string.Empty);
        }
    }
Пример #30
0
        public SettingDetailsDto AddDetail(SettingDefinition setting, IStringLocalizerFactory factory, string value, ValueType type)
        {
            var detail = new SettingDetailsDto()
            {
                DefaultValue = setting.DefaultValue,
                IsEncrypted  = setting.IsEncrypted,
                Description  = setting.Description.Localize(factory),
                DisplayName  = setting.DisplayName.Localize(factory),
                Name         = setting.Name,
                Value        = value,
                ValueType    = type
            };

            Details.Add(detail);

            return(detail);
        }