public async Task <UnifyResponseDto> DispatchPermissions(DispatchPermissionsDto permissionDto)
        {
            List <PermissionDefinition> permissionDefinitions = ReflexHelper.GetAssemblyLinCmsAttributes();
            await _permissionService.DispatchPermissions(permissionDto, permissionDefinitions);

            return(UnifyResponseDto.Success("添加权限成功"));
        }
Пример #2
0
        public async Task <bool> DispatchPermissionsAsync(DispatchPermissionsDto dto)
        {
            //去重
            var distinctPers = dto.PermissionIds.Distinct().ToList();

            var pers = await _permissionRepo.Select.ToListAsync();

            var notExist = distinctPers.Where(p => !pers.Any(per => per.Id == p));

            if (notExist.Any())
            {
                throw new KnownException($"Id:{string.Join(",", notExist)} 的权限不存在!", ServiceResultCode.NotFound, 200);
            }
            var rolePers = await _rolePermissionRepo.Select.Where(rp => rp.RoleId == dto.RoleId).ToListAsync();

            //需要清除的权限
            var deletePers = rolePers.Where(r => !distinctPers.Any(p => p == r.PermissionId)).ToList();
            //需要新增的权限
            var addPers = distinctPers.Where(p => !rolePers.Any(r => r.PermissionId == p)).Select(p => new RolePermissionEntity
            {
                RoleId       = dto.RoleId,
                PermissionId = p
            }).ToList();

            if (deletePers.Count > 0)
            {
                await _rolePermissionRepo.DeleteAsync(deletePers);
            }
            if (addPers.Count > 0)
            {
                await _rolePermissionRepo.InsertAsync(addPers);
            }

            return(true);
        }
Пример #3
0
        public async Task DispatchPermissions(DispatchPermissionsDto permissionDto, List <PermissionDefinition> permissionDefinitions)
        {
            List <LinGroupPermission> linPermissions = new List <LinGroupPermission>();

            permissionDto.PermissionIds.ForEach(permissionId =>
            {
                linPermissions.Add(new LinGroupPermission(permissionDto.GroupId, permissionId));
            });
            await _freeSql.Insert(linPermissions).ExecuteAffrowsAsync();
        }
        public async Task DispatchPermissions(DispatchPermissionsDto permissionDto, List <PermissionDefinition> permissionDefinitions)
        {
            List <LinGroupPermission> linPermissions = new List <LinGroupPermission>();

            permissionDto.PermissionIds.ForEach(permissionId =>
            {
                linPermissions.Add(new LinGroupPermission(permissionDto.GroupId, permissionId));
            });
            await _groupPermissionRepository.InsertAsync(linPermissions);
        }
Пример #5
0
        public async Task <ServiceResult> DispatchPermissions([FromBody] DispatchPermissionsDto dto)
        {
            await _permissionService.DispatchPermissionsAsync(dto);

            return(ServiceResult.Successed("配置角色权限成功"));
        }