diff --git a/docs/en/deployment/configuring-production.md b/docs/en/deployment/configuring-production.md index 557b671614..8b3430046d 100644 --- a/docs/en/deployment/configuring-production.md +++ b/docs/en/deployment/configuring-production.md @@ -113,6 +113,6 @@ ABP uses .NET's standard [Logging services](../framework/fundamentals/logging.md ABP's startup solution templates come with [Swagger UI](https://swagger.io/) pre-installed. Swagger is a pretty standard and useful tool to discover and test your HTTP APIs on a built-in UI that is embedded into your application or service. It is typically used in development environment, but you may want to enable it on staging or production environments too. -While you will always secure your HTTP APIs with other techniques (like the [Authorization](../framework/fundamentals/authorization.md) system), allowing malicious software and people to easily discover your HTTP API endpoint details can be considered as a security problem for some systems. So, be careful while taking the decision of enabling or disabling Swagger for the production environment. +While you will always secure your HTTP APIs with other techniques (like the [Authorization](../framework/fundamentals/authorization/index.md) system), allowing malicious software and people to easily discover your HTTP API endpoint details can be considered as a security problem for some systems. So, be careful while taking the decision of enabling or disabling Swagger for the production environment. > You may also want to see the [ABP Swagger integration](../framework/api-development/swagger.md) document. diff --git a/docs/en/framework/api-development/standard-apis/configuration.md b/docs/en/framework/api-development/standard-apis/configuration.md index 3fcd22f6d9..53a666546c 100644 --- a/docs/en/framework/api-development/standard-apis/configuration.md +++ b/docs/en/framework/api-development/standard-apis/configuration.md @@ -9,7 +9,7 @@ ABP provides a pre-built and standard endpoint that contains some useful information about the application/service. Here, is the list of some fundamental information at this endpoint: -* Granted [policies](../../fundamentals/authorization.md) (permissions) for the current user. +* Granted [policies](../../fundamentals/authorization/index.md) (permissions) for the current user. * [Setting](../../infrastructure/settings.md) values for the current user. * Info about the [current user](../../infrastructure/current-user.md) (like id and user name). * Info about the current [tenant](../../architecture/multi-tenancy) (like id and name). diff --git a/docs/en/framework/architecture/domain-driven-design/application-services.md b/docs/en/framework/architecture/domain-driven-design/application-services.md index a0d0c2d5fc..8683241534 100644 --- a/docs/en/framework/architecture/domain-driven-design/application-services.md +++ b/docs/en/framework/architecture/domain-driven-design/application-services.md @@ -218,7 +218,7 @@ See the [validation document](../../fundamentals/validation.md) for more. It's possible to use declarative and imperative authorization for application service methods. -See the [authorization document](../../fundamentals/authorization.md) for more. +See the [authorization document](../../fundamentals/authorization/index.md) for more. ## CRUD Application Services diff --git a/docs/en/framework/architecture/modularity/extending/customizing-application-modules-guide.md b/docs/en/framework/architecture/modularity/extending/customizing-application-modules-guide.md index 1d6c5ffe99..77f4a70d90 100644 --- a/docs/en/framework/architecture/modularity/extending/customizing-application-modules-guide.md +++ b/docs/en/framework/architecture/modularity/extending/customizing-application-modules-guide.md @@ -112,4 +112,4 @@ Also, see the following documents: * See [the localization document](../../../fundamentals/localization.md) to learn how to extend existing localization resources. * See [the settings document](../../../infrastructure/settings.md) to learn how to change setting definitions of a depended module. -* See [the authorization document](../../../fundamentals/authorization.md) to learn how to change permission definitions of a depended module. +* See [the authorization document](../../../fundamentals/authorization/index.md) to learn how to change permission definitions of a depended module. diff --git a/docs/en/framework/fundamentals/authorization.md b/docs/en/framework/fundamentals/authorization/index.md similarity index 99% rename from docs/en/framework/fundamentals/authorization.md rename to docs/en/framework/fundamentals/authorization/index.md index 1a104ef420..3c4f6e01cd 100644 --- a/docs/en/framework/fundamentals/authorization.md +++ b/docs/en/framework/fundamentals/authorization/index.md @@ -321,8 +321,8 @@ public async Task CreateAsync(CreateAuthorDto input) See the following documents to learn how to re-use the authorization system on the client side: * [ASP.NET Core MVC / Razor Pages UI: Authorization](../ui/mvc-razor-pages/javascript-api/auth.md) -* [Angular UI Authorization](../ui/angular/authorization.md) -* [Blazor UI Authorization](../ui/blazor/authorization.md) +* [Angular UI Authorization](../ui/angular/authorization/index.md) +* [Blazor UI Authorization](../ui/blazor/authorization/index.md) ## Permission Management diff --git a/docs/en/framework/fundamentals/dynamic-claims.md b/docs/en/framework/fundamentals/dynamic-claims.md index 03ddc701cd..24d95755c5 100644 --- a/docs/en/framework/fundamentals/dynamic-claims.md +++ b/docs/en/framework/fundamentals/dynamic-claims.md @@ -94,6 +94,6 @@ If you want to add your own dynamic claims contributor, you can create a class t ## See Also -* [Authorization](./authorization.md) +* [Authorization](./authorization/index.md) * [Claims-based authorization in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/authorization/claims) * [Mapping, customizing, and transforming claims in ASP.NET Core](https://learn.microsoft.com/en-us/aspnet/core/security/authentication/claims) diff --git a/docs/en/framework/fundamentals/exception-handling.md b/docs/en/framework/fundamentals/exception-handling.md index 85b1c3b9c4..5ccfcf124a 100644 --- a/docs/en/framework/fundamentals/exception-handling.md +++ b/docs/en/framework/fundamentals/exception-handling.md @@ -322,7 +322,7 @@ The `context` object contains necessary information about the exception occurred Some exception types are automatically thrown by the framework: -- `AbpAuthorizationException` is thrown if the current user has no permission to perform the requested operation. See [authorization](./authorization.md) for more. +- `AbpAuthorizationException` is thrown if the current user has no permission to perform the requested operation. See [authorization](./authorization/index.md) for more. - `AbpValidationException` is thrown if the input of the current request is not valid. See [validation](./validation.md) for more. - `EntityNotFoundException` is thrown if the requested entity is not available. This is mostly thrown by [repositories](../architecture/domain-driven-design/repositories.md). diff --git a/docs/en/framework/fundamentals/index.md b/docs/en/framework/fundamentals/index.md index 6aef484c41..7ffa99fd89 100644 --- a/docs/en/framework/fundamentals/index.md +++ b/docs/en/framework/fundamentals/index.md @@ -10,7 +10,7 @@ The following documents explains the fundamental building blocks to create ABP solutions: * [Application Startup](./application-startup.md) -* [Authorization](./authorization.md) +* [Authorization](./authorization/index.md) * [Caching](./caching.md) * [Configuration](./configuration.md) * [Connection Strings](./connection-strings.md) diff --git a/docs/en/framework/infrastructure/background-jobs/hangfire.md b/docs/en/framework/infrastructure/background-jobs/hangfire.md index 61408f303d..05cd214016 100644 --- a/docs/en/framework/infrastructure/background-jobs/hangfire.md +++ b/docs/en/framework/infrastructure/background-jobs/hangfire.md @@ -149,7 +149,7 @@ namespace MyProject Hangfire Dashboard provides information about your background jobs, including method names and serialized arguments as well as gives you an opportunity to manage them by performing different actions – retry, delete, trigger, etc. So it is important to restrict access to the Dashboard. To make it secure by default, only local requests are allowed, however you can change this by following the [official documentation](http://docs.hangfire.io/en/latest/configuration/using-dashboard.html) of Hangfire. -You can integrate the Hangfire dashboard to [ABP authorization system](../../fundamentals/authorization.md) using the **AbpHangfireAuthorizationFilter** +You can integrate the Hangfire dashboard to [ABP authorization system](../../fundamentals/authorization/index.md) using the **AbpHangfireAuthorizationFilter** class. This class is defined in the `Volo.Abp.Hangfire` package. The following example, checks if the current user is logged in to the application: ```csharp diff --git a/docs/en/framework/infrastructure/interceptors.md b/docs/en/framework/infrastructure/interceptors.md index d50de3ad84..9005c3d612 100644 --- a/docs/en/framework/infrastructure/interceptors.md +++ b/docs/en/framework/infrastructure/interceptors.md @@ -42,7 +42,7 @@ Automatically begins and commits/rolls back a database transaction when entering Input DTOs are automatically validated against data annotation attributes and custom validation rules before executing the service logic, providing consistent validation behavior across all services. -### [Authorization](../fundamentals/authorization.md) +### [Authorization](../fundamentals/authorization/index.md) Checks user permissions before allowing the execution of application service methods, ensuring security policies are enforced consistently. diff --git a/docs/en/framework/ui/angular/account-module.md b/docs/en/framework/ui/angular/account-module.md index 2f4df8cd42..691d45cc51 100644 --- a/docs/en/framework/ui/angular/account-module.md +++ b/docs/en/framework/ui/angular/account-module.md @@ -150,4 +150,4 @@ export const environment = { } as Config.Environment; ``` -See the [Authorization in Angular UI](./authorization.md) document for more details. +See the [Authorization in Angular UI](./authorization/index.md) document for more details. diff --git a/docs/en/framework/ui/angular/permission-management.md b/docs/en/framework/ui/angular/permission-management.md index abba8843de..8d30d925bb 100644 --- a/docs/en/framework/ui/angular/permission-management.md +++ b/docs/en/framework/ui/angular/permission-management.md @@ -7,7 +7,7 @@ # Permission Management -A permission is a simple policy that is granted or prohibited for a particular user, role or client. You can read more about [authorization in ABP](../../fundamentals/authorization.md) document. +A permission is a simple policy that is granted or prohibited for a particular user, role or client. You can read more about [authorization in ABP](../../fundamentals/authorization/index.md) document. You can get permission of authenticated user using `getGrantedPolicy` or `getGrantedPolicy$` method of `PermissionService`. diff --git a/docs/en/framework/ui/blazor/authorization.md b/docs/en/framework/ui/blazor/authorization.md index fc006136b4..453f37963b 100644 --- a/docs/en/framework/ui/blazor/authorization.md +++ b/docs/en/framework/ui/blazor/authorization.md @@ -9,7 +9,7 @@ Blazor applications can use the same authorization system and permissions defined in the server side. -> This document is only for authorizing on the Blazor UI. See the [Server Side Authorization](../../fundamentals/authorization.md) to learn how to define permissions and control the authorization system. +> This document is only for authorizing on the Blazor UI. See the [Server Side Authorization](../../fundamentals/authorization/index.md) to learn how to define permissions and control the authorization system. ## Basic Usage @@ -76,7 +76,7 @@ There are some useful extension methods for the `IAuthorizationService`: ## See Also -* [Authorization](../../fundamentals/authorization.md) (server side) +* [Authorization](../../fundamentals/authorization/index.md) (server side) * [Blazor Security](https://docs.microsoft.com/en-us/aspnet/core/blazor/security/) (Microsoft documentation) * [ICurrentUser Service](../../infrastructure/current-user.md) * [Video tutorial](https://abp.io/video-courses/essentials/authorization) diff --git a/docs/en/framework/ui/blazor/navigation-menu.md b/docs/en/framework/ui/blazor/navigation-menu.md index be708963d0..8d24255e88 100644 --- a/docs/en/framework/ui/blazor/navigation-menu.md +++ b/docs/en/framework/ui/blazor/navigation-menu.md @@ -117,7 +117,7 @@ There are more options of a menu item (the constructor of the `ApplicationMenuIt As seen above, a menu contributor contributes to the menu dynamically. So, you can perform any custom logic or get menu items from any source. -One use case is the [authorization](authorization.md). You typically want to add menu items by checking a permission. +One use case is the [authorization](authorization/index.md). You typically want to add menu items by checking a permission. **Example: Check if the current user has a permission** diff --git a/docs/en/framework/ui/blazor/page-toolbar-extensions.md b/docs/en/framework/ui/blazor/page-toolbar-extensions.md index 7e341c50fe..9c96bf90f7 100644 --- a/docs/en/framework/ui/blazor/page-toolbar-extensions.md +++ b/docs/en/framework/ui/blazor/page-toolbar-extensions.md @@ -102,7 +102,7 @@ protected override async ValueTask SetToolbarItemsAsync() #### Permissions -If your button/component should be available based on a [permission/policy](../../fundamentals/authorization.md), you can pass the permission/policy name as the `RequiredPolicyName` parameter to the `AddButton` and `AddComponent` methods. +If your button/component should be available based on a [permission/policy](../../fundamentals/authorization/index.md), you can pass the permission/policy name as the `RequiredPolicyName` parameter to the `AddButton` and `AddComponent` methods. ### Add a Page Toolbar Contributor diff --git a/docs/en/framework/ui/mvc-razor-pages/auto-complete-select.md b/docs/en/framework/ui/mvc-razor-pages/auto-complete-select.md index 69f92be3f2..7157c3ab95 100644 --- a/docs/en/framework/ui/mvc-razor-pages/auto-complete-select.md +++ b/docs/en/framework/ui/mvc-razor-pages/auto-complete-select.md @@ -78,4 +78,4 @@ It'll be automatically bound to a collection of defined value type. ## Notices If the authenticated user doesn't have permission on the given URL, the user will get an authorization error. Be careful while designing this kind of UIs. -You can create a specific, [unauthorized](../../fundamentals/authorization.md) endpoint/method to get the list of items, so the page can retrieve lookup data of dependent entity without giving the entire read permission to users. \ No newline at end of file +You can create a specific, [unauthorized](../../fundamentals/authorization/index.md) endpoint/method to get the list of items, so the page can retrieve lookup data of dependent entity without giving the entire read permission to users. \ No newline at end of file diff --git a/docs/en/framework/ui/mvc-razor-pages/javascript-api/ajax.md b/docs/en/framework/ui/mvc-razor-pages/javascript-api/ajax.md index 3ee58ca458..c710cb4c45 100644 --- a/docs/en/framework/ui/mvc-razor-pages/javascript-api/ajax.md +++ b/docs/en/framework/ui/mvc-razor-pages/javascript-api/ajax.md @@ -32,7 +32,7 @@ abp.ajax({ }); ```` -This command logs the list of users to the console, if you've **logged in** to the application and have [permission](../../../fundamentals/authorization.md) for the user management page of the [Identity Module](../../../../modules/identity.md). +This command logs the list of users to the console, if you've **logged in** to the application and have [permission](../../../fundamentals/authorization/index.md) for the user management page of the [Identity Module](../../../../modules/identity.md). ## Error Handling diff --git a/docs/en/framework/ui/mvc-razor-pages/javascript-api/auth.md b/docs/en/framework/ui/mvc-razor-pages/javascript-api/auth.md index 5f31c184ec..83677eec57 100644 --- a/docs/en/framework/ui/mvc-razor-pages/javascript-api/auth.md +++ b/docs/en/framework/ui/mvc-razor-pages/javascript-api/auth.md @@ -9,7 +9,7 @@ Auth API allows you to check permissions (policies) for the current user in the client side. In this way, you can conditionally show/hide UI parts or perform your client side logic based on the current permissions. -> This document only explains the JavaScript API. See the [authorization document](../../../fundamentals/authorization.md) to understand the ABP authorization & permission system. +> This document only explains the JavaScript API. See the [authorization document](../../../fundamentals/authorization/index.md) to understand the ABP authorization & permission system. ## Basic Usage diff --git a/docs/en/framework/ui/mvc-razor-pages/navigation-menu.md b/docs/en/framework/ui/mvc-razor-pages/navigation-menu.md index 41cc31f77f..f26d18ebbd 100644 --- a/docs/en/framework/ui/mvc-razor-pages/navigation-menu.md +++ b/docs/en/framework/ui/mvc-razor-pages/navigation-menu.md @@ -117,7 +117,7 @@ There are more options of a menu item (the constructor of the `ApplicationMenuIt As seen above, a menu contributor contributes to the menu dynamically. So, you can perform any custom logic or get menu items from any source. -One use case is the [authorization](../../fundamentals/authorization.md). You typically want to add menu items by checking a permission. +One use case is the [authorization](../../fundamentals/authorization/index.md). You typically want to add menu items by checking a permission. **Example: Check if the current user has a permission** diff --git a/docs/en/framework/ui/mvc-razor-pages/page-toolbar-extensions.md b/docs/en/framework/ui/mvc-razor-pages/page-toolbar-extensions.md index 54ad4e182c..00ac30a49d 100644 --- a/docs/en/framework/ui/mvc-razor-pages/page-toolbar-extensions.md +++ b/docs/en/framework/ui/mvc-razor-pages/page-toolbar-extensions.md @@ -134,7 +134,7 @@ Configure(options => #### Permissions -If your button/component should be available based on a [permission/policy](../../fundamentals/authorization.md), you can pass the permission/policy name as the `requiredPolicyName` parameter to the `AddButton` and `AddComponent` methods. +If your button/component should be available based on a [permission/policy](../../fundamentals/authorization/index.md), you can pass the permission/policy name as the `requiredPolicyName` parameter to the `AddButton` and `AddComponent` methods. ### Add a Page Toolbar Contributor diff --git a/docs/en/framework/ui/mvc-razor-pages/toolbars.md b/docs/en/framework/ui/mvc-razor-pages/toolbars.md index fd7160417d..2876242ff0 100644 --- a/docs/en/framework/ui/mvc-razor-pages/toolbars.md +++ b/docs/en/framework/ui/mvc-razor-pages/toolbars.md @@ -79,7 +79,7 @@ public class MyToolbarContributor : IToolbarContributor } ```` -You can use the [authorization](../../fundamentals/authorization.md) to decide whether to add a `ToolbarItem`. +You can use the [authorization](../../fundamentals/authorization/index.md) to decide whether to add a `ToolbarItem`. ````csharp if (await context.IsGrantedAsync("MyPermissionName")) diff --git a/docs/en/framework/ui/mvc-razor-pages/widgets.md b/docs/en/framework/ui/mvc-razor-pages/widgets.md index 7e894027f6..0e7d708551 100644 --- a/docs/en/framework/ui/mvc-razor-pages/widgets.md +++ b/docs/en/framework/ui/mvc-razor-pages/widgets.md @@ -12,7 +12,7 @@ ABP provides a model and infrastructure to create **reusable widgets**. Widget s * Have **scripts & styles** dependencies for your widget. * Create **dashboards** with widgets used inside. * Define widgets in reusable **[modules](../../architecture/modularity/basics.md)**. -* Co-operate widgets with **[authorization](../../fundamentals/authorization.md)** and **[bundling](bundling-minification.md)** systems. +* Co-operate widgets with **[authorization](../../fundamentals/authorization/index.md)** and **[bundling](bundling-minification.md)** systems. ## Basic Widget Definition @@ -482,7 +482,7 @@ Used to refresh the widget when needed. It has a filter argument that can be use Some widgets may need to be available only for authenticated or authorized users. In this case, use the following properties of the `Widget` attribute: * `RequiresAuthentication` (`bool`): Set to true to make this widget usable only for authentication users (user have logged in to the application). -* `RequiredPolicies` (`List`): A list of policy names to authorize the user. See [the authorization document](../../fundamentals/authorization.md) for more info about policies. +* `RequiredPolicies` (`List`): A list of policy names to authorize the user. See [the authorization document](../../fundamentals/authorization/index.md) for more info about policies. Example: diff --git a/docs/en/index.md b/docs/en/index.md index 46b9923b57..86b7104b06 100644 --- a/docs/en/index.md +++ b/docs/en/index.md @@ -68,7 +68,7 @@ There are a lot of features provided by ABP to achieve real world scenarios easi #### Cross Cutting Concerns -ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like [Exception Handling](./framework/fundamentals/exception-handling.md), [Validation](./framework/fundamentals/validation.md), [Authorization](./framework/fundamentals/authorization.md), [Localization](./framework/fundamentals/localization.md), [Caching](./framework/fundamentals/caching.md), [Dependency Injection](./framework/fundamentals/dependency-injection.md), [Setting Management](./framework/infrastructure/settings.md), etc. +ABP also simplifies (and even automates wherever possible) cross cutting concerns and common non-functional requirements like [Exception Handling](./framework/fundamentals/exception-handling.md), [Validation](./framework/fundamentals/validation.md), [Authorization](./framework/fundamentals/authorization/index.md), [Localization](./framework/fundamentals/localization.md), [Caching](./framework/fundamentals/caching.md), [Dependency Injection](./framework/fundamentals/dependency-injection.md), [Setting Management](./framework/infrastructure/settings.md), etc. ### Tooling diff --git a/docs/en/modules/identity-pro.md b/docs/en/modules/identity-pro.md index 7392590c3f..4ca4ebb170 100644 --- a/docs/en/modules/identity-pro.md +++ b/docs/en/modules/identity-pro.md @@ -75,7 +75,7 @@ You can manage permissions of a role: * A permission is an **action of the application** granted to roles and users. * A user with a role will **inherit** all the permissions granted for the role. -* Any module can **[define permissions](../framework/fundamentals/authorization.md#permission-system)**. Once you define a new permission, it will be available in this page. +* Any module can **[define permissions](../framework/fundamentals/authorization/index.md#permission-system)**. Once you define a new permission, it will be available in this page. * Left side is the **list of modules**. Once you click to a module name, you can check/uncheck permissions related to that module. ##### Role claims diff --git a/docs/en/modules/identity.md b/docs/en/modules/identity.md index 8d800fe131..b302f74428 100644 --- a/docs/en/modules/identity.md +++ b/docs/en/modules/identity.md @@ -31,7 +31,7 @@ The menu items and the related pages are authorized. That means the current user ![identity-module-permissions](../images/identity-module-permissions.png) -See the [Authorization document](../framework/fundamentals/authorization.md) to understand the permission system. +See the [Authorization document](../framework/fundamentals/authorization/index.md) to understand the permission system. ### Pages diff --git a/docs/en/modules/openiddict-pro.md b/docs/en/modules/openiddict-pro.md index f531f65531..94d8deb631 100644 --- a/docs/en/modules/openiddict-pro.md +++ b/docs/en/modules/openiddict-pro.md @@ -384,7 +384,7 @@ PreConfigure(options => #### Updating Claims In Access_token and Id_token -[Claims Principal Factory](../framework/fundamentals/authorization.md#claims-principal-factory) can be used to add/remove claims to the `ClaimsPrincipal`. +[Claims Principal Factory](../framework/fundamentals/authorization/index.md#claims-principal-factory) can be used to add/remove claims to the `ClaimsPrincipal`. The `AbpDefaultOpenIddictClaimDestinationsProvider` service will add `Name`, `Email,` and `Role` types of Claims to `access_token` and `id_token`, other claims are only added to `access_token` by default, and remove the `SecurityStampClaimType` secret claim of `Identity`. diff --git a/docs/en/modules/openiddict.md b/docs/en/modules/openiddict.md index c17b8200d2..c1ed40ff9f 100644 --- a/docs/en/modules/openiddict.md +++ b/docs/en/modules/openiddict.md @@ -332,7 +332,7 @@ Configure(options => #### Updating Claims In Access_token and Id_token -[Claims Principal Factory](../framework/fundamentals/authorization.md#claims-principal-factory) can be used to add/remove claims to the `ClaimsPrincipal`. +[Claims Principal Factory](../framework/fundamentals/authorization/index.md#claims-principal-factory) can be used to add/remove claims to the `ClaimsPrincipal`. The `AbpDefaultOpenIddictClaimsPrincipalHandler` service will add `Name`, `Email,` and `Role` types of Claims to `access_token` and `id_token`, other claims are only added to `access_token` by default, and remove the `SecurityStampClaimType` secret claim of `Identity`. diff --git a/docs/en/modules/permission-management.md b/docs/en/modules/permission-management.md index 85cefffe7d..ccfaac5006 100644 --- a/docs/en/modules/permission-management.md +++ b/docs/en/modules/permission-management.md @@ -9,7 +9,7 @@ This module implements the `IPermissionStore` to store and manage permissions values in a database. -> This document covers only the permission management module which persists permission values to a database. See the [Authorization document](../framework/fundamentals/authorization.md) to understand the authorization and permission systems. +> This document covers only the permission management module which persists permission values to a database. See the [Authorization document](../framework/fundamentals/authorization/index.md) to understand the authorization and permission systems. ## How to Install @@ -37,7 +37,7 @@ In this dialog, you can grant permissions for the selected role. The tabs in the `IPermissionManager` is the main service provided by this module. It is used to read and change the permission values. `IPermissionManager` is typically used by the *Permission Management Dialog*. However, you can inject it if you need to set a permission value. -> If you just want to read/check permission values for the current user, use the `IAuthorizationService` or the `[Authorize]` attribute as explained in the [Authorization document](../framework/fundamentals/authorization.md). +> If you just want to read/check permission values for the current user, use the `IAuthorizationService` or the `[Authorize]` attribute as explained in the [Authorization document](../framework/fundamentals/authorization/index.md). **Example: Grant permissions to roles and users using the `IPermissionManager` service** @@ -69,7 +69,7 @@ public class MyService : ITransientDependency ## Permission Management Providers -Permission Management Module is extensible, just like the [permission system](../framework/fundamentals/authorization.md). You can extend it by defining permission management providers. +Permission Management Module is extensible, just like the [permission system](../framework/fundamentals/authorization/index.md). You can extend it by defining permission management providers. [Identity Module](identity.md) defines the following permission management providers: @@ -113,4 +113,4 @@ The order of the providers are important. Providers are executed in the reverse ## See Also -* [Authorization](../framework/fundamentals/authorization.md) \ No newline at end of file +* [Authorization](../framework/fundamentals/authorization/index.md) \ No newline at end of file diff --git a/docs/en/solution-templates/layered-web-application/overview.md b/docs/en/solution-templates/layered-web-application/overview.md index 4c9678fcb2..1a091649cc 100644 --- a/docs/en/solution-templates/layered-web-application/overview.md +++ b/docs/en/solution-templates/layered-web-application/overview.md @@ -41,7 +41,7 @@ The following **libraries and services** come **pre-installed** and **configured The following features are built and pre-configured for you in the solution. * **Authentication** is fully configured based on best practices. -* **[Permission](../../framework/fundamentals/authorization.md)** (authorization), **[setting](../../framework/infrastructure/settings.md)**, **[feature](../../framework/infrastructure/features.md)** and the **[localization](../../framework/fundamentals/localization.md)** management systems are pre-configured and ready to use. +* **[Permission](../../framework/fundamentals/authorization/index.md)** (authorization), **[setting](../../framework/infrastructure/settings.md)**, **[feature](../../framework/infrastructure/features.md)** and the **[localization](../../framework/fundamentals/localization.md)** management systems are pre-configured and ready to use. * **[Background job system](../../framework/infrastructure/background-jobs/index.md)**. * **[BLOB storge](../../framework/infrastructure/blob-storing/index.md)** system is installed with the [database provider](../../framework/infrastructure/blob-storing/database.md). * **On-the-fly database migration** system (services automatically migrated their database schema when you deploy a new version). **\*** diff --git a/docs/en/solution-templates/microservice/overview.md b/docs/en/solution-templates/microservice/overview.md index 6f0e2e9399..fc322565c3 100644 --- a/docs/en/solution-templates/microservice/overview.md +++ b/docs/en/solution-templates/microservice/overview.md @@ -49,7 +49,7 @@ The following features are built and pre-configured for you in the solution. * **OpenId Connect Authentication**, if you have selected the MVC UI. * **Authorization code flow** is implemented, if you have selected a SPA UI (Angular or Blazor WASM). * Other flows (resource owner password, client credentials...) are easy to use when you need them. -* **[Permission](../../framework/fundamentals/authorization.md)** (authorization), **[setting](../../framework/infrastructure/settings.md)**, **[feature](../../framework/infrastructure/features.md)** and the **[localization](../../framework/fundamentals/localization.md)** management systems are pre-configured and ready to use. +* **[Permission](../../framework/fundamentals/authorization/index.md)** (authorization), **[setting](../../framework/infrastructure/settings.md)**, **[feature](../../framework/infrastructure/features.md)** and the **[localization](../../framework/fundamentals/localization.md)** management systems are pre-configured and ready to use. * **[Background job system](../../framework/infrastructure/background-jobs/index.md)** with [RabbitMQ integrated](../../framework/infrastructure/background-jobs/rabbitmq.md). * **[BLOB storge](../../framework/infrastructure/blob-storing/index.md)** system is installed with the [database provider](../../framework/infrastructure/blob-storing/database.md) and a separate database. * **On-the-fly database migration** system (services automatically migrated their database schema when you deploy a new version) diff --git a/docs/en/solution-templates/microservice/permission-management.md b/docs/en/solution-templates/microservice/permission-management.md index e4e721a2cd..87aa0f8757 100644 --- a/docs/en/solution-templates/microservice/permission-management.md +++ b/docs/en/solution-templates/microservice/permission-management.md @@ -27,7 +27,7 @@ Since [Permission Management](../../modules/permission-management.md) is a funda ## Permission Management -The *Administration* microservice provides a set of APIs to manage permissions. Every microservice [defines](../../framework/fundamentals/authorization.md) its own permissions. When a microservice starts, it registers its permissions to the related permission definition tables if `SaveStaticPermissionsToDatabase` option is true for `PermissionManagementOptions`. Since the default value is true, this behavior is ensured. After that, you can see the permissions from the [Permission Management Dialog](../../modules/permission-management.md#permission-management-dialog) for related provider such as *User*, *Role* or *Client (OpenIddict Applications)*. +The *Administration* microservice provides a set of APIs to manage permissions. Every microservice [defines](../../framework/fundamentals/authorization/index.md) its own permissions. When a microservice starts, it registers its permissions to the related permission definition tables if `SaveStaticPermissionsToDatabase` option is true for `PermissionManagementOptions`. Since the default value is true, this behavior is ensured. After that, you can see the permissions from the [Permission Management Dialog](../../modules/permission-management.md#permission-management-dialog) for related provider such as *User*, *Role* or *Client (OpenIddict Applications)*. ![user-permissions](images/user-permissions.png) diff --git a/docs/en/solution-templates/single-layer-web-application/overview.md b/docs/en/solution-templates/single-layer-web-application/overview.md index a0e1e50093..c7e16090a7 100644 --- a/docs/en/solution-templates/single-layer-web-application/overview.md +++ b/docs/en/solution-templates/single-layer-web-application/overview.md @@ -39,7 +39,7 @@ The following **libraries and services** come **pre-installed** and **configured The solution comes with the following built-in and pre-configured features: * **Authentication** is fully configured based on best practices. -* **[Permission](../../framework/fundamentals/authorization.md)** (authorization), **[setting](../../framework/infrastructure/settings.md)**, **[feature](../../framework/infrastructure/features.md)** and the **[localization](../../framework/fundamentals/localization.md)** management systems are pre-configured and ready to use. +* **[Permission](../../framework/fundamentals/authorization/index.md)** (authorization), **[setting](../../framework/infrastructure/settings.md)**, **[feature](../../framework/infrastructure/features.md)** and the **[localization](../../framework/fundamentals/localization.md)** management systems are pre-configured and ready to use. * **[Background job system](../../framework/infrastructure/background-jobs/index.md)**. * **[BLOB storge](../../framework/infrastructure/blob-storing/index.md)** system is installed with the [database provider](../../framework/infrastructure/blob-storing/database.md). * **On-the-fly database migration** system (services automatically migrated their database schema when you deploy a new version). **\*** diff --git a/docs/en/solution-templates/single-layer-web-application/solution-structure.md b/docs/en/solution-templates/single-layer-web-application/solution-structure.md index ffb085855f..dd24b91f09 100644 --- a/docs/en/solution-templates/single-layer-web-application/solution-structure.md +++ b/docs/en/solution-templates/single-layer-web-application/solution-structure.md @@ -56,7 +56,7 @@ This template uses a single-project structure, with concerns separated into fold * **Migrations**: Contains the database migration files. It is created automatically by EF Core. * **ObjectMapping**: Define your [object-to-object mapping](../../framework/infrastructure/object-to-object-mapping.md) classes in this folder. * **Pages**: Define your UI pages (Razor Pages) in this folder (create `Controllers` and `Views` folders yourself if you prefer the MVC pattern). -* **Permissions**: Define your [permissions](../../framework/fundamentals/authorization.md) in this folder. +* **Permissions**: Define your [permissions](../../framework/fundamentals/authorization/index.md) in this folder. * **Services**: Define your [application services](../../framework/architecture/domain-driven-design/application-services.md) in this folder. ### How to Run? diff --git a/docs/en/tutorials/book-store/part-05.md b/docs/en/tutorials/book-store/part-05.md index b7b05103c9..047ce7ea1f 100644 --- a/docs/en/tutorials/book-store/part-05.md +++ b/docs/en/tutorials/book-store/part-05.md @@ -30,7 +30,7 @@ ## Permissions -ABP provides an [authorization system](../../framework/fundamentals/authorization.md) based on the ASP.NET Core's [authorization infrastructure](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/introduction). One major feature added on top of the standard authorization infrastructure is the **permission system** which allows to define permissions and enable/disable per role, user or client. +ABP provides an [authorization system](../../framework/fundamentals/authorization/index.md) based on the ASP.NET Core's [authorization infrastructure](https://docs.microsoft.com/en-us/aspnet/core/security/authorization/introduction). One major feature added on top of the standard authorization infrastructure is the **permission system** which allows to define permissions and enable/disable per role, user or client. ### Permission Names diff --git a/docs/en/tutorials/book-store/part-08.md b/docs/en/tutorials/book-store/part-08.md index 68796b99eb..02a0182fe5 100644 --- a/docs/en/tutorials/book-store/part-08.md +++ b/docs/en/tutorials/book-store/part-08.md @@ -183,7 +183,7 @@ public class AuthorAppService : BookStoreAppService, IAuthorAppService } ```` -* `[Authorize(BookStorePermissions.Authors.Default)]` is a declarative way to check a permission (policy) to authorize the current user. See the [authorization document](../../framework/fundamentals/authorization.md) for more. `BookStorePermissions` class will be updated below, don't worry for the compile error for now. +* `[Authorize(BookStorePermissions.Authors.Default)]` is a declarative way to check a permission (policy) to authorize the current user. See the [authorization document](../../framework/fundamentals/authorization/index.md) for more. `BookStorePermissions` class will be updated below, don't worry for the compile error for now. * Derived from the `BookStoreAppService`, which is a simple base class comes with the startup template. It is derived from the standard `ApplicationService` class. * Implemented the `IAuthorAppService` which was defined above. * Injected the `IAuthorRepository` and `AuthorManager` to use in the service methods. diff --git a/docs/en/ui-themes/lepton-x-lite/angular.md b/docs/en/ui-themes/lepton-x-lite/angular.md index 1ab5212462..d5207a66ce 100644 --- a/docs/en/ui-themes/lepton-x-lite/angular.md +++ b/docs/en/ui-themes/lepton-x-lite/angular.md @@ -53,7 +53,7 @@ export const appConfig: ApplicationConfig = { }; ``` -Note: If you employ [Resource Owner Password Flow](../../framework/ui/angular/authorization.md#resource-owner-password-flow) for authorization, you should provide the following provider as well: +Note: If you employ [Resource Owner Password Flow](../../framework/ui/angular/authorization/index.md#resource-owner-password-flow) for authorization, you should provide the following provider as well: ```js import { provideAccountLayout } from "@abp/ng.theme.lepton-x/account";