aboutsummaryrefslogtreecommitdiffstats
path: root/services/repository/fork.go
diff options
context:
space:
mode:
Diffstat (limited to 'services/repository/fork.go')
-rw-r--r--services/repository/fork.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/services/repository/fork.go b/services/repository/fork.go
index f9c13a109e..f074fd1082 100644
--- a/services/repository/fork.go
+++ b/services/repository/fork.go
@@ -53,6 +53,14 @@ type ForkRepoOptions struct {
// ForkRepository forks a repository
func ForkRepository(ctx context.Context, doer, owner *user_model.User, opts ForkRepoOptions) (*repo_model.Repository, error) {
+ if err := opts.BaseRepo.LoadOwner(ctx); err != nil {
+ return nil, err
+ }
+
+ if user_model.IsUserBlockedBy(ctx, doer, opts.BaseRepo.Owner.ID) {
+ return nil, user_model.ErrBlockedUser
+ }
+
// Fork is prohibited, if user has reached maximum limit of repositories
if !owner.CanForkRepo() {
return nil, repo_model.ErrReachLimitOfRepo{