From 33ec0632ffd9e770793eba57393f27385d5f392d Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 13 May 2014 19:26:13 -0400 Subject: [PATCH] Fix #183 --- modules/middleware/repo.go | 5 +++++ routers/repo/setting.go | 3 +++ routers/user/home.go | 3 +-- templates/repo/setting.tmpl | 3 +++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go index bfb1e69da86c..cd4353912245 100644 --- a/modules/middleware/repo.go +++ b/modules/middleware/repo.go @@ -99,6 +99,11 @@ func RepoAssignment(redirect bool, args ...bool) martini.Handler { return } + // Check if the mirror repository owner(mirror repository doesn't have access). + if !ctx.Repo.IsOwner && repo.OwnerId == ctx.User.Id { + ctx.Repo.IsOwner = true + } + // Check access. if repo.IsPrivate && !ctx.Repo.IsOwner { if ctx.User == nil { diff --git a/routers/repo/setting.go b/routers/repo/setting.go index 89c7cb486e6a..fa4973ecd6e9 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -83,6 +83,9 @@ func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) { if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") { ctx.RenderWithErr("Please make sure you entered repository name is correct.", "repo/setting", nil) return + } else if ctx.Repo.Repository.IsMirror { + ctx.Error(404) + return } newOwner := ctx.Query("owner") diff --git a/routers/user/home.go b/routers/user/home.go index b19f3ff4aca7..a7a36b4bd70d 100644 --- a/routers/user/home.go +++ b/routers/user/home.go @@ -235,8 +235,7 @@ func Issues(ctx *middleware.Context) { return } - err = issues[i].Repo.GetOwner() - if err != nil { + if err = issues[i].Repo.GetOwner(); err != nil { ctx.Handle(500, "user.Issues(GetOwner)", err) return } diff --git a/templates/repo/setting.tmpl b/templates/repo/setting.tmpl index f0f041dee897..99835640fcc3 100644 --- a/templates/repo/setting.tmpl +++ b/templates/repo/setting.tmpl @@ -88,6 +88,7 @@ Danger Zone + {{if not .Repository.IsMirror}}
+ {{end}} +