Merge pull request #4444 from ywk253100/180320_project

Return role and repository count info in GET project API
This commit is contained in:
Daniel Jiang 2018-03-21 10:24:34 +08:00 committed by GitHub
commit da41a1c1d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -199,6 +199,8 @@ func (p *ProjectAPI) Get() {
}
}
p.populateProperties(p.project)
p.Data["json"] = p.project
p.ServeJSON()
}
@ -372,25 +374,7 @@ func (p *ProjectAPI) List() {
}
for _, project := range result.Projects {
if p.SecurityCtx.IsAuthenticated() {
roles := p.SecurityCtx.GetProjectRoles(project.ProjectID)
if len(roles) != 0 {
project.Role = roles[0]
}
if project.Role == common.RoleProjectAdmin ||
p.SecurityCtx.IsSysAdmin() {
project.Togglable = true
}
}
repos, err := dao.GetRepositoryByProjectName(project.Name)
if err != nil {
log.Errorf("failed to get repositories of project %s: %v", project.Name, err)
p.CustomAbort(http.StatusInternalServerError, "")
}
project.RepoCount = len(repos)
p.populateProperties(project)
}
p.SetPaginationHeader(result.Total, page, size)
@ -398,6 +382,28 @@ func (p *ProjectAPI) List() {
p.ServeJSON()
}
func (p *ProjectAPI) populateProperties(project *models.Project) {
if p.SecurityCtx.IsAuthenticated() {
roles := p.SecurityCtx.GetProjectRoles(project.ProjectID)
if len(roles) != 0 {
project.Role = roles[0]
}
if project.Role == common.RoleProjectAdmin ||
p.SecurityCtx.IsSysAdmin() {
project.Togglable = true
}
}
repos, err := dao.GetRepositoryByProjectName(project.Name)
if err != nil {
log.Errorf("failed to get repositories of project %s: %v", project.Name, err)
p.CustomAbort(http.StatusInternalServerError, "")
}
project.RepoCount = len(repos)
}
// Put ...
func (p *ProjectAPI) Put() {
if !p.SecurityCtx.IsAuthenticated() {