public async Task GetRolesInOrgUnit_Test() { CreateOrgUnitDto createOrgUnitDto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou Test" }; var orgUnitDto = await _orgUnitAppService.CreateAsync(createOrgUnitDto); var createRoleDto1 = new CreateRoleDto() { Name = "RoleTest1", DisplayName = "Test role1", Description = "Role1 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Roles } }; var role1Dto = await _roleAppService.CreateAsync(createRoleDto1); SetOrgUnitRoleDto setOrgUnitRole1Dto = new SetOrgUnitRoleDto() { OrgUnitId = orgUnitDto.Id, RoleId = role1Dto.Id }; await _orgUnitAppService.AddRoleToOrgUnitAsync(setOrgUnitRole1Dto); var createRoleDto2 = new CreateRoleDto() { Name = "RoleTest2", DisplayName = "Test role2", Description = "Role2 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Users } }; var role2Dto = await _roleAppService.CreateAsync(createRoleDto2); SetOrgUnitRoleDto setOrgUnitRole2Dto = new SetOrgUnitRoleDto() { OrgUnitId = orgUnitDto.Id, RoleId = role2Dto.Id }; await _orgUnitAppService.AddRoleToOrgUnitAsync(setOrgUnitRole2Dto); var getOrgUnitDto = await _orgUnitAppService.GetAsync(new EntityDto <long>(orgUnitDto.Id)); getOrgUnitDto.AssignedRoles.Count.ShouldBe(2); getOrgUnitDto.GrantedPermissions.Count.ShouldBe(2); var roles = await _orgUnitAppService.GetRolesInOrgUnitAsync(new EntityDto <long>(orgUnitDto.Id)); roles.Count.ShouldBe(2); roles[0].DisplayName.ShouldBe("Test role1"); roles[0].GrantedPermissions.Count.ShouldBe(1); roles[1].DisplayName.ShouldBe("Test role2"); roles[1].GrantedPermissions.Count.ShouldBe(1); }
public async Task RemoveRoleFromOrgUnitInTenant_Test() { CreateTenantDto createTenantDto = new CreateTenantDto() { TenancyName = "TestTenant", Name = "TestTenant", AdminPhoneNumber = "13851400000", IsActive = true }; var tenantDto = await _tenantAppService.CreateAsync(createTenantDto); var createRoleDto = new CreateRoleDto() { Name = "RoleTest", DisplayName = "Test role", Description = "Role for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Roles } }; var roleDto = await _omRoleAppService.CreateRoleInTenantAsync(tenantDto.Id, createRoleDto); CreateOrgUnitDto createOrgUnitDto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou Test" }; var orgUnitDto = await _omOrgUnitAppService.CreateOrgUnitInTenantAsync(tenantDto.Id, createOrgUnitDto); SetOrgUnitRoleDto setOrgUnitRoleDto = new SetOrgUnitRoleDto() { OrgUnitId = orgUnitDto.Id, RoleId = roleDto.Id }; await _omOrgUnitAppService.AddRoleToOrgUnitInTenantAsync(tenantDto.Id, setOrgUnitRoleDto); await UsingDbContextAsync(async context => { var testOus = await context.OrganizationUnitRoles .Where(our => our.OrganizationUnitId == orgUnitDto.Id).ToListAsync(); testOus.Count.ShouldBe(1); testOus[0].RoleId.ShouldBe(roleDto.Id); }); await _omOrgUnitAppService.RemoveRoleFromOrgUnitInTenantAsync(tenantDto.Id, setOrgUnitRoleDto); await UsingDbContextAsync(async context => { var testOus = await context.OrganizationUnitRoles .Where(our => our.OrganizationUnitId == orgUnitDto.Id).ToListAsync(); testOus.Count.ShouldBe(1); testOus[0].RoleId.ShouldBe(roleDto.Id); testOus[0].IsDeleted.ShouldBeTrue(); }); }
private async Task CheckExistenceOfRoleAndOrgUnitAsync(SetOrgUnitRoleDto input) { try { var role = await _roleManager.GetRoleByIdAsync(input.RoleId); var ou = await _orgUnitRepository.GetAsync(input.OrgUnitId); } catch (Exception exception) { throw new UserFriendlyException(exception.Message); } }
/// <summary> /// 运维专用:对特定租户下的指定组织删除一个角色 /// </summary> /// <param name="tenantId"></param> /// <param name="input"></param> /// <returns></returns> public async Task RemoveRoleFromOrgUnitInTenantAsync(int tenantId, SetOrgUnitRoleDto input) { using (CurrentUnitOfWork.SetTenantId(tenantId)) { try { var role = await _roleManager.GetRoleByIdAsync(input.RoleId); var ou = await _orgUnitRepository.GetAsync(input.OrgUnitId); await _roleManager.RemoveFromOrganizationUnitAsync(input.RoleId, input.OrgUnitId); } catch (Exception exception) { throw new UserFriendlyException(exception.Message); } } }
public async Task AddRoleToOrgUnit_Test() { var createRoleDto = new CreateRoleDto() { Name = "RoleTest", DisplayName = "Test role", Description = "Role for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Roles } }; var roleDto = await _roleAppService.CreateAsync(createRoleDto); CreateOrgUnitDto createOrgUnitDto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou Test" }; var orgUnitDto = await _orgUnitAppService.CreateAsync(createOrgUnitDto); SetOrgUnitRoleDto setOrgUnitRoleDto = new SetOrgUnitRoleDto() { OrgUnitId = orgUnitDto.Id, RoleId = roleDto.Id }; await _orgUnitAppService.AddRoleToOrgUnitAsync(setOrgUnitRoleDto); await UsingDbContextAsync(async context => { var testOus = await context.OrganizationUnitRoles .Where(our => our.OrganizationUnitId == orgUnitDto.Id).ToListAsync(); testOus.Count.ShouldBe(1); testOus[0].RoleId.ShouldBe(roleDto.Id); }); }
private async Task CreateComplexRoleAndOrgUnit() { // Role 1 var createRole1Dto = new CreateRoleDto() { Name = "Role1", DisplayName = "Role1", Description = "Role1 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Roles } }; var role1Dto = await _roleAppService.CreateAsync(createRole1Dto); // Role 2 var createRole2Dto = new CreateRoleDto() { Name = "Role2", DisplayName = "Role2", Description = "Role2 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Users, PermissionNames.Pages_Roles } }; var role2Dto = await _roleAppService.CreateAsync(createRole2Dto); // Role 2 var createRole3Dto = new CreateRoleDto() { Name = "Role3", DisplayName = "Role3", Description = "Role3 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Roles } }; var role3Dto = await _roleAppService.CreateAsync(createRole3Dto); // OrgUnit with Role1 and Role2 CreateOrgUnitDto createOrgUnitDto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou Test" }; var orgUnitDto = await _orgUnitAppService.CreateAsync(createOrgUnitDto); SetOrgUnitRoleDto setOrgUnitRole1Dto = new SetOrgUnitRoleDto() { OrgUnitId = orgUnitDto.Id, RoleId = role1Dto.Id }; await _orgUnitAppService.AddRoleToOrgUnitAsync(setOrgUnitRole1Dto); SetOrgUnitRoleDto setOrgUnitRole2Dto = new SetOrgUnitRoleDto() { OrgUnitId = orgUnitDto.Id, RoleId = role2Dto.Id }; await _orgUnitAppService.AddRoleToOrgUnitAsync(setOrgUnitRole2Dto); }
public async Task GetRolesInOrgUnitInTenant_Test() { CreateTenantDto createTenantDto = new CreateTenantDto() { TenancyName = "TestTenant", Name = "TestTenant", AdminPhoneNumber = "13851400000", IsActive = true }; var tenantDto = await _tenantAppService.CreateAsync(createTenantDto); CreateOrgUnitDto createOrgUnitDto = new CreateOrgUnitDto() { ParentId = null, DisplayName = "Ou Test" }; var orgUnitDto = await _omOrgUnitAppService.CreateOrgUnitInTenantAsync(tenantDto.Id, createOrgUnitDto); var createRoleDto1 = new CreateRoleDto() { Name = "RoleTest1", DisplayName = "Test role1", Description = "Role1 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Roles } }; var role1Dto = await _omRoleAppService.CreateRoleInTenantAsync(tenantDto.Id, createRoleDto1); SetOrgUnitRoleDto setOrgUnitRole1Dto = new SetOrgUnitRoleDto() { OrgUnitId = orgUnitDto.Id, RoleId = role1Dto.Id }; await _omOrgUnitAppService.AddRoleToOrgUnitInTenantAsync(tenantDto.Id, setOrgUnitRole1Dto); var createRoleDto2 = new CreateRoleDto() { Name = "RoleTest2", DisplayName = "Test role2", Description = "Role2 for test", GrantedPermissions = new List <string>() { PermissionNames.Pages_Users } }; var role2Dto = await _omRoleAppService.CreateRoleInTenantAsync(tenantDto.Id, createRoleDto2); SetOrgUnitRoleDto setOrgUnitRole2Dto = new SetOrgUnitRoleDto() { OrgUnitId = orgUnitDto.Id, RoleId = role2Dto.Id }; await _omOrgUnitAppService.AddRoleToOrgUnitInTenantAsync(tenantDto.Id, setOrgUnitRole2Dto); var getOrgUnitDto = await _omOrgUnitAppService.GetOrgUnitInTenantAsync(tenantDto.Id, new EntityDto <long>(orgUnitDto.Id)); getOrgUnitDto.AssignedRoles.Count.ShouldBe(2); getOrgUnitDto.GrantedPermissions.Count.ShouldBe(2); var roles = await _omOrgUnitAppService.GetRolesInOrgUnitInTenantAsync(tenantDto.Id, new EntityDto <long>(orgUnitDto.Id)); roles.Count.ShouldBe(2); roles[0].DisplayName.ShouldBe("Test role1"); roles[0].GrantedPermissions.Count.ShouldBe(1); roles[1].DisplayName.ShouldBe("Test role2"); roles[1].GrantedPermissions.Count.ShouldBe(1); }
/// <summary> /// 对当前租户下的特定组织删除某一角色 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task RemoveRoleFromOrgUnitAsync(SetOrgUnitRoleDto input) { await CheckExistenceOfRoleAndOrgUnitAsync(input); await _roleManager.RemoveFromOrganizationUnitAsync(input.RoleId, input.OrgUnitId); }
/// <summary> /// 对当前租户下的特定组织添加一个角色 /// </summary> /// <param name="input"></param> /// <returns></returns> public async Task AddRoleToOrgUnitAsync(SetOrgUnitRoleDto input) { await CheckExistenceOfRoleAndOrgUnitAsync(input); await _roleManager.AddToOrganizationUnitAsync(input.RoleId, input.OrgUnitId, GetCurrentTenantId()); }