Browse Source

Hide private properties in application layer

pull/11773/head
Yunus Emre Kalkan 5 years ago
parent
commit
07a8b89adc
  1. 26
      modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs
  2. 21
      modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs

26
modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs

@ -35,16 +35,22 @@ namespace Volo.Docs.Projects
{
var projects = await _projectRepository.GetListAsync();
return new ListResultDto<ProjectDto>(
var projectDtos = new List<ProjectDto>(
ObjectMapper.Map<List<Project>, List<ProjectDto>>(projects)
);
return new ListResultDto<ProjectDto>(
projectDtos.Select(p => HidePrivateProperties(p)).ToList()
);
}
public async Task<ProjectDto> GetAsync(string shortName)
{
var project = await _projectRepository.GetByShortNameAsync(shortName);
return ObjectMapper.Map<Project, ProjectDto>(project);
var projectDto = ObjectMapper.Map<Project, ProjectDto>(project);
return HidePrivateProperties(projectDto);
}
public async Task<ListResultDto<VersionInfoDto>> GetVersionsAsync(string shortName)
@ -140,5 +146,21 @@ namespace Volo.Docs.Projects
? (GithubVersionProviderSource) (long) project.ExtraProperties["GithubVersionProviderSource"]
: GithubVersionProviderSource.Releases;
}
private ProjectDto HidePrivateProperties(ProjectDto project)
{
if (project.ExtraProperties.ContainsKey("GitHubAccessToken"))
{
project.ExtraProperties["GitHubAccessToken"] = null;
}
if (project.ExtraProperties.ContainsKey("GitHubUserAgent"))
{
project.ExtraProperties["GitHubUserAgent"] = null;
}
return project;
}
}
}

21
modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Projects/DocsProjectController.cs

@ -1,6 +1,4 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp;
using Volo.Abp.Application.Dtos;
@ -24,25 +22,16 @@ namespace Volo.Docs.Projects
[HttpGet]
[Route("")]
public virtual async Task<ListResultDto<ProjectDto>> GetListAsync()
public virtual Task<ListResultDto<ProjectDto>> GetListAsync()
{
var projects = await ProjectAppService.GetListAsync();
projects.Items = projects.Items.Select(project =>
{
project.ExtraProperties = new Dictionary<string, object>();
return project;
}).ToList();
return projects;
return ProjectAppService.GetListAsync();
}
[HttpGet]
[Route("{shortName}")]
public virtual async Task<ProjectDto> GetAsync(string shortName)
public virtual Task<ProjectDto> GetAsync(string shortName)
{
var project = await ProjectAppService.GetAsync(shortName);
project.ExtraProperties = new Dictionary<string, object>();
return project;
return ProjectAppService.GetAsync(shortName);
}
[HttpGet]

Loading…
Cancel
Save