diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-06-19 16:33:28 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-06-19 16:33:28 +0000 |
commit | 757c537fbc12b3f4fe3e4a98455de1ba9e5067f9 (patch) | |
tree | 1453801777573e3e6efd15cfb79a73c2bf8c9508 /app/models | |
parent | dbfafd442ee863e6614d0f6765285fcd06f3d843 (diff) | |
parent | 4449f57ea627aa92e7f011a488c11285465057d2 (diff) | |
download | gitlab-ce-757c537fbc12b3f4fe3e4a98455de1ba9e5067f9.tar.gz |
Merge branch '30725-reset-user-limits-when-unchecking-external-user' into 'master'
Ensures default user limits when external user is unchecked
Closes #30725
See merge request !12218
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/user.rb | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 5d128e4b390..782c162e1f3 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -139,21 +139,21 @@ class User < ActiveRecord::Base presence: true, uniqueness: { case_sensitive: false } - validate :namespace_uniq, if: ->(user) { user.username_changed? } + validate :namespace_uniq, if: :username_changed? validate :avatar_type, if: ->(user) { user.avatar.present? && user.avatar_changed? } - validate :unique_email, if: ->(user) { user.email_changed? } - validate :owns_notification_email, if: ->(user) { user.notification_email_changed? } - validate :owns_public_email, if: ->(user) { user.public_email_changed? } + validate :unique_email, if: :email_changed? + validate :owns_notification_email, if: :notification_email_changed? + validate :owns_public_email, if: :public_email_changed? validate :signup_domain_valid?, on: :create, if: ->(user) { !user.created_by_id } validates :avatar, file_size: { maximum: 200.kilobytes.to_i } before_validation :sanitize_attrs - before_validation :set_notification_email, if: ->(user) { user.email_changed? } - before_validation :set_public_email, if: ->(user) { user.public_email_changed? } + before_validation :set_notification_email, if: :email_changed? + before_validation :set_public_email, if: :public_email_changed? - after_update :update_emails_with_primary_email, if: ->(user) { user.email_changed? } + after_update :update_emails_with_primary_email, if: :email_changed? before_save :ensure_authentication_token, :ensure_incoming_email_token - before_save :ensure_external_user_rights + before_save :ensure_user_rights_and_limits, if: :external_changed? after_save :ensure_namespace_correct after_initialize :set_projects_limit after_destroy :post_destroy_hook @@ -1033,11 +1033,14 @@ class User < ActiveRecord::Base super end - def ensure_external_user_rights - return unless external? - - self.can_create_group = false - self.projects_limit = 0 + def ensure_user_rights_and_limits + if external? + self.can_create_group = false + self.projects_limit = 0 + else + self.can_create_group = gitlab_config.default_can_create_group + self.projects_limit = current_application_settings.default_projects_limit + end end def signup_domain_valid? |