diff options
author | Unknwon <u@gogs.io> | 2016-03-04 15:43:01 -0500 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2016-03-04 15:43:01 -0500 |
commit | 2d2d85bba4dd5131e72db533c31aab423f86232e (patch) | |
tree | e53c3c263021efc846dee43249651142a49e76f3 /models | |
parent | 9df6ce48c538e0458b6798f0819db8afce43e5c7 (diff) | |
download | gitea-2d2d85bba4dd5131e72db533c31aab423f86232e.tar.gz gitea-2d2d85bba4dd5131e72db533c31aab423f86232e.zip |
#1597 support pull requests in same repository
Diffstat (limited to 'models')
-rw-r--r-- | models/pull.go | 2 | ||||
-rw-r--r-- | models/repo.go | 5 | ||||
-rw-r--r-- | models/user.go | 17 |
3 files changed, 16 insertions, 8 deletions
diff --git a/models/pull.go b/models/pull.go index 276dc1bcfd..77484b9562 100644 --- a/models/pull.go +++ b/models/pull.go @@ -487,7 +487,7 @@ func (pr *PullRequest) UpdatePatch() (err error) { // FIXME: could fail after user force push head repo, should we always force push here? // FIXME: Only push branches that are actually updates? func (pr *PullRequest) PushToBaseRepo() (err error) { - log.Trace("PushToBaseRepo[%[1]d]: pushing commits to base repo 'refs/pull/%[1]d/head'", pr.ID) + log.Trace("PushToBaseRepo[%d]: pushing commits to base repo 'refs/pull/%d/head'", pr.BaseRepoID, pr.Index) headRepoPath := pr.HeadRepo.RepoPath() headGitRepo, err := git.OpenRepository(headRepoPath) diff --git a/models/repo.go b/models/repo.go index 17c0082cbd..3f631b6984 100644 --- a/models/repo.go +++ b/models/repo.go @@ -184,6 +184,11 @@ type Repository struct { func (repo *Repository) AfterSet(colName string, _ xorm.Cell) { switch colName { + case "default_branch": + // FIXME: use models migration to solve all at once. + if len(repo.DefaultBranch) == 0 { + repo.DefaultBranch = "master" + } case "num_closed_issues": repo.NumOpenIssues = repo.NumIssues - repo.NumClosedIssues case "num_closed_pulls": diff --git a/models/user.go b/models/user.go index 3264c0634b..6e7c27293d 100644 --- a/models/user.go +++ b/models/user.go @@ -348,16 +348,10 @@ func (u *User) UploadAvatar(data []byte) error { // IsAdminOfRepo returns true if user has admin or higher access of repository. func (u *User) IsAdminOfRepo(repo *Repository) bool { - if err := repo.GetOwner(); err != nil { - log.Error(3, "GetOwner: %v", err) - return false - } - - if repo.Owner.IsOrganization() { + if repo.MustOwner().IsOrganization() { has, err := HasAccess(u, repo, ACCESS_MODE_ADMIN) if err != nil { log.Error(3, "HasAccess: %v", err) - return false } return has } @@ -365,6 +359,15 @@ func (u *User) IsAdminOfRepo(repo *Repository) bool { return repo.IsOwnedBy(u.Id) } +// CanWriteTo returns true if user has write access to given repository. +func (u *User) CanWriteTo(repo *Repository) bool { + has, err := HasAccess(u, repo, ACCESS_MODE_WRITE) + if err != nil { + log.Error(3, "HasAccess: %v", err) + } + return has +} + // IsOrganization returns true if user is actually a organization. func (u *User) IsOrganization() bool { return u.Type == ORGANIZATION |