123456789101112131415161718192021222324252627282930313233 |
- // Copyright 2022 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package repository
-
- import (
- "context"
-
- "code.gitea.io/gitea/models/organization"
- repo_model "code.gitea.io/gitea/models/repo"
- user_model "code.gitea.io/gitea/models/user"
- )
-
- // CanUserDelete returns true if user could delete the repository
- func CanUserDelete(ctx context.Context, repo *repo_model.Repository, user *user_model.User) (bool, error) {
- if user.IsAdmin || user.ID == repo.OwnerID {
- return true, nil
- }
-
- if err := repo.LoadOwner(ctx); err != nil {
- return false, err
- }
-
- if repo.Owner.IsOrganization() {
- isAdmin, err := organization.OrgFromUser(repo.Owner).IsOrgAdmin(user.ID)
- if err != nil {
- return false, err
- }
- return isAdmin, nil
- }
-
- return false, nil
- }
|