mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: Implement new required options in admin user fields UI (#27079)
We're planning to implement a feature that allows adding required fields for existing users. This PR does some preparatory refactoring to make that possible. There should be no changes to existing behaviour. Just a small update to the admin UI.
This commit is contained in:
@@ -2,8 +2,11 @@
|
||||
|
||||
class UserField < ActiveRecord::Base
|
||||
include AnonCacheInvalidator
|
||||
include HasDeprecatedColumns
|
||||
include HasSanitizableFields
|
||||
|
||||
deprecate_column :required, drop_from: "3.3"
|
||||
|
||||
validates_presence_of :description, :field_type
|
||||
validates_presence_of :name, unless: -> { field_type == "confirm" }
|
||||
has_many :user_field_options, dependent: :destroy
|
||||
@@ -15,10 +18,16 @@ class UserField < ActiveRecord::Base
|
||||
|
||||
scope :public_fields, -> { where(show_on_profile: true).or(where(show_on_user_card: true)) }
|
||||
|
||||
enum :requirement, { optional: 0, for_all_users: 1, on_signup: 2 }.freeze
|
||||
|
||||
def self.max_length
|
||||
2048
|
||||
end
|
||||
|
||||
def required?
|
||||
!optional?
|
||||
end
|
||||
|
||||
def queue_index_search
|
||||
Jobs.enqueue(:index_user_fields_for_search, user_field_id: self.id)
|
||||
end
|
||||
@@ -50,4 +59,5 @@ end
|
||||
# external_name :string
|
||||
# external_type :string
|
||||
# searchable :boolean default(FALSE), not null
|
||||
# requirement :integer default("optional"), not null
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user