summaryrefslogtreecommitdiff
path: root/app/models/group_group_link.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/group_group_link.rb')
-rw-r--r--app/models/group_group_link.rb23
1 files changed, 23 insertions, 0 deletions
diff --git a/app/models/group_group_link.rb b/app/models/group_group_link.rb
new file mode 100644
index 00000000000..4b279b7af5b
--- /dev/null
+++ b/app/models/group_group_link.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class GroupGroupLink < ApplicationRecord
+ include Expirable
+
+ belongs_to :shared_group, class_name: 'Group', foreign_key: :shared_group_id
+ belongs_to :shared_with_group, class_name: 'Group', foreign_key: :shared_with_group_id
+
+ validates :shared_group, presence: true
+ validates :shared_group_id, uniqueness: { scope: [:shared_with_group_id],
+ message: _('The group has already been shared with this group') }
+ validates :shared_with_group, presence: true
+ validates :group_access, inclusion: { in: Gitlab::Access.values },
+ presence: true
+
+ def self.access_options
+ Gitlab::Access.options
+ end
+
+ def self.default_access
+ Gitlab::Access::DEVELOPER
+ end
+end