public async Task SetAsync(string permissionName, string providerName, string providerKey, bool isGranted) { var permission = PermissionDefinitionManager.Get(permissionName); if (permission.Providers.Any() && !permission.Providers.Contains(providerName)) { //TODO: BusinessException throw new ApplicationException($"The permission named '{permission.Name}' has not compatible with the provider named '{providerName}'"); } if (!permission.MultiTenancySide.HasFlag(CurrentTenant.GetMultiTenancySide())) { //TODO: BusinessException throw new ApplicationException($"The permission named '{permission.Name}' has multitenancy side '{permission.MultiTenancySide}' which is not compatible with the current multitenancy side '{CurrentTenant.GetMultiTenancySide()}'"); } var currentGrantInfo = await GetInternalAsync(permission, providerName, providerKey); if (currentGrantInfo.IsGranted == isGranted) { return; } var provider = ManagementProviders.FirstOrDefault(m => m.Name == providerName); if (provider == null) { //TODO: BusinessException throw new AbpException("Unknown permission management provider: " + providerName); } await provider.SetAsync(permissionName, providerKey, isGranted); }
public async Task SetAsync(string permissionName, string providerName, string providerKey, bool isGranted) { var currentGrantInfo = await GetAsync(permissionName, providerName, providerKey); if (currentGrantInfo.IsGranted == isGranted) { return; } var provider = ManagementProviders.FirstOrDefault(m => m.Name == providerName); if (provider == null) { throw new AbpException("Unknown permission management provider: " + providerName); } await provider.SetAsync(permissionName, providerKey, isGranted); }