I have a use case where a user is assigned to one or more roles. These roles may have an overlap in terms of permissions but from a user permission perspective the list of available permissions will be a union of all the roles' permissions they are assigned to. However, I would like to make an exception at a user level (not a role level) to a particular user that removes one of the permissions that are assigned to them via the roles they are assigned to WITHOUT creating a separate role that has this exception that gets assigned to the user.
Role 1 Permission A Permission B
Role 2 Permission B Permission C
The above role/permission break down results in a user having Permission A, B, and C. However I want to exclude a user from having permission B despite being assigned to one or more roles that give that user permission.
Can this be done with ABP/Identity Server?
If you're creating a bug/problem report, please include followings:
I get the following error when I try to impersonate a tenant when running locally in visual studio. I've researched and cannot find how to fix the issue.
I was having calling any methods for the Setting, Permission and Feature App service *.HttpApi.Client in a tiered solution because the individual *generate-proxy.json files were not marked as an 'embedded resource' and/or the following lines were not included in the *.HttpApi.Client project file.
<ItemGroup>
<EmbeddedResource Include="**\*generate-proxy.json" />
<Content Remove="**\*generate-proxy.json" />
</ItemGroup>
Looking at the various pro and non pro ABP modules I don't see any consistency as to how these generated proxy files are marked as embedded. Would it be possible to for this aspect of the framework to be corrected so it's consistent for when a new version of ABP is released so manual fixes are not necessary.
Thank you.
Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
I get following error when I try to launch the 'settings' menu option under the admin menu. Additionally I get similar issues on the PermissionAppService.GetAsync and FeatureAppService.GetAsync calls at well.
Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
I am getting an error in the browser when trying to call the API via the Dynamic Javascript Client Proxy. Below are screenshots for my service contract interface, implementation of that interface and the javascript file that refers to the api service and the error in the browser that I am getting when trying to use this api proxy.
Can you see from this what the issue might be? The last time this happened it seemed to be related to a naming convention of my namespace I was using but I have tried it using many ones at this point and I'm still getting the error.
Thanks
I have separate DB's for each tenant in our solution. We are migrating legacy data for each tenant and do not wish to use the TenantID (Guid) that comes along with using the IMultiTenancy interface on our domain classes used to map to our DB tables. However if we don't implement this interface on our domain class the EFCoreRepository class changes the current tenant to null before getting the connection string, so as a result it gets the host connection string and not the tenant's connection string.
How do I do this?
Has the ability to remove the table prefix from all the tables been removed with version 5.0.x? For example, previously with ABP 4.4.4 I could override the prefix with the command
builder.ConfigurePermissionManagement(options => { options.TablePrefix = string.Empty; });
but with 5.0.x it appears as if module specific 'ModelBuilderConfigurationOptions' have been removed and I can no longer pass into the method the prefix I desire.
Please advise.
The Payment module has a static class called PaymentDBProperties of which there is a DefaultDbTablePrefix constant that should be used to override the default table prefix for the module like there is for the other pro modules.
Not only is the name of this constant inconsistent with the naming convention of DbTablePrefix in the other modules but it is also read only, thus it does not allow you to assign a different prefix to the table name.
Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
Reproduce Issue
Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
If you're creating a bug/problem report, please include followings:
My company purchased the commercial license giving us access to pro modules and their source code. In my MVC solution I have added the payment module (with solution source) and created a screen allowing me to enter a payment subscription details. The logic to create the payment request is working as expected however when I execute the 'LocalRedirectPreserveMethod("/Payment/GatewaySelection?paymentRequestId=" + paymentRequest.Id);' code (as instructed by ABP documentation) the 2nd line of code (the retrieval of the payment request created) gives the below error.
For some reason the Volo.Payment.Web project is not finding the PaymentRequestAppService application service and returns the error below. Calls to the GatewayAppService work though, so I'm not sure why the call to PaymentRequestAppService is failing.
One thing I noticed though is in the Volo.Payment.HttpApi project there is a controller class for Gateways and Plans but not for PaymentRequest (as shown below).
Please advise
2022-01-04 14:20:36.832 -05:00 [ERR] An unhandled exception has occurred while executing the request.
Volo.Abp.AbpException: Could not found remote action for method: System.Threading.Tasks.Task`1[Volo.Payment.Requests.PaymentRequestWithDetailsDto] GetAsync(System.Guid) on the URL: https://localhost:44300/ at Volo.Abp.Http.Client.DynamicProxying.ApiDescriptionFinder.FindActionAsync(HttpClient client, String baseUrl, Type serviceType, MethodInfo method) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Http.Client\Volo\Abp\Http\Client\DynamicProxying\ApiDescriptionFinder.cs:line 81 at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.MakeRequestAsync(IAbpMethodInvocation invocation) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Http.Client\Volo\Abp\Http\Client\DynamicProxying\DynamicHttpProxyInterceptor.cs:line 145
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.MakeRequestAndGetResultAsync[T](IAbpMethodInvocation invocation) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Http.Client\Volo\Abp\Http\Client\DynamicProxying\DynamicHttpProxyInterceptor.cs:line 108 at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.GetResultAsync(Task task, Type resultType) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Http.Client\Volo\Abp\Http\Client\DynamicProxying\DynamicHttpProxyInterceptor.cs:line 99
at Volo.Abp.Http.Client.DynamicProxying.DynamicHttpProxyInterceptor`1.InterceptAsync(IAbpMethodInvocation invocation) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Http.Client\Volo\Abp\Http\Client\DynamicProxying\DynamicHttpProxyInterceptor.cs:line 90 at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAsyncAbpInterceptorAdapter.cs:line 29 at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo) at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapterWithReturnValue`1.ProceedAsync() in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAbpMethodInvocationAdapterWithReturnValue.cs:line 24
at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Validation\Volo\Abp\Validation\ValidationInterceptor.cs:line 19
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter`1.InterceptAsync[TResult](IInvocation invocation, IInvocationProceedInfo proceedInfo, Func`3 proceed) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.Castle.Core\Volo\Abp\Castle\DynamicProxy\CastleAsyncAbpInterceptorAdapter.cs:line 29
at Volo.Payment.Pages.Payment.GatewaySelectionModel.OnPostAsync() in C:\Src\StructureWeb\ABP-Pro-Modules\payment\src\Volo.Payment.Web\Pages\Payment\GatewaySelection.cshtml.cs:line 43
at Microsoft\.AspNetCore\.Mvc\.RazorPages\.Infrastructure\.ExecutorFactory\.GenericTaskHandlerMethod\.Convert\[T\]\(Object taskAsObject\)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory.GenericTaskHandlerMethod.Execute(Object receiver, Object[] arguments)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()
at Microsoft\.AspNetCore\.Mvc\.Infrastructure\.ResourceInvoker\.g\_\_Awaited\|25\_0\(ResourceInvoker invoker\, Task lastTask\, State next\, Scope scope\, Object state\, Boolean isCompleted\)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ExceptionContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeNextResourceFilter()
\-\-\- End of stack trace from previous location \-\-\-
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
\-\-\- End of stack trace from previous location \-\-\-
at Microsoft\.AspNetCore\.Mvc\.Infrastructure\.ResourceInvoker\.g\_\_Logged\|17\_1\(ResourceInvoker invoker\)
at Microsoft\.AspNetCore\.Routing\.EndpointMiddleware\.g\_\_AwaitRequestTask\|6\_0\(Endpoint endpoint\, Task requestTask\, ILogger logger\)
at Volo.Abp.AspNetCore.Serilog.AbpSerilogMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.AspNetCore.Serilog\Volo\Abp\AspNetCore\Serilog\AbpSerilogMiddleware.cs:line 65
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c\_\_DisplayClass6\_1.<b\_\_1>d.MoveNext()
\-\-\- End of stack trace from previous location \-\-\-
at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.AspNetCore\Volo\Abp\AspNetCore\Auditing\AbpAuditingMiddleware.cs:line 52
at Volo.Abp.AspNetCore.Auditing.AbpAuditingMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.AspNetCore\Volo\Abp\AspNetCore\Auditing\AbpAuditingMiddleware.cs:line 81
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c\_\_DisplayClass6\_1.<b\_\_1>d.MoveNext()
\-\-\- End of stack trace from previous location \-\-\-
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Volo.Abp.AspNetCore.MultiTenancy.MultiTenancyMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.AspNetCore.MultiTenancy\Volo\Abp\AspNetCore\MultiTenancy\MultiTenancyMiddleware.cs:line 75
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c\_\_DisplayClass6\_1.<b\_\_1>d.MoveNext()
\-\-\- End of stack trace from previous location \-\-\-
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.RequestLocalization.AbpRequestLocalizationMiddleware.InvokeAsync(HttpContext context, RequestDelegate next) in C:\Src\StructureWeb\ABP\framework\src\Volo.Abp.AspNetCore\Microsoft\AspNetCore\RequestLocalization\AbpRequestLocalizationMiddleware.cs:line 51
at Microsoft.AspNetCore.Builder.UseMiddlewareExtensions.<>c\_\_DisplayClass6\_1.<b\_\_1>d.MoveNext()
\-\-\- End of stack trace from previous location \-\-\-
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
2022-01-04 14:20:36.878 -05:00 [INF] Request finished HTTP/2 POST [https://localhost:44302/Payment/GatewaySelection?paymentRequestId=3a0138b5-a9c5-df43-ba8b-98a7d26f13d1](https://localhost:44302/Payment/GatewaySelection?paymentRequestId=3a0138b5-a9c5-df43-ba8b-98a7d26f13d1) application/x-[www-form-urlencoded 225](http://www-form-urlencoded 225) \- 500 \- text/html;\+charset=utf\-8 18864\.4439ms