From 7744c134c8729d9fc1adc73b882d2b2ead4f2634 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=87otur?= Date: Fri, 11 Sep 2020 14:19:16 +0300 Subject: [PATCH] user with roles --- .../Pages/Identity/UserManagement.razor | 165 +++++++++++------- .../Pages/Identity/UserManagement.razor.cs | 66 ++++++- 2 files changed, 170 insertions(+), 61 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor index 9827656af3..0b12a65227 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor @@ -68,36 +68,58 @@ - - @L["DisplayName:UserName"] - - - - @L["DisplayName:Name"] - - - - @L["DisplayName:Surname"] - - - - @L["DisplayName:Password"] - - - - @L["DisplayName:Email"] - - - - @L["DisplayName:PhoneNumber"] - - - - @L["DisplayName:LockoutEnabled"] - - - @L["DisplayName:TwoFactorEnabled"] - + + + @L["UserInformations"] + @L["Roles"] + + + + + @L["DisplayName:UserName"] + + + + @L["DisplayName:Name"] + + + + @L["DisplayName:Surname"] + + + + @L["DisplayName:Password"] + + + + @L["DisplayName:Email"] + + + + @L["DisplayName:PhoneNumber"] + + + + @L["DisplayName:LockoutEnabled"] + + + @L["DisplayName:TwoFactorEnabled"] + + + + @if (NewEntityRoles != null) + { + @foreach (var role in NewEntityRoles) + { + + + @role.Name + + } + } + + + @@ -116,36 +138,59 @@ - - @L["DisplayName:UserName"] - - - - @L["DisplayName:Name"] - - - - @L["DisplayName:Surname"] - - - - @L["DisplayName:Password"] - - - - @L["DisplayName:Email"] - - - - @L["DisplayName:PhoneNumber"] - - - - @L["DisplayName:LockoutEnabled"] - - - @L["DisplayName:TwoFactorEnabled"] - + + + + @L["UserInformations"] + @L["Roles"] + + + + + @L["DisplayName:UserName"] + + + + @L["DisplayName:Name"] + + + + @L["DisplayName:Surname"] + + + + @L["DisplayName:Password"] + + + + @L["DisplayName:Email"] + + + + @L["DisplayName:PhoneNumber"] + + + + @L["DisplayName:LockoutEnabled"] + + + @L["DisplayName:TwoFactorEnabled"] + + + + @if (EditEntityRoles != null) + { + @foreach (var role in EditEntityRoles) + { + + + @role.Name + + } + } + + + diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs index 3f5970570e..cb616a90d3 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs @@ -1,4 +1,9 @@ -using Volo.Abp.PermissionManagement.Blazor.Components; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.PermissionManagement.Blazor.Components; +using Volo.Abp.Threading; namespace Volo.Abp.Identity.Blazor.Pages.Identity { @@ -8,9 +13,68 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity private PermissionManagementModal PermissionManagementModal; + protected IReadOnlyList Roles; + + protected AssignedRoleViewModel[] NewEntityRoles; + + protected AssignedRoleViewModel[] EditEntityRoles; + public UserManagement() { ObjectMapperContext = typeof(AbpIdentityBlazorModule); } + + protected override async Task OnInitializedAsync() + { + await base.OnInitializedAsync(); + + Roles = (await AppService.GetAssignableRolesAsync()).Items; + } + + protected override void OpenCreateModal() + { + + NewEntityRoles = Roles.Select(x => new AssignedRoleViewModel + { + Name = x.Name, + IsAssigned = x.IsDefault + }).ToArray(); + + base.OpenCreateModal(); + } + + protected override Task CreateEntityAsync() + { + NewEntity.RoleNames = NewEntityRoles.Where(x => x.IsAssigned).Select(x => x.Name).ToArray(); + + return base.CreateEntityAsync(); + } + + protected override async Task OpenEditModalAsync(Guid id) + { + var userRoleNames = (await AppService.GetRolesAsync(id)).Items.Select(r => r.Name).ToList(); + + EditEntityRoles = Roles.Select(x => new AssignedRoleViewModel + { + Name = x.Name, + IsAssigned = userRoleNames.Contains(x.Name) + }).ToArray(); + + await base.OpenEditModalAsync(id); + } + + protected override Task UpdateEntityAsync() + { + EditingEntity.RoleNames = EditEntityRoles.Where(x => x.IsAssigned).Select(x => x.Name).ToArray(); + + return base.UpdateEntityAsync(); + } + } + + public class AssignedRoleViewModel + { + public string Name { get; set; } + + public bool IsAssigned { get; set; } } }