Browse Source

user with roles

pull/5399/head
Ahmet Çotur 6 years ago
parent
commit
7744c134c8
  1. 165
      modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor
  2. 66
      modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor.cs

165
modules/identity/src/Volo.Abp.Identity.Blazor/Pages/Identity/UserManagement.razor

@ -68,36 +68,58 @@
<CloseButton Clicked="CloseCreateModal" /> <CloseButton Clicked="CloseCreateModal" />
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>
<Field> <Tabs SelectedTab="UserInformations">
<FieldLabel>@L["DisplayName:UserName"]</FieldLabel> <Items>
<TextEdit @bind-text="NewEntity.UserName" /> <Tab Name="UserInformations">@L["UserInformations"]</Tab>
</Field> <Tab Name="Roles">@L["Roles"]</Tab>
<Field> </Items>
<FieldLabel>@L["DisplayName:Name"]</FieldLabel> <Content>
<TextEdit @bind-text="NewEntity.Name" /> <TabPanel Name="UserInformations">
</Field> <Field>
<Field> <FieldLabel>@L["DisplayName:UserName"]</FieldLabel>
<FieldLabel>@L["DisplayName:Surname"]</FieldLabel> <TextEdit @bind-text="NewEntity.UserName" />
<TextEdit @bind-text="NewEntity.Surname" /> </Field>
</Field> <Field>
<Field> <FieldLabel>@L["DisplayName:Name"]</FieldLabel>
<FieldLabel>@L["DisplayName:Password"]</FieldLabel> <TextEdit @bind-text="NewEntity.Name" />
<TextEdit @bind-text="NewEntity.Password" /> </Field>
</Field> <Field>
<Field> <FieldLabel>@L["DisplayName:Surname"]</FieldLabel>
<FieldLabel>@L["DisplayName:Email"]</FieldLabel> <TextEdit @bind-text="NewEntity.Surname" />
<TextEdit @bind-text="NewEntity.Email" /> </Field>
</Field> <Field>
<Field> <FieldLabel>@L["DisplayName:Password"]</FieldLabel>
<FieldLabel>@L["DisplayName:PhoneNumber"]</FieldLabel> <TextEdit @bind-text="NewEntity.Password" />
<TextEdit @bind-text="NewEntity.PhoneNumber" /> </Field>
</Field> <Field>
<Field> <FieldLabel>@L["DisplayName:Email"]</FieldLabel>
<Check TValue="bool" @bind-checked="NewEntity.LockoutEnabled">@L["DisplayName:LockoutEnabled"]</Check> <TextEdit @bind-text="NewEntity.Email" />
</Field> </Field>
<Field> <Field>
<Check TValue="bool" @bind-checked="NewEntity.TwoFactorEnabled">@L["DisplayName:TwoFactorEnabled"]</Check> <FieldLabel>@L["DisplayName:PhoneNumber"]</FieldLabel>
</Field> <TextEdit @bind-text="NewEntity.PhoneNumber" />
</Field>
<Field>
<Check TValue="bool" @bind-checked="NewEntity.LockoutEnabled">@L["DisplayName:LockoutEnabled"]</Check>
</Field>
<Field>
<Check TValue="bool" @bind-checked="NewEntity.TwoFactorEnabled">@L["DisplayName:TwoFactorEnabled"]</Check>
</Field>
</TabPanel>
<TabPanel Name="Roles">
@if (NewEntityRoles != null)
{
@foreach (var role in NewEntityRoles)
{
<Field>
<input type="hidden" @bind-value="@role.Name" />
<Check TValue="bool" @bind-checked="@role.IsAssigned">@role.Name</Check>
</Field>
}
}
</TabPanel>
</Content>
</Tabs>
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button Color="Color.Secondary" Clicked="CloseCreateModal">@L["Cancel"]</Button> <Button Color="Color.Secondary" Clicked="CloseCreateModal">@L["Cancel"]</Button>
@ -116,36 +138,59 @@
</ModalHeader> </ModalHeader>
<ModalBody> <ModalBody>
<input type="hidden" name="ConcurrencyStamp" @bind-value="EditingEntity.ConcurrencyStamp" /> <input type="hidden" name="ConcurrencyStamp" @bind-value="EditingEntity.ConcurrencyStamp" />
<Field>
<FieldLabel>@L["DisplayName:UserName"]</FieldLabel> <Tabs SelectedTab="UserInformations">
<TextEdit @bind-text="EditingEntity.UserName" /> <Items>
</Field> <Tab Name="UserInformations">@L["UserInformations"]</Tab>
<Field> <Tab Name="Roles">@L["Roles"]</Tab>
<FieldLabel>@L["DisplayName:Name"]</FieldLabel> </Items>
<TextEdit @bind-text="EditingEntity.Name" /> <Content>
</Field> <TabPanel Name="UserInformations">
<Field> <Field>
<FieldLabel>@L["DisplayName:Surname"]</FieldLabel> <FieldLabel>@L["DisplayName:UserName"]</FieldLabel>
<TextEdit @bind-text="EditingEntity.Surname" /> <TextEdit @bind-text="EditingEntity.UserName" />
</Field> </Field>
<Field> <Field>
<FieldLabel>@L["DisplayName:Password"]</FieldLabel> <FieldLabel>@L["DisplayName:Name"]</FieldLabel>
<TextEdit @bind-text="EditingEntity.Password" /> <TextEdit @bind-text="EditingEntity.Name" />
</Field> </Field>
<Field> <Field>
<FieldLabel>@L["DisplayName:Email"]</FieldLabel> <FieldLabel>@L["DisplayName:Surname"]</FieldLabel>
<TextEdit @bind-text="EditingEntity.Email" /> <TextEdit @bind-text="EditingEntity.Surname" />
</Field> </Field>
<Field> <Field>
<FieldLabel>@L["DisplayName:PhoneNumber"]</FieldLabel> <FieldLabel>@L["DisplayName:Password"]</FieldLabel>
<TextEdit @bind-text="EditingEntity.PhoneNumber" /> <TextEdit @bind-text="EditingEntity.Password" />
</Field> </Field>
<Field> <Field>
<Check TValue="bool" @bind-checked="EditingEntity.LockoutEnabled">@L["DisplayName:LockoutEnabled"]</Check> <FieldLabel>@L["DisplayName:Email"]</FieldLabel>
</Field> <TextEdit @bind-text="EditingEntity.Email" />
<Field> </Field>
<Check TValue="bool" @bind-checked="EditingEntity.TwoFactorEnabled">@L["DisplayName:TwoFactorEnabled"]</Check> <Field>
</Field> <FieldLabel>@L["DisplayName:PhoneNumber"]</FieldLabel>
<TextEdit @bind-text="EditingEntity.PhoneNumber" />
</Field>
<Field>
<Check TValue="bool" @bind-checked="EditingEntity.LockoutEnabled">@L["DisplayName:LockoutEnabled"]</Check>
</Field>
<Field>
<Check TValue="bool" @bind-checked="EditingEntity.TwoFactorEnabled">@L["DisplayName:TwoFactorEnabled"]</Check>
</Field>
</TabPanel>
<TabPanel Name="Roles">
@if (EditEntityRoles != null)
{
@foreach (var role in EditEntityRoles)
{
<Field>
<input type="hidden" @bind-value="@role.Name" />
<Check TValue="bool" @bind-checked="@role.IsAssigned">@role.Name</Check>
</Field>
}
}
</TabPanel>
</Content>
</Tabs>
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button Color="Color.Secondary" Clicked="CloseEditModal">@L["Cancel"]</Button> <Button Color="Color.Secondary" Clicked="CloseEditModal">@L["Cancel"]</Button>

66
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 namespace Volo.Abp.Identity.Blazor.Pages.Identity
{ {
@ -8,9 +13,68 @@ namespace Volo.Abp.Identity.Blazor.Pages.Identity
private PermissionManagementModal PermissionManagementModal; private PermissionManagementModal PermissionManagementModal;
protected IReadOnlyList<IdentityRoleDto> Roles;
protected AssignedRoleViewModel[] NewEntityRoles;
protected AssignedRoleViewModel[] EditEntityRoles;
public UserManagement() public UserManagement()
{ {
ObjectMapperContext = typeof(AbpIdentityBlazorModule); 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; }
} }
} }

Loading…
Cancel
Save