diff options
author | SagePtr <sageptr@gmail.com> | 2018-08-08 10:19:13 +0200 |
---|---|---|
committer | Lauris BH <lauris@nix.lv> | 2018-08-08 11:19:13 +0300 |
commit | 15a403bf976dee832edacd8b7b65a8f808df427c (patch) | |
tree | bcd9aff287756baa02fb07e4ac885fb6ae4bef64 | |
parent | 099028681ea6d0345af7bf1d80feb02041f1f4cc (diff) | |
download | gitea-15a403bf976dee832edacd8b7b65a8f808df427c.tar.gz gitea-15a403bf976dee832edacd8b7b65a8f808df427c.zip |
Push whitelist now doesn't apply to branch deletion (#4601) (#4640)
-rw-r--r-- | models/branches.go | 18 | ||||
-rw-r--r-- | modules/context/repo.go | 4 |
2 files changed, 20 insertions, 2 deletions
diff --git a/models/branches.go b/models/branches.go index ade5de8e0e..3de76a5cc1 100644 --- a/models/branches.go +++ b/models/branches.go @@ -184,6 +184,24 @@ func (repo *Repository) IsProtectedBranch(branchName string, doer *User) (bool, BranchName: branchName, } + has, err := x.Exist(protectedBranch) + if err != nil { + return true, err + } + return has, nil +} + +// IsProtectedBranchForPush checks if branch is protected for push +func (repo *Repository) IsProtectedBranchForPush(branchName string, doer *User) (bool, error) { + if doer == nil { + return true, nil + } + + protectedBranch := &ProtectedBranch{ + RepoID: repo.ID, + BranchName: branchName, + } + has, err := x.Get(protectedBranch) if err != nil { return true, err diff --git a/modules/context/repo.go b/modules/context/repo.go index 1fe5482ce1..9d4ee050c8 100644 --- a/modules/context/repo.go +++ b/modules/context/repo.go @@ -85,9 +85,9 @@ func (r *Repository) CanCreateBranch() bool { } // CanCommitToBranch returns true if repository is editable and user has proper access level -// and branch is not protected +// and branch is not protected for push func (r *Repository) CanCommitToBranch(doer *models.User) (bool, error) { - protectedBranch, err := r.Repository.IsProtectedBranch(r.BranchName, doer) + protectedBranch, err := r.Repository.IsProtectedBranchForPush(r.BranchName, doer) if err != nil { return false, err } |