summaryrefslogtreecommitdiffstats
path: root/services/pull/update.go
diff options
context:
space:
mode:
Diffstat (limited to 'services/pull/update.go')
-rw-r--r--services/pull/update.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/services/pull/update.go b/services/pull/update.go
index 899bee1f19..2d845e8504 100644
--- a/services/pull/update.go
+++ b/services/pull/update.go
@@ -111,11 +111,25 @@ func IsUserAllowedToUpdate(ctx context.Context, pull *models.PullRequest, user *
return false, false, nil
}
+ baseRepoPerm, err := models.GetUserRepoPermission(ctx, pull.BaseRepo, user)
+ if err != nil {
+ return false, false, err
+ }
+
mergeAllowed, err = IsUserAllowedToMerge(pr, headRepoPerm, user)
if err != nil {
return false, false, err
}
+ if pull.AllowMaintainerEdit {
+ mergeAllowedMaintainer, err := IsUserAllowedToMerge(pr, baseRepoPerm, user)
+ if err != nil {
+ return false, false, err
+ }
+
+ mergeAllowed = mergeAllowed || mergeAllowedMaintainer
+ }
+
return mergeAllowed, rebaseAllowed, nil
}