aboutsummaryrefslogtreecommitdiff
path: root/models/user.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/user.go')
-rw-r--r--models/user.go17
1 files changed, 10 insertions, 7 deletions
diff --git a/models/user.go b/models/user.go
index 3264c063..6e7c2729 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