summaryrefslogtreecommitdiff
path: root/app/models/fork_network.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/fork_network.rb')
-rw-r--r--app/models/fork_network.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/app/models/fork_network.rb b/app/models/fork_network.rb
new file mode 100644
index 00000000000..218e37a5312
--- /dev/null
+++ b/app/models/fork_network.rb
@@ -0,0 +1,15 @@
+class ForkNetwork < ActiveRecord::Base
+ belongs_to :root_project, class_name: 'Project'
+ has_many :fork_network_members
+ has_many :projects, through: :fork_network_members
+
+ after_create :add_root_as_member, if: :root_project
+
+ def add_root_as_member
+ projects << root_project
+ end
+
+ def find_forks_in(other_projects)
+ projects.where(id: other_projects)
+ end
+end