Ends in:
7 DAYS
10 HRS
29 MIN
55 SEC
Ends in:
7 D
10 H
29 M
55 S

Activities of "liangshiwei"

Hi,

I can't reproduce the problem.

ObjectExtensionManager.Instance.Modules()
  .ConfigureIdentity(identity =>
  {
      identity.ConfigureUser(user =>
      {
          user.AddOrUpdateProperty<string>( //property type: string
              "SocialSecurityNumber", //property name
              property =>
              {
                  property.Attributes.Add(new RequiredAttribute());
                  property.Attributes.Add(new StringLengthAttribute(64) {MinimumLength = 4});

              }
          );

          user.AddOrUpdateProperty<string>("Test");
          user.AddOrUpdateProperty<string>("Test2");
          user.AddOrUpdateProperty<string>("Test3");
          user.AddOrUpdateProperty<string>("Test4");
          user.AddOrUpdateProperty<string>("Test5");
          user.AddOrUpdateProperty<string>("Test6");
      });
  });

What is the logic within abp-extensible-form to decide the input control rendered on UI?

Here is the source code

https://github.com/abpframework/abp/blob/rel-8.0/npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.ts

Hi,

could you please share the all application logs? thanks.

Hi,

Can you explain more clearly that the override controller you mentioned is only intended to set infor to the cache so that the next call request will use the infor in the cache, right?

Yes, this is the response cache, the next call will return the last response cache directly.

I would appreciate it if you could give me specific instructions on improving the [application-configuration] and [application-localization] APIs. because I am worried that the override will cause missing information in case ABP updates that API.

I understand that, it's possible.

Actually I think you don't have to care about the performance because redundant calls don't cause performance problems; the endpoint uses a distributed cache inside

Hi,

At this time, the application is in the initialization, so you can't inject the services.

You can try to use ADO.NET to query the database at the time

Hi,

you can override SettingProvider and SettingManagement to log the setting value from where and check it log.

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(ISettingProvider))]
public class MySettingProvider : SettingProvider
{
    private readonly ILogger<MySettingManagement> _logger;
    public MySettingProvider([NotNull] ISettingDefinitionManager settingDefinitionManager, [NotNull] ISettingEncryptionService settingEncryptionService, [NotNull] ISettingValueProviderManager settingValueProviderManager, ILogger<MySettingManagement> logger) : base(settingDefinitionManager, settingEncryptionService, settingValueProviderManager)
    {
        _logger = logger;
    }

    protected async override Task<string> GetOrNullValueFromProvidersAsync(IEnumerable<ISettingValueProvider> providers, SettingDefinition setting)
    {
        foreach (var provider in providers)
        {
            var value = await provider.GetOrNullAsync(setting);
            _logger.LogInformation($"Get value from SettingProvider: {provider.Name}, Value: {value}");
            if (value != null)
            {
                return value;
            }
        }

        return null;
    }
}

[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(ISettingManager))]
public class MySettingManagement : SettingManager
{
    private readonly ILogger<MySettingManagement> _logger;
    public MySettingManagement(IOptions<SettingManagementOptions> options, IServiceProvider serviceProvider, ISettingDefinitionManager settingDefinitionManager, ISettingEncryptionService settingEncryptionService, ISettingManagementStore settingManagementStore, ILogger<MySettingManagement> logger) : base(options, serviceProvider, settingDefinitionManager, settingEncryptionService, settingManagementStore)
    {
        _logger = logger;
    }

    protected async override Task<string> GetOrNullInternalAsync(string name, string providerName, string providerKey, bool fallback = true)
    {
        var setting = await SettingDefinitionManager.GetAsync(name);
        var providers = Enumerable
            .Reverse(Providers);

        if (providerName != null)
        {
            providers = providers.SkipWhile(c => c.Name != providerName);
        }

        if (!fallback || !setting.IsInherited)
        {
            providers = providers.TakeWhile(c => c.Name == providerName);
        }

        string value = null;
        foreach (var provider in providers)
        {
            value = await provider.GetOrNullAsync(
                setting,
                provider.Name == providerName ? providerKey : null
            );

            _logger.LogInformation($"Get value from SettingProvider: {provider.Name}, Value: {value}");
            if (value != null)
            {
                break;
            }
        }

        if (setting.IsEncrypted)
        {
            value = SettingEncryptionService.Decrypt(setting, value);
        }

        return value;
    }
}

Hi,

Yes, we upgrade all Nuget package to the latest

https://github.com/abpframework/abp/pull/20960

Hi

Please give me the access permission, my github name is realLiangshiwei

Hi,

Do we have any way to show the button like external provider login method(microsoft, google, twitter)? and the handle flow like the image below. Please help to give any

of course, you can, just like configuring an external provider

Comment typeof(AbpBackgroundJobsDomainModule)

Hi,

Permission management module is a basic module, and identity module depends on it. if you don't want use permission management you have to remove identity module too

Showing 201 to 210 of 6130 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on November 20, 2024, 13:06