From d8957fe5dc8b7f8f868c329dff504d0ac0d87158 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Sun, 5 Jul 2020 15:31:20 +0300 Subject: [PATCH] Added authorization part --- docs/en/Tutorials/Part-4.md | 226 ++++++++++++++++++ .../images/bookstore-edit-delete-actions.png | Bin 0 -> 12396 bytes .../images/bookstore-permissions-ui.png | Bin 0 -> 58971 bytes 3 files changed, 226 insertions(+) create mode 100644 docs/en/Tutorials/Part-4.md create mode 100644 docs/en/Tutorials/images/bookstore-edit-delete-actions.png create mode 100644 docs/en/Tutorials/images/bookstore-permissions-ui.png diff --git a/docs/en/Tutorials/Part-4.md b/docs/en/Tutorials/Part-4.md new file mode 100644 index 0000000000..53aa15278f --- /dev/null +++ b/docs/en/Tutorials/Part-4.md @@ -0,0 +1,226 @@ +# ASP.NET Core {{UI_Value}} Tutorial - Part 4 +````json +//[doc-params] +{ + "UI": ["MVC","NG"] +} +```` + +{{ +if UI == "MVC" + DB="ef" + DB_Text="Entity Framework Core" + UI_Text="mvc" +else if UI == "NG" + DB="mongodb" + DB_Text="MongoDB" + UI_Text="angular" +else + DB ="?" + UI_Text="?" +end +}} + +## About This Tutorial + +In this tutorial series, you will build an ABP based web application named `Acme.BookStore`. This application is used to manage a list of books and their authors. It is developed using the following technologies: + +* **{{DB_Text}}** as the ORM provider. +* **{{UI_Value}}** as the UI Framework. + +This tutorial is organized as the following parts; + +- [Part I: Creating the project and book list page](part-1.md) +- [Part-2: Creating, updating and deleting books](Part-2.md) +- [Part-3: Integration tests](Part-3.md) +- **Part-4: Authorization (this part)** + +### Source Code + +You can find the completed solution on {{if UI == "MVC"}}[the GitHub repository](https://github.com/abpframework/abp-samples/tree/master/BookStore-Mvc-EfCore){{else}}[the GitHub repository](https://github.com/abpframework/abp-samples/tree/master/BookStore-Angular-MongoDb){{end}}. + +## Permissions + +ABP Framework provides an [authorization system](../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. + +### Permission Names + +A permission must have a unique name (a `string`). The best way is to define it as a `const`, so we can reuse the permission name. + +Open the `BookStorePermissions` class and change the content as shown below: + +````csharp +namespace Acme.BookStore.Permissions +{ + public static class BookStorePermissions + { + public const string GroupName = "BookStore"; + + public static class Books + { + public const string Default = GroupName + ".Books"; + public const string Create = Default + ".Create"; + public const string Edit = Default + ".Edit"; + public const string Delete = Default + ".Delete"; + } + } +} +```` + +This is a hierarchical way of defining permission names. For example, "create book" permission name was defined as `BookStore.Books.Create`. + +### Permission Definitions + +You should define permissions before using them. + +Open the `BookStorePermissionDefinitionProvider` class inside the `Acme.BookStore.Application.Contracts` project and change the content as shown below: + +````csharp +using Acme.BookStore.Localization; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; + +namespace Acme.BookStore.Permissions +{ + public class BookStorePermissionDefinitionProvider : PermissionDefinitionProvider + { + public override void Define(IPermissionDefinitionContext context) + { + var bookStoreGroup = context.AddGroup(BookStorePermissions.GroupName, L("Permission:BookStore")); + + var booksPermission = bookStoreGroup.AddPermission(BookStorePermissions.Books.Default, L("Permission:Books")); + booksPermission.AddChild(BookStorePermissions.Books.Create, L("Permission:Books.Create")); + booksPermission.AddChild(BookStorePermissions.Books.Edit, L("Permission:Books.Edit")); + booksPermission.AddChild(BookStorePermissions.Books.Delete, L("Permission:Books.Delete")); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } + } +} +```` + +This class defines a **permission group** (to group permissions on the UI, will be seen below) and **4 permissions** inside this group. Also, **Create**, **Edit** and **Delete** are children of the `BookStorePermissions.Books.Default` permission. A child permission can be selected **only if the parent was selected**. + +Finally, edit the localization file (`en.json` under the `Localization/BookStore` folder of the `Acme.BookStore.Domain.Shared` project) to define the localization keys used above: + +````json +"Permission:BookStore": "Book Store", +"Permission:Books": "Book Management", +"Permission:Books.Create": "Creating new books", +"Permission:Books.Edit": "Editing the books", +"Permission:Books.Delete": "Deleting the books" +```` + +> Localization key names are arbitrary and no forcing rule. But we prefer the convention used above. + +### Permission Management UI + +Once you define the permissions, you can see them on the **permission management modal**. + +Go to the *Administration -> Identity -> Roles* page, select *Permissions* action for the admin role to open the permission management modal: + +![bookstore-permissions-ui](images/bookstore-permissions-ui.png) + +Grant the permissions you want and save the modal. + +## Authorization + +Now, you can use the permissions to authorize the book management. + +### Application Layer & HTTP API + +Open the `BookAppService` class and add set the policy names as the permission names defined above: + +````csharp +using System; +using Acme.BookStore.Permissions; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace Acme.BookStore.Books +{ + public class BookAppService : + CrudAppService< + Book, //The Book entity + BookDto, //Used to show books + Guid, //Primary key of the book entity + PagedAndSortedResultRequestDto, //Used for paging/sorting + CreateUpdateBookDto>, //Used to create/update a book + IBookAppService //implement the IBookAppService + { + public BookAppService(IRepository repository) + : base(repository) + { + GetPolicyName = BookStorePermissions.Books.Default; + GetListPolicyName = BookStorePermissions.Books.Default; + CreatePolicyName = BookStorePermissions.Books.Create; + UpdatePolicyName = BookStorePermissions.Books.Edit; + DeletePolicyName = BookStorePermissions.Books.Create; + } + } +} +```` + +Added code to the constructor. Base `CrudAppService` automatically uses these permissions on the CRUD operations. This makes the **application service** secure, but also makes the **HTTP API** secure since this service is automatically used as an HTTP API as explained before (see [auto API controllers](../API/Auto-API-Controllers.md)). + +{{if UI == "MVC"}} + +### Razor Page + +While securing the HTTP API & the application service prevents unauthorized users to use the services, they can still navigate to the book management page. While they will get authorization exceptions when the page makes the first AJAX call to the server, we should also authorize the page for a better user experience and security. + +Open the `BookStoreWebModule` and add the following code block inside the `ConfigureServices` method: + +````csharp +Configure(options => +{ + options.Conventions.AuthorizePage("/Books/Index", BookStorePermissions.Books.Default); + options.Conventions.AuthorizePage("/Books/CreateModal", BookStorePermissions.Books.Create); + options.Conventions.AuthorizePage("/Books/EditModal", BookStorePermissions.Books.Edit); +}); +```` + +Now, unauthorized users are redirected to the **login page**. + +### JavaScript Side + +Books table in the book management page has an actions button for each row. The actions button includes *Edit* and *Delete* action: + +![bookstore-edit-delete-actions](images/bookstore-edit-delete-actions.png) + +We should hide an action if the current user has not granted for the related permission. Datatables row actions has a `visible` option that can be set to `false` to hide the action item. + +Open the `Pages/Books/Index.js` inside the `Acme.BookStore.Web` project and add a `visible` option to the `Edit` action as shown below: + +````js +{ + text: l('Edit'), + visible: abp.auth.isGranted('BookStore.Books.Edit'), //CHECK for the PERMISSION + action: function (data) { + editModal.open({ id: data.record.id }); + } +} +```` + +Do same for the `Delete` action: + +````js +visible: abp.auth.isGranted('BookStore.Books.Delete') +```` + +* `abp.auth.isGranted(...)` is used to check a permission that is defined before. +* `visible` could also be get a function that returns a `bool` if the value will be calculated later, based on some conditions. + +### Menu Item + +Even we secured all layers of the book management page, it is still visible on the main menu of the application. + +{{else if UI == "NG"}} + +***Angular UI authorization document is being prepared...*** + +{{end}} \ No newline at end of file diff --git a/docs/en/Tutorials/images/bookstore-edit-delete-actions.png b/docs/en/Tutorials/images/bookstore-edit-delete-actions.png new file mode 100644 index 0000000000000000000000000000000000000000..9c275c6d15a0737498098b4c3ff2cafebd648595 GIT binary patch literal 12396 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 literal 0 HcmV?d00001 diff --git a/docs/en/Tutorials/images/bookstore-permissions-ui.png b/docs/en/Tutorials/images/bookstore-permissions-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..749f7a013f72763af7759101d83b50b47527f76c GIT binary patch literal 58971 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 W=F2m#l*5w%7|~GCQLcM#8~GoxzB@et literal 0 HcmV?d00001