|
@@ -166,11 +166,11 @@ func RepoAssignment(pages ...bool) macaron.Handler {
|
|
|
c.Data["RepoLink"] = c.Repo.RepoLink
|
|
|
c.Data["RepoRelPath"] = c.Repo.Owner.Name + "/" + c.Repo.Repository.Name
|
|
|
|
|
|
-
|
|
|
+
|
|
|
if c.IsLogged && c.User.IsAdmin {
|
|
|
c.Repo.AccessMode = db.AccessModeOwner
|
|
|
} else {
|
|
|
- mode, err := db.UserAccessMode(c.UserID(), repo)
|
|
|
+ mode, err := db.UserAccessMode(c.UserID(), c.Repo.Repository)
|
|
|
if err != nil {
|
|
|
c.Error(err, "get user access mode")
|
|
|
return
|
|
@@ -178,6 +178,21 @@ func RepoAssignment(pages ...bool) macaron.Handler {
|
|
|
c.Repo.AccessMode = mode
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ if c.Repo.AccessMode == db.AccessModeNone && c.Repo.Repository.IsFork {
|
|
|
+ mode, err := db.UserAccessMode(c.UserID(), c.Repo.Repository.BaseRepo)
|
|
|
+ if err != nil {
|
|
|
+ c.Error(err, "get user access mode of base repository")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if mode > db.AccessModeWrite {
|
|
|
+ mode = db.AccessModeWrite
|
|
|
+ }
|
|
|
+ c.Repo.AccessMode = mode
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
if c.Repo.AccessMode == db.AccessModeNone {
|
|
|
|