aboutsummaryrefslogtreecommitdiffstats
path: root/modules/repository/fork.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/repository/fork.go')
-rw-r--r--modules/repository/fork.go10
1 files changed, 9 insertions, 1 deletions
diff --git a/modules/repository/fork.go b/modules/repository/fork.go
index fbf0008716..d530634071 100644
--- a/modules/repository/fork.go
+++ b/modules/repository/fork.go
@@ -9,14 +9,22 @@ import (
"code.gitea.io/gitea/models/organization"
repo_model "code.gitea.io/gitea/models/repo"
user_model "code.gitea.io/gitea/models/user"
+ "code.gitea.io/gitea/modules/setting"
)
+func CanUserForkBetweenOwners(id1, id2 int64) bool {
+ if id1 != id2 {
+ return true
+ }
+ return setting.Repository.AllowForkIntoSameOwner
+}
+
// CanUserForkRepo returns true if specified user can fork repository.
func CanUserForkRepo(ctx context.Context, user *user_model.User, repo *repo_model.Repository) (bool, error) {
if user == nil {
return false, nil
}
- if repo.OwnerID != user.ID && !repo_model.HasForkedRepo(ctx, user.ID, repo.ID) {
+ if CanUserForkBetweenOwners(repo.OwnerID, user.ID) && !repo_model.HasForkedRepo(ctx, user.ID, repo.ID) {
return true, nil
}
ownedOrgs, err := organization.GetOrgsCanCreateRepoByUserID(ctx, user.ID)