aboutsummaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
Diffstat (limited to 'models')
-rw-r--r--models/pull.go2
-rw-r--r--models/repo.go5
-rw-r--r--models/user.go17
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