diff --git a/gogs.go b/gogs.go index af403e000..4e3cf117d 100644 --- a/gogs.go +++ b/gogs.go @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.7.18.1118 Beta" +const APP_VER = "0.7.18.1119 Beta" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/access.go b/models/access.go index 8a7729b73..5eef32819 100644 --- a/models/access.go +++ b/models/access.go @@ -36,19 +36,19 @@ func accessLevel(e Engine, u *User, repo *Repository) (AccessMode, error) { mode = ACCESS_MODE_READ } - if u != nil { - if u.Id == repo.OwnerID { - return ACCESS_MODE_OWNER, nil - } - - a := &Access{UserID: u.Id, RepoID: repo.ID} - if has, err := e.Get(a); !has || err != nil { - return mode, err - } - return a.Mode, nil + if u == nil { + return mode, nil } - return mode, nil + if u.Id == repo.OwnerID { + return ACCESS_MODE_OWNER, nil + } + + a := &Access{UserID: u.Id, RepoID: repo.ID} + if has, err := e.Get(a); !has || err != nil { + return mode, err + } + return a.Mode, nil } // AccessLevel returns the Access a user has to a repository. Will return NoneAccess if the diff --git a/modules/middleware/repo.go b/modules/middleware/repo.go index a78e079d8..7780fa5cd 100644 --- a/modules/middleware/repo.go +++ b/modules/middleware/repo.go @@ -275,7 +275,7 @@ func RepoAssignment(redirect bool, args ...bool) macaron.Handler { } // Admin has super access. - if ctx.User.IsAdmin { + if ctx.IsSigned && ctx.User.IsAdmin { ctx.Repo.AccessMode = models.ACCESS_MODE_OWNER } else { mode, err := models.AccessLevel(ctx.User, repo) diff --git a/templates/.VERSION b/templates/.VERSION index a2ed39f2d..aa65a45b5 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.7.18.1118 Beta \ No newline at end of file +0.7.18.1119 Beta \ No newline at end of file