summaryrefslogtreecommitdiffstats
path: root/routers/private/branch.go
diff options
context:
space:
mode:
Diffstat (limited to 'routers/private/branch.go')
-rw-r--r--routers/private/branch.go24
1 files changed, 23 insertions, 1 deletions
diff --git a/routers/private/branch.go b/routers/private/branch.go
index 8e42f73039..448c61f1db 100644
--- a/routers/private/branch.go
+++ b/routers/private/branch.go
@@ -24,7 +24,29 @@ func GetProtectedBranchBy(ctx *macaron.Context) {
ctx.JSON(200, protectBranch)
} else {
ctx.JSON(200, &models.ProtectedBranch{
- CanPush: true,
+ ID: 0,
+ })
+ }
+}
+
+// CanUserPush returns if user push
+func CanUserPush(ctx *macaron.Context) {
+ pbID := ctx.ParamsInt64(":pbid")
+ userID := ctx.ParamsInt64(":userid")
+
+ protectBranch, err := models.GetProtectedBranchByID(pbID)
+ if err != nil {
+ ctx.JSON(500, map[string]interface{}{
+ "err": err.Error(),
+ })
+ return
+ } else if protectBranch != nil {
+ ctx.JSON(200, map[string]interface{}{
+ "can_push": protectBranch.CanUserPush(userID),
+ })
+ } else {
+ ctx.JSON(200, map[string]interface{}{
+ "can_push": false,
})
}
}