As a logic you're right. It can be a business logic such as you mentioned. But currently, ABP doesn't implement that kind of logic.
The shortest way to perform that operation is overriding IdentityUserAppService
[Dependency(ReplaceServices = true)]
public class MyCustomIdentityUserAppService : IdentityUserAppService
{
public MyCustomIdentityUserAppService(
IdentityUserManager userManager,
IIdentityUserRepository userRepository,
IIdentityRoleRepository roleRepository,
IOptions<IdentityOptions> identityOptions) : base(userManager, userRepository, roleRepository, identityOptions)
{
}
public override async Task<ListResultDto<IdentityRoleDto>> GetAssignableRolesAsync()
{
var roles = await base.GetAssignableRolesAsync();
if (/* Your condition.*/) // CurrentUser.UserName == "admin"
{
var customRoleList = roles.Items.ToList();
customRoleList.Remove(roles.Items.FirstOrDefault(x => x.Name == "admin"));
return new ListResultDto<IdentityRoleDto>(customRoleList);
}
return roles;
}
}```
Hi @christophe.baille
Currently, our Saas & Payment modules don't support subscriptions. Also Payment module is built on common features across payment providers. It's an abstraction for multiple payment providers, some of providers can support trial and some of them do not, we can't just implement it for only stripe for now.
For now, you can manually implement stripe requests via overriding SubscriptionService.
Hi @abpdeveloper@dbizsolution.com
Can you share steps to reproduce this problem?
Are you sure that tenant exists in your database with that Id? It might be deleted but your browser still contains it in cookies.
Can you share console logs of browser for blazor app?
Also can you share your HttpApi.Host logs?
I can't guess the problem right now
Hi @Noura
Can you please just provide information that if is your Item entity inherits from Entity or AuditedEntity ?
Hi @joe@tronactive.com
Currently, the SaaS module depends on Core features of Payment module to serve subscription feature.
There is a way to remove those tables from your database and ignore them permanently. But I do not suggest it, because if you'll use subscription feature in future, you'll need to add them manually again.
builder.Ignore<GatewayPlan>();
builder.Ignore<PaymentRequest>();
builder.Ignore<PaymentRequestProducts>();
builder.Ignore<Plan>();
Webhook operations such as your second & third operations will be solved in your situation.
The first : When you make a subscription everything goes well, the Payment/GatewaySelection page redirects to Payment/Stripe/PrePayment but this last page does not redirect to the stripe payment page. No errors in the logs. We can retrieve payment url from stripe logs and make payment however.
Payment redirection is made with javascript after the page is loaded. If you don't see any error on console, redirection should be done after a while
We've discovered an issue on our side. We'll release a patch version for it.
Also your credit is refunded.
Hi @willignicolas@gmail.com
Can you find the payload of webhook request from Stripe dashboard?
The error says there are has some invalid arguments. If you can share the payload, we can investigate which one is it.
Hi @christophe.baille
You can't use Volo.Payment.Web and Volo.Payment.Stripe.Web packages inside your Blazor WebAssembly. Web layers are only compatible with Blazor Server.
Thank you for your answer, I'll plan to publish an article about making payments in Blazor UI.