you don't need to add it to Suite.
abp login
is the only thing you need to do
I see michael, sebastian and ludger can succesfully login and run the project.
do you still get any error? then run these commands
del %UserProfile%\.\AppData\Local\Temp\AbpLicense.bin
del %UserProfile%\.abp\cli\access-token.bin
abp login
again.
@lalitChougule sorry for my late response.
This is a complex use case and there's no built-in way to achieve this type of usage. OrganizationUnits doesn't cover all your requirements. With OrganizationUnits you can group users and assign a role to an organization unit. But when you grant user create permission to AnchorAdmin, he'll be creating users for others as well.
Options:
1- You can create a new tenant for Anchors, Suppliers, Buyers. Then all your requirements will be supported. And you'll create the entities you share among them with not multitenant so that you can share the records.
2- You can override existing register user and get user list methods. So that you can implement your own logic.
These methods are virtual
and open to override.
namespace Volo.Abp.Identity
{
public class IdentityUserAppService : IdentityAppServiceBase, IIdentityUserAppService
{
public virtual async Task<PagedResultDto<IdentityUserDto>> GetListAsync(GetIdentityUsersInput input)
{
[Authorize(IdentityPermissions.Users.Create)]
public virtual async Task<IdentityUserDto> CreateAsync(IdentityUserCreateDto input)
{
await IdentityOptions.SetAsync();
var user = new IdentityUser(
GuidGenerator.Create(),
input.UserName,
input.Email,
CurrentTenant.Id
);
input.MapExtraPropertiesTo(user);
(await UserManager.CreateAsync(user, input.Password)).CheckErrors();
await UpdateUserByInput(user, input);
(await UserManager.UpdateAsync(user)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
await DistributedEventBus.PublishAsync(new IdentityUserCreatedEto()
{
Id = user.Id,
Properties =
{
{ "SendConfirmationEmail", input.SendConfirmationEmail.ToString().ToUpper() },
{ "AppName", "MVC" }
}
});
var userDto = ObjectMapper.Map<IdentityUser, IdentityUserDto>(user);
return userDto;
}
}
}
}
and also
Get user list method:
namespace Volo.Abp.Identity
{
public class IdentityUserAppService : IdentityAppServiceBase, IIdentityUserAppService
{
public virtual async Task<PagedResultDto<IdentityUserDto>> GetListAsync(GetIdentityUsersInput input)
{
var count = await UserRepository.GetCountAsync(input.Filter); //TODO:
var users = await UserRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount,
input.Filter);
var userDtos = ObjectMapper.Map<List<IdentityUser>, List<IdentityUserDto>>(users);
var twoFactorEnabled = await IdentityProTwoFactorManager.IsOptionalAsync();
for (int i = 0; i < users.Count; i++)
{
userDtos[i].IsLockedOut = users[i].LockoutEnabled &&
(users[i].LockoutEnd != null && users[i].LockoutEnd > DateTime.UtcNow);
userDtos[i].SupportTwoFactor = twoFactorEnabled;
}
return new PagedResultDto<IdentityUserDto>(
count,
userDtos
);
}
}
}
3- Add the Identity module source code to your project and you are free to customize everything.
there maybe other options but these are the first one come to my mind.
@nowayja for my late response, @mladen will that work?
You need to add the new language as below:
public class AcmeBookStoreDomainModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
Configure<AbpLocalizationOptions>(options =>
{
options.Languages.Add(new LanguageInfo("fr", "fr", "Français", "fr")); //add this <===
options.Languages.Add(new LanguageInfo("ar", "ar", "العربية", "ae"));
options.Languages.Add(new LanguageInfo("en", "en", "English", "gb"));
options.Languages.Add(new LanguageInfo("fi", "fi", "Finnish", "fi"));
options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe", "tr"));
options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文", "cn"));
options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsche", "de"));
options.Languages.Add(new LanguageInfo("es", "es", "Español", "es"));
options.Languages.Add(new LanguageInfo("sl", "sl", "Slovenščina", "si"));
});
}
}
check out https://github.com/abpframework/abp/blob/dev/docs/en/Community-Articles/2020-11-02-How-To-Add-New-Language/POST.md
ABP Framework version: v4.3.0
UI type: Angular
DB provider: EF Core
Tiered (MVC) or Identity Server Separated (Angular): Yes
Steps to reproduce the issue:
I just get source from ABP suite and build. It has this error
@edelivery couldn't understand what you get? is that a module?
Hi alper I just created new solution from abp suite
Template type: application template
so I understand this; you create a new Angular + EF Core + Separated Identity Server proejct. And it throws exception out of the box. Right?
Also I refunded your question credit.
thank you! I reproduced it. Will be fixed in v4.3.1
I guess the main issue has been resolved. To keep every issue clean, we close it. You can create a new ticket for the new question.
ABP Framework version: v4.3 UI type: Angular DB provider: EF Core Tiered (MVC) or Identity Server Separated (Angular): no
When we replace the account module with the source code we get the errors below in the angular project.
Error: ./src/main.ts Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js): Error: Debug error: DtsModuleScopeResolver.read(AccountSettingsModule from E:/Development/abp/Version43/angular/projects/account/admin/src/account-settings.module.ts), but not a .d.ts file
at MetadataDtsModuleScopeResolver.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\dependency.js:52:23) at MetadataDtsModuleScopeResolver.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\dependency.js:100:46) at LocalModuleScopeRegistry.getExportedScope (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:529:51) at LocalModuleScopeRegistry.getScopeOfModuleReference (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:271:44) at LocalModuleScopeRegistry.getScopeOfModule (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:148:22) at LocalModuleScopeRegistry.getScopeForComponent (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:122:22) at ComponentDecoratorHandler.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\annotations\src\component.js:365:42) at TraitCompiler.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\transform\src\compilation.js:392:50) at NgCompiler.resolveCompilation (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\core\src\compiler.js:542:27) at NgCompiler.<anonymous> (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\core\src\compiler.js:423:34) at step (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:143:27) at Object.next (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:124:57) at fulfilled (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:114:62) at process._tickCallback (internal/process/next_tick.js:68:7)Error: ./src/polyfills.ts Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js): Error: Debug error: DtsModuleScopeResolver.read(AccountSettingsModule from E:/Development/abp/Version43/angular/projects/account/admin/src/account-settings.module.ts), but not a .d.ts file
at MetadataDtsModuleScopeResolver.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\dependency.js:52:23) at MetadataDtsModuleScopeResolver.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\dependency.js:100:46) at LocalModuleScopeRegistry.getExportedScope (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:529:51) at LocalModuleScopeRegistry.getScopeOfModuleReference (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:271:44) at LocalModuleScopeRegistry.getScopeOfModule (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:148:22) at LocalModuleScopeRegistry.getScopeForComponent (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:122:22) at ComponentDecoratorHandler.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\annotations\src\component.js:365:42) at TraitCompiler.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\transform\src\compilation.js:392:50) at NgCompiler.resolveCompilation (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\core\src\compiler.js:542:27) at NgCompiler.<anonymous> (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\core\src\compiler.js:423:34) at step (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:143:27) at Object.next (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:124:57) at fulfilled (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:114:62) at process._tickCallback (internal/process/next_tick.js:68:7)Error: (webpack)-dev-server/client?http://0.0.0.0:0&sockPath=/sockjs-node Module build failed (from ./node_modules/@ngtools/webpack/src/ivy/index.js): Error: Debug error: DtsModuleScopeResolver.read(AccountSettingsModule from E:/Development/abp/Version43/angular/projects/account/admin/src/account-settings.module.ts), but not a .d.ts file
at MetadataDtsModuleScopeResolver.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\dependency.js:52:23) at MetadataDtsModuleScopeResolver.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\dependency.js:100:46) at LocalModuleScopeRegistry.getExportedScope (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:529:51)39m at LocalModuleScopeRegistry.getScopeOfModuleReference (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:271:44) at LocalModuleScopeRegistry.getScopeOfModule (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:148:22) at LocalModuleScopeRegistry.getScopeForComponent (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\scope\src\local.js:122:22) at ComponentDecoratorHandler.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\annotations\src\component.js:365:42) at TraitCompiler.resolve (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\transform\src\compilation.js:392:50) at NgCompiler.resolveCompilation (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\core\src\compiler.js:542:27) at NgCompiler.<anonymous> (E:\Development\abp\Version43\angular\node_modules@angular\compiler-cli\src\ngtsc\core\src\compiler.js:423:34) at step (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:143:27) at Object.next (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:124:57) at fulfilled (E:\Development\abp\Version43\angular\node_modules\tslib\tslib.js:114:62) at process._tickCallback (internal/process/next_tick.js:68:7)
@can.ercan this is a known issue and will be fixed in the next patch release.