Is it possible to call one of my Application Services (that returns a List collection from values from the DB) within a class that inherits from the PermissionDefinitionProvider to dynamically create PermissionDefinition objects? I create an instance of my application service using the **var permissionService = context.ServiceProvider.GetRequiredService(); **statement but after the service calls the supporting repository lookup I get an "Instances cannot be resolved and nested lifetimes cannot be created from this LifetimeScope as it (or one of its parent scopes) has already been disposed."
This same application service/method is used elsewhere in my application without any issues, so it appears to not work when I use it within a class that inherits from the PermissionDefinitionProvider class.
This exception was originally thrown at this call stack: Autofac.Core.Lifetime.LifetimeScope.CheckNotDisposed() Autofac.Core.Lifetime.LifetimeScope.BeginLifetimeScope(object) Autofac.Core.Lifetime.LifetimeScope.BeginLifetimeScope() Autofac.Extensions.DependencyInjection.AutofacServiceScopeFactory.CreateScope() Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(Volo.Abp.DynamicProxy.IAbpMethodInvocation) in UnitOfWorkInterceptor.cs System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task) System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) System.Runtime.CompilerServices.ConfiguredTaskAwaitable.ConfiguredTaskAwaiter.GetResult() Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter.InterceptAsync(Castle.DynamicProxy.IInvocation, Castle.DynamicProxy.IInvocationProceedInfo, System.Func<Castle.DynamicProxy.IInvocation, Castle.DynamicProxy.IInvocationProceedInfo, System.Threading.Tasks.Task>) ... [Call Stack Truncated]
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.
Ok, thank you. We manually build the common.props file and did not have these includes in our powershell script.
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.
The solution was to add the following lines to the project file(s) for SettingManagementHttpApiClient, FeatureManagementHttpApiClient and PermissionManagementHttpApiClient
<ItemGroup>
<EmbeddedResource Include="**\*generate-proxy.json" />
<Content Remove="**\*generate-proxy.json" />
</ItemGroup>
We run our solutions with full source code. If I step through the code the issue is happening on the highlighted (red box) line in the ClientProxyBase.cs class as shown in the below screenshot. The value of 'methodUniqueName' is:
Volo.Abp.FeatureManagement.IFeatureAppService.GetAsync.System.String-System.String
How do these values get loaded into the ClientProxyApiDescriptionFinder collection as this value is not being loaded into it?
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.
Hi,
As highlighted below, the ABP Framework documentation does not not exclude a tiered solution from this framework feature. Could you please updated your documentation accordingly so that other customers do not waste their time exploring how to do this as the documentation does not indicate that this only works for a non tiered solution?
Thanks.
What are you suggesting I need to do in order to not need a controller to call an application service method? Are you suggesting I remove the conventionalcontrollers.Create line of code? Again, this was a out of the box solution generated by ABP Suite and I did not add this line of code myself.