diff options
author | Unknwon <u@gogs.io> | 2015-08-14 02:43:40 +0800 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2015-08-14 02:43:40 +0800 |
commit | 817b48ed1e083b5291afd339bda573cba14bba8d (patch) | |
tree | 52a38a2c63c49afb45d45ac3fc06b3c730aa9cca /models/user.go | |
parent | 1fb53067f478414302096d5d976a3db85df9e2eb (diff) | |
download | gitea-817b48ed1e083b5291afd339bda573cba14bba8d.tar.gz gitea-817b48ed1e083b5291afd339bda573cba14bba8d.zip |
Show owner/poster tags of comments and fix #1312
Diffstat (limited to 'models/user.go')
-rw-r--r-- | models/user.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/models/user.go b/models/user.go index a58bb634d9..f2151a7080 100644 --- a/models/user.go +++ b/models/user.go @@ -222,6 +222,25 @@ func (u *User) UploadAvatar(data []byte) error { return sess.Commit() } +// 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() { + has, err := HasAccess(u, repo, ACCESS_MODE_ADMIN) + if err != nil { + log.Error(3, "HasAccess: %v", err) + return false + } + return has + } + + return repo.IsOwnedBy(u.Id) +} + // IsOrganization returns true if user is actually a organization. func (u *User) IsOrganization() bool { return u.Type == ORGANIZATION |