示例#1
0
        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);
                }
            }
        }
示例#5
0
        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);
            });
        }
示例#6
0
        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());
        }