Can you pleas elet me know if this is a BUG??
I found the issue its in the Update method of IndentityUserAppService
await UpdateUserByInput(user, input);
input.MapExtraPropertiesTo(user);
(await UserManager.UpdateAsync(user)).CheckErrors();
await CurrentUnitOfWork.SaveChangesAsync();
the is not manpping from IdenityUserUpdateDto to IdentityUser hence i added to make modification from this
input.MapExtraPropertiesTo(user);
to
input.MapExtraPropertiesTo(user, MappingPropertyDefinitionChecks.Source);
It works for SaaS module which i have modified but doesn't work for the user module
can we do a screen share i can show you!
I am doing for user not tenant sorry the code is as follows
and i am using 4.3.2
ObjectExtensionManager.Instance.Modules()
.ConfigureIdentity(identity =>
{
identity.ConfigureUser(user =>
{
user.AddOrUpdateProperty<bool>(
//property type: string
"isActive", //property name
property =>
{
//validation rules
property.Attributes.Add(new RequiredAttribute());
property.DefaultValue = true;
//...other configurations for this property
}
);
});
});
Yes the file definately exists
below is my web.csproj file
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\common.props" />
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel>
<RootNamespace>DesertFire.Ppm.Web</RootNamespace>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
<PreserveCompilationContext>true</PreserveCompilationContext>
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
<PreserveCompilationReferences>true</PreserveCompilationReferences>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Logs\**" />
<Content Remove="Logs\**" />
<EmbeddedResource Remove="Logs\**" />
<None Remove="Logs\**" />
</ItemGroup>
<ItemGroup>
<Content Include="Pages\**\*.js">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Pages\**\*.css">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Remove="wwwroot\styles\custom.css" />
<Content Remove="wwwroot\styles\lepton1.min.css" />
</ItemGroup>
<ItemGroup>
<None Remove="Pages\Account\ConfirmUser.js" />
<None Remove="Pages\Identity\index.js" />
<None Remove="Pages\Identity\Users\create.js" />
<None Remove="Pages\Identity\Users\edit.js" />
<None Remove="Pages\index.js" />
<None Remove="Pages\Payment\gateway-selection.js" />
<None Remove="Pages\Public\buyTenant.js" />
<None Remove="Pages\Storage\Index.js" />
<None Remove="Pages\Subscriptions\buy.js" />
<None Remove="Pages\Subscriptions\buyLicensedUsers.js" />
<None Remove="Pages\Subscriptions\RegisterTenantModal.js" />
<None Remove="Pages\Symbols\importModal.css" />
<None Remove="Pages\Symbols\ImportModal.js" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
<PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="5.0.*" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.MicrosoftAccount" Version="5.0.*" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Twitter" Version="5.0.*" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="5.0.*" />
<PackageReference Include="Volo.Payment.Web" Version="4.3.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DesertFire.Ppm.Application\DesertFire.Ppm.Application.csproj" />
<ProjectReference Include="..\DesertFire.Ppm.HttpApi\DesertFire.Ppm.HttpApi.csproj" />
<ProjectReference Include="..\DesertFire.Ppm.EntityFrameworkCore.DbMigrations\DesertFire.Ppm.EntityFrameworkCore.DbMigrations.csproj" />
<PackageReference Include="Volo.Abp.Autofac" Version="4.3.2" />
<PackageReference Include="Volo.Abp.AspNetCore.Serilog" Version="4.3.2" />
<PackageReference Include="Volo.Abp.AspNetCore.Authentication.JwtBearer" Version="4.3.2" />
<PackageReference Include="Volo.Abp.Swashbuckle" Version="4.3.2" />
<PackageReference Include="Volo.Abp.FeatureManagement.Web" Version="4.3.2" />
<PackageReference Include="Volo.Abp.Account.Pro.Public.Web.IdentityServer" Version="4.3.2" />
<PackageReference Include="Volo.Abp.Account.Pro.Admin.Web" Version="4.3.2" />
<PackageReference Include="Volo.Abp.AuditLogging.Web" Version="4.3.2" />
<PackageReference Include="Volo.Abp.Identity.Pro.Web" Version="4.3.2" />
<PackageReference Include="Volo.Abp.LeptonTheme.Management.Web" Version="4.3.2" />
<PackageReference Include="Volo.Abp.IdentityServer.Web" Version="4.3.2" />
<PackageReference Include="Volo.Abp.LanguageManagement.Web" Version="4.3.2" />
<PackageReference Include="Volo.Saas.Host.Web" Version="4.3.2" />
<PackageReference Include="Volo.Abp.AspNetCore.Mvc.UI.Theme.Lepton" Version="4.3.2" />
<PackageReference Include="Volo.Abp.TextTemplateManagement.Web" Version="4.3.2" />
</ItemGroup>
<ItemGroup>
<None Update="tempkey.rsa">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="tempkey.jwk">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Include="wwwroot\assets\fonts\poppins-v6-latin-100.woff2" />
<None Include="wwwroot\assets\fonts\poppins-v6-latin-200.woff2" />
<None Include="wwwroot\assets\fonts\poppins-v6-latin-300.woff2" />
<None Include="wwwroot\assets\fonts\poppins-v6-latin-600.woff2" />
<None Include="wwwroot\assets\fonts\poppins-v6-latin-600italic.woff2" />
<None Include="wwwroot\assets\fonts\poppins-v6-latin-700.woff2" />
<None Include="wwwroot\assets\fonts\poppins-v6-latin-700italic.woff2" />
<None Include="wwwroot\assets\fonts\poppins-v6-latin-italic.woff2" />
<None Include="wwwroot\assets\fonts\poppins-v6-latin-regular.woff2" />
<None Include="wwwroot\styles\custom.css" />
</ItemGroup>
</Project>
still no response we need a working example of the Subscription and Payment system which creates a tenant ... happy to do a video for community if you explain how we can achive this
please respond!
@einisn I have just sent you the empty solution where the menu is not working when edited in the *.Web
Project
The template which is being downloaded for the Basic-Theme has a lot of issues which need resolving after it has been added to the solution
The Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj file show contacing the following packages
<PackageReference Include="Volo.Abp.AspNetCore.Mvc" Version="4.4.0" />
<PackageReference Include="Volo.Abp.Autofac" Version="4.4.0" />
<PackageReference Include="Volo.Abp.AspNetCore.TestBase" Version="4.4.0" />
<PackageReference Include="NSubstitute" Version="4.2.2" />
<PackageReference Include="Shouldly" Version="4.0.3" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.extensibility.execution" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
especially the following
<PackageReference Include="Volo.Abp.AspNetCore.Tests" Version="4.4.0" />
should be replaced with
<PackageReference Include="Volo.Abp.AspNetCore.TestBase" Version="4.4.0" />
the following lines also need to be added to AbpAspNetCoreMvcUiBootstrapDemoTestBase.cs
file of Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj
project
public abstract class AbpAspNetCoreMvcUiBootstrapDemoTestBase : AbpAspNetCoreTestBase<TestStartup>
to
public abstract class AbpAspNetCoreMvcUiBootstrapDemoTestBase : AbpAspNetCoreIntegratedTestBase<TestStartup>
the following lines also need to be added to AbpAspNetCoreMvcUiBootstrapDemoTestBase.cs
file of Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj
project
protected virtual async Task<string> GetResponseAsStringAsync(string url, HttpStatusCode expectedStatusCode = HttpStatusCode.OK)
{
using (var response = await GetResponseAsync(url, expectedStatusCode))
{
return await response.Content.ReadAsStringAsync();
}
}
protected virtual async Task<HttpResponseMessage> GetResponseAsync(string url, HttpStatusCode expectedStatusCode = HttpStatusCode.OK)
{
using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, url))
{
requestMessage.Headers.Add("Accept-Language", CultureInfo.CurrentUICulture.Name);
var response = await Client.SendAsync(requestMessage);
response.StatusCode.ShouldBe(expectedStatusCode);
return response;
}
}
the file AbpAspNetCoreMvcUiBootstrapDemoTestBase.cs
should be as follows
using System;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Hosting;
using Shouldly;
using Volo.Abp.AspNetCore.TestBase;
namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo
{
public abstract class AbpAspNetCoreMvcUiBootstrapDemoTestBase : AbpAspNetCoreIntegratedTestBase<TestStartup>
{
protected override IHostBuilder CreateHostBuilder()
{
return base.CreateHostBuilder()
.UseContentRoot(CalculateContentRootPath());
}
private static string CalculateContentRootPath()
{
return CalculateContentRootPath(
"Volo.Abp.sln",
$"test{Path.DirectorySeparatorChar}Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo"
);
}
private static string CalculateContentRootPath(
string testFileNameInTheRootFolder,
string relativeContentPath)
{
var currentDirectory = Directory.GetCurrentDirectory();
while (!ContainsFile(currentDirectory, testFileNameInTheRootFolder))
{
currentDirectory = new DirectoryInfo(currentDirectory).Parent.FullName;
}
if (!relativeContentPath.IsNullOrWhiteSpace())
{
currentDirectory = Path.Combine(currentDirectory, relativeContentPath);
}
return currentDirectory;
}
private static bool ContainsFile(string currentDirectory, string projectFileName)
{
return Directory
.GetFiles(currentDirectory, "*.*", SearchOption.TopDirectoryOnly)
.Any(f => Path.GetFileName(f) == projectFileName);
}
protected virtual async Task<string> GetResponseAsStringAsync(string url, HttpStatusCode expectedStatusCode = HttpStatusCode.OK)
{
using (var response = await GetResponseAsync(url, expectedStatusCode))
{
return await response.Content.ReadAsStringAsync();
}
}
protected virtual async Task<HttpResponseMessage> GetResponseAsync(string url, HttpStatusCode expectedStatusCode = HttpStatusCode.OK)
{
using (var requestMessage = new HttpRequestMessage(HttpMethod.Get, url))
{
requestMessage.Headers.Add("Accept-Language", CultureInfo.CurrentUICulture.Name);
var response = await Client.SendAsync(requestMessage);
response.StatusCode.ShouldBe(expectedStatusCode);
return response;
}
}
}
}
Please return my ticket
let me know when you have fixed basic-theme template so I can add it to my solution again and test
can i please have a response from ABP still can't get the menu system working when Redis is on in the *Public.Web
looks like the *.Web
doesn't have Redis configuration even after adding Redis to the *.Web
project it doesn't work
Can we please have a response from someone from ABP??
We we have to build our own page to create the tenant .... looks like the subscription system you have built is for tenant that are mannually created and why can the tenant specify his own payment gateway shouldn't this be restricted to the Host??