diff --git a/docs/en/Authorization.md b/docs/en/Authorization.md index 22a88ce8cc..e44f96a034 100644 --- a/docs/en/Authorization.md +++ b/docs/en/Authorization.md @@ -285,7 +285,38 @@ See examples below: authorPermission.AddStateProviders(new MyCustomPermissionStateProvider()); ``` - Custom condition class have to implement `IPermissionStateProvider` + Custom condition class have to implement `IPermissionStateProvider`. + + - Also State Providers can be configured globally via using `GlobalStateProviders` in **AbpPermissionOptions** + + ```csharp + Configure(options => + { + options.GlobalStateProviders.Add(); + + // Or type can be pass as parameter: + options.GlobalStateProviders.Add(typeof(MyCustomPermissionStateProvider)); + }); + ``` + + Content of **MyCustomPermissionStateProvider** looks like: + + ```csharp + public class MyCustomPermissionStateProvider : IPermissionStateProvider + { + public Task IsEnabledAsync(PermissionStateContext context) + { + // You can implement your own logic here. + // That check works globally for each permission. + return Task.FromResult( + context.Permission.Name.StartsWith("Acme.BookStore")); + } + } + ``` + + + + ## IAuthorizationService