RequiresPermissionSettingClientVisibilityProvider.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. using System.Threading.Tasks;
  2. using Abp.Authorization;
  3. using Abp.Dependency;
  4. using Abp.Runtime.Session;
  5. namespace Abp.Configuration
  6. {
  7. public class RequiresPermissionSettingClientVisibilityProvider : ISettingClientVisibilityProvider
  8. {
  9. private readonly IPermissionDependency _permissionDependency;
  10. public RequiresPermissionSettingClientVisibilityProvider(IPermissionDependency permissionDependency)
  11. {
  12. _permissionDependency = permissionDependency;
  13. }
  14. public async Task<bool> CheckVisible(IScopedIocResolver scope)
  15. {
  16. var abpSession = scope.Resolve<IAbpSession>();
  17. if (!abpSession.UserId.HasValue)
  18. {
  19. return false;
  20. }
  21. var permissionDependencyContext = scope.Resolve<PermissionDependencyContext>();
  22. permissionDependencyContext.User = abpSession.ToUserIdentifier();
  23. return await _permissionDependency.IsSatisfiedAsync(permissionDependencyContext);
  24. }
  25. }
  26. }