allow in a patch update to change the build number if the user is an admin

This commit is contained in:
Joachim Hill-Grannec 2017-08-12 17:01:10 -07:00
parent c8313f8cd8
commit a848f3e793
2 changed files with 14 additions and 10 deletions

View file

@ -57,13 +57,14 @@ func (r *Repo) Update(from *Repo) {
// RepoPatch represents a repository patch object.
type RepoPatch struct {
Config *string `json:"config_file,omitempty"`
IsTrusted *bool `json:"trusted,omitempty"`
IsGated *bool `json:"gated,omitempty"`
Timeout *int64 `json:"timeout,omitempty"`
Visibility *string `json:"visibility,omitempty"`
AllowPull *bool `json:"allow_pr,omitempty"`
AllowPush *bool `json:"allow_push,omitempty"`
AllowDeploy *bool `json:"allow_deploy,omitempty"`
AllowTag *bool `json:"allow_tag,omitempty"`
Config *string `json:"config_file,omitempty"`
IsTrusted *bool `json:"trusted,omitempty"`
IsGated *bool `json:"gated,omitempty"`
Timeout *int64 `json:"timeout,omitempty"`
Visibility *string `json:"visibility,omitempty"`
AllowPull *bool `json:"allow_pr,omitempty"`
AllowPush *bool `json:"allow_push,omitempty"`
AllowDeploy *bool `json:"allow_deploy,omitempty"`
AllowTag *bool `json:"allow_tag,omitempty"`
BuildCounter *int `json:"build_counter,omitempty"`
}

View file

@ -95,7 +95,7 @@ func PatchRepo(c *gin.Context) {
return
}
if (in.IsTrusted != nil || in.Timeout != nil) && !user.Admin {
if (in.IsTrusted != nil || in.Timeout != nil || in.BuildCounter != nil) && !user.Admin {
c.String(403, "Insufficient privileges")
return
}
@ -133,6 +133,9 @@ func PatchRepo(c *gin.Context) {
return
}
}
if in.BuildCounter != nil {
repo.Counter = *in.BuildCounter
}
err := store.UpdateRepo(c, repo)
if err != nil {