Browse Source

Remove role permission requests from user create edit modals

resolves https://github.com/abpframework/abp/issues/4291
pull/4293/head
Yunus Emre Kalkan 6 years ago
parent
commit
cfc776da43
  1. 2
      modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityUserAppService.cs
  2. 15
      modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs
  3. 7
      modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs
  4. 6
      modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml.cs
  5. 8
      modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml.cs

2
modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IIdentityUserAppService.cs

@ -9,6 +9,8 @@ namespace Volo.Abp.Identity
{
Task<ListResultDto<IdentityRoleDto>> GetRolesAsync(Guid id);
Task<ListResultDto<IdentityRoleDto>> GetAssignableRolesAsync();
Task UpdateRolesAsync(Guid id, IdentityUserUpdateRolesDto input);
Task<IdentityUserDto> FindByUsernameAsync(string username);

15
modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs

@ -12,13 +12,16 @@ namespace Volo.Abp.Identity
{
protected IdentityUserManager UserManager { get; }
protected IIdentityUserRepository UserRepository { get; }
public IIdentityRoleRepository RoleRepository { get; }
public IdentityUserAppService(
IdentityUserManager userManager,
IIdentityUserRepository userRepository)
IIdentityUserRepository userRepository,
IIdentityRoleRepository roleRepository)
{
UserManager = userManager;
UserRepository = userRepository;
RoleRepository = roleRepository;
}
//TODO: [Authorize(IdentityPermissions.Users.Default)] should go the IdentityUserAppService class.
@ -54,6 +57,14 @@ namespace Volo.Abp.Identity
);
}
[Authorize(IdentityPermissions.Users.Default)]
public virtual async Task<ListResultDto<IdentityRoleDto>> GetAssignableRolesAsync()
{
var list = await RoleRepository.GetListAsync();
return new ListResultDto<IdentityRoleDto>(
ObjectMapper.Map<List<IdentityRole>, List<IdentityRoleDto>>(list));
}
[Authorize(IdentityPermissions.Users.Create)]
public virtual async Task<IdentityUserDto> CreateAsync(IdentityUserCreateDto input)
{
@ -92,7 +103,7 @@ namespace Volo.Abp.Identity
(await UserManager.RemovePasswordAsync(user)).CheckErrors();
(await UserManager.AddPasswordAsync(user, input.Password)).CheckErrors();
}
await CurrentUnitOfWork.SaveChangesAsync();
return ObjectMapper.Map<IdentityUser, IdentityUserDto>(user);

7
modules/identity/src/Volo.Abp.Identity.HttpApi/Volo/Abp/Identity/IdentityUserController.cs

@ -59,6 +59,13 @@ namespace Volo.Abp.Identity
return UserAppService.GetRolesAsync(id);
}
[HttpGet]
[Route("assignable-roles")]
public Task<ListResultDto<IdentityRoleDto>> GetAssignableRolesAsync()
{
return UserAppService.GetAssignableRolesAsync();
}
[HttpPut]
[Route("{id}/roles")]
public virtual Task UpdateRolesAsync(Guid id, IdentityUserUpdateRolesDto input)

6
modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/CreateModal.cshtml.cs

@ -17,19 +17,17 @@ namespace Volo.Abp.Identity.Web.Pages.Identity.Users
public AssignedRoleViewModel[] Roles { get; set; }
protected IIdentityUserAppService IdentityUserAppService { get; }
protected IIdentityRoleAppService IdentityRoleAppService { get; }
public CreateModalModel(IIdentityUserAppService identityUserAppService, IIdentityRoleAppService identityRoleAppService)
public CreateModalModel(IIdentityUserAppService identityUserAppService)
{
IdentityUserAppService = identityUserAppService;
IdentityRoleAppService = identityRoleAppService;
}
public virtual async Task<IActionResult> OnGetAsync()
{
UserInfo = new UserInfoViewModel();
var roleDtoList = (await IdentityRoleAppService.GetAllListAsync()).Items;
var roleDtoList = (await IdentityUserAppService.GetAssignableRolesAsync()).Items;
Roles = ObjectMapper.Map<IReadOnlyList<IdentityRoleDto>, AssignedRoleViewModel[]>(roleDtoList);

8
modules/identity/src/Volo.Abp.Identity.Web/Pages/Identity/Users/EditModal.cshtml.cs

@ -19,19 +19,17 @@ namespace Volo.Abp.Identity.Web.Pages.Identity.Users
public AssignedRoleViewModel[] Roles { get; set; }
protected IIdentityUserAppService IdentityUserAppService { get; }
protected IIdentityRoleAppService IdentityRoleAppService { get; }
public EditModalModel(IIdentityUserAppService identityUserAppService, IIdentityRoleAppService identityRoleAppService)
public EditModalModel(IIdentityUserAppService identityUserAppService)
{
IdentityUserAppService = identityUserAppService;
IdentityRoleAppService = identityRoleAppService;
}
public virtual async Task<IActionResult> OnGetAsync(Guid id)
{
UserInfo = ObjectMapper.Map<IdentityUserDto, UserInfoViewModel>(await IdentityUserAppService.GetAsync(id));
Roles = ObjectMapper.Map<IReadOnlyList<IdentityRoleDto>, AssignedRoleViewModel[]>((await IdentityRoleAppService.GetAllListAsync()).Items);
Roles = ObjectMapper.Map<IReadOnlyList<IdentityRoleDto>, AssignedRoleViewModel[]>((await IdentityUserAppService.GetAssignableRolesAsync()).Items);
var userRoleNames = (await IdentityUserAppService.GetRolesAsync(UserInfo.Id)).Items.Select(r => r.Name).ToList();
foreach (var role in Roles)
@ -101,4 +99,4 @@ namespace Volo.Abp.Identity.Web.Pages.Identity.Users
public bool IsAssigned { get; set; }
}
}
}
}

Loading…
Cancel
Save