File: group_callout.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (51 lines) | stat: -rw-r--r-- 2,087 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# frozen_string_literal: true

module Users
  class GroupCallout < ApplicationRecord
    include Users::Calloutable

    self.table_name = 'user_group_callouts'

    belongs_to :group

    enum feature_name: {
      invite_members_banner: 1,
      approaching_seat_count_threshold: 2, # EE-only
      namespace_storage_pre_enforcement_banner: 3, # EE-only
      # 4,5,6 were unused and removed with https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118330,
      # they can be replaced.
      preview_user_over_limit_free_plan_alert: 7, # EE-only
      user_reached_limit_free_plan_alert: 8, # EE-only
      free_group_limited_alert: 9, # EE-only
      # 10 removed in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121920
      namespace_storage_limit_alert_warning_threshold: 11, # EE-only
      namespace_storage_limit_alert_alert_threshold: 12, # EE-only
      namespace_storage_limit_alert_error_threshold: 13, # EE-only
      usage_quota_trial_alert: 14, # EE-only
      preview_usage_quota_free_plan_alert: 15, # EE-only
      enforcement_at_limit_alert: 16, # EE-only
      web_hook_disabled: 17, # EE-only
      unlimited_members_during_trial_alert: 18, # EE-only
      # 19 removed in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121920
      project_repository_limit_alert_warning_threshold: 20, # EE-only
      project_repository_limit_alert_alert_threshold: 21, # EE-only
      project_repository_limit_alert_error_threshold: 22, # EE-only
      namespace_over_storage_users_combined_alert: 23, # EE-only
      all_seats_used_alert: 24, # EE-only
      compliance_framework_settings_moved_callout: 25, # EE-only
      expired_duo_pro_trial_widget: 26, # EE-only
      expired_duo_enterprise_trial_widget: 27, # EE-only
      expired_trial_status_widget: 28 # EE-only
    }

    validates :group, presence: true
    validates :feature_name,
      presence: true,
      uniqueness: { scope: [:user_id, :group_id] },
      inclusion: { in: GroupCallout.feature_names.keys }

    def source_feature_name
      "#{feature_name}_#{group_id}"
    end
  end
end