Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/organizations')
-rw-r--r--app/models/organizations/organization.rb8
-rw-r--r--app/models/organizations/organization_setting.rb20
-rw-r--r--app/models/organizations/organization_user.rb8
3 files changed, 36 insertions, 0 deletions
diff --git a/app/models/organizations/organization.rb b/app/models/organizations/organization.rb
index ce89f57a73b..8aeca2eb137 100644
--- a/app/models/organizations/organization.rb
+++ b/app/models/organizations/organization.rb
@@ -8,6 +8,14 @@ module Organizations
before_destroy :check_if_default_organization
+ has_many :namespaces
+ has_many :groups
+
+ has_one :settings, class_name: "OrganizationSetting"
+
+ has_many :organization_users, inverse_of: :organization
+ has_many :users, through: :organization_users, inverse_of: :organizations
+
validates :name,
presence: true,
length: { maximum: 255 }
diff --git a/app/models/organizations/organization_setting.rb b/app/models/organizations/organization_setting.rb
new file mode 100644
index 00000000000..108531e6701
--- /dev/null
+++ b/app/models/organizations/organization_setting.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+module Organizations
+ class OrganizationSetting < ApplicationRecord
+ belongs_to :organization
+
+ validates :settings, json_schema: { filename: "organization_settings" }
+
+ jsonb_accessor :settings,
+ restricted_visibility_levels: [:integer, { array: true }]
+
+ validates_each :restricted_visibility_levels do |record, attr, value|
+ value&.each do |level|
+ unless Gitlab::VisibilityLevel.options.value?(level)
+ record.errors.add(attr, format(_("'%{level}' is not a valid visibility level"), level: level))
+ end
+ end
+ end
+ end
+end
diff --git a/app/models/organizations/organization_user.rb b/app/models/organizations/organization_user.rb
new file mode 100644
index 00000000000..5aa1133b017
--- /dev/null
+++ b/app/models/organizations/organization_user.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+module Organizations
+ class OrganizationUser < ApplicationRecord
+ belongs_to :organization, inverse_of: :organization_users, optional: false
+ belongs_to :user, inverse_of: :organization_users, optional: false
+ end
+end