diff --git a/app/controllers/api/v1/widget/base_controller.rb b/app/controllers/api/v1/widget/base_controller.rb index 45cf3fc4f7777..4aa2ec1383230 100644 --- a/app/controllers/api/v1/widget/base_controller.rb +++ b/app/controllers/api/v1/widget/base_controller.rb @@ -30,4 +30,14 @@ def set_contact ) @contact = @contact_inbox.contact end + + def browser_params + { + browser_name: browser.name, + browser_version: browser.full_version, + device_name: browser.device.name, + platform_name: browser.platform.name, + platform_version: browser.platform.version + } + end end diff --git a/app/controllers/api/v1/widget/events_controller.rb b/app/controllers/api/v1/widget/events_controller.rb index ea5326d6fbe3b..374541a101cb8 100644 --- a/app/controllers/api/v1/widget/events_controller.rb +++ b/app/controllers/api/v1/widget/events_controller.rb @@ -11,7 +11,8 @@ def create def event_info { widget_language: params[:locale], - browser_language: browser.accept_language.first&.code + browser_language: browser.accept_language.first&.code, + browser: browser_params } end diff --git a/app/controllers/api/v1/widget/messages_controller.rb b/app/controllers/api/v1/widget/messages_controller.rb index 42cd313e2905b..afc0d71b22f9f 100644 --- a/app/controllers/api/v1/widget/messages_controller.rb +++ b/app/controllers/api/v1/widget/messages_controller.rb @@ -66,16 +66,6 @@ def conversation_params } end - def browser_params - { - browser_name: browser.name, - browser_version: browser.full_version, - device_name: browser.device.name, - platform_name: browser.platform.name, - platform_version: browser.platform.version - } - end - def timestamp_params { timestamp: permitted_params[:message][:timestamp] diff --git a/app/dashboards/user_dashboard.rb b/app/dashboards/user_dashboard.rb index 8ed132c619aaf..f34f48257b38a 100644 --- a/app/dashboards/user_dashboard.rb +++ b/app/dashboards/user_dashboard.rb @@ -24,7 +24,7 @@ class UserDashboard < Administrate::BaseDashboard confirmation_sent_at: Field::DateTime, unconfirmed_email: Field::String, name: Field::String, - nickname: Field::String, + display_name: Field::String, email: Field::String, tokens: Field::String.with_options(searchable: false), created_at: Field::DateTime, @@ -53,7 +53,7 @@ class UserDashboard < Administrate::BaseDashboard avatar_url unconfirmed_email name - nickname + display_name email created_at updated_at @@ -65,7 +65,7 @@ class UserDashboard < Administrate::BaseDashboard # on the model's form (`new` and `edit`) pages. FORM_ATTRIBUTES = %i[ name - nickname + display_name email password ].freeze diff --git a/app/models/user.rb b/app/models/user.rb index 6a1c53eed0439..577fba7b4d9bb 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -9,12 +9,12 @@ # confirmed_at :datetime # current_sign_in_at :datetime # current_sign_in_ip :string +# display_name :string # email :string # encrypted_password :string default(""), not null # last_sign_in_at :datetime # last_sign_in_ip :string # name :string not null -# nickname :string # provider :string default("email"), not null # pubsub_token :string # remember_created_at :datetime @@ -96,6 +96,10 @@ def current_account_user account_users.find_by(account_id: Current.account.id) if Current.account end + def display_name + self[:display_name].presence || name + end + def account current_account_user&.account end diff --git a/app/views/api/v1/models/_user.json.jbuilder b/app/views/api/v1/models/_user.json.jbuilder index 3efb6470b2e3e..6caf4d4bb7f37 100644 --- a/app/views/api/v1/models/_user.json.jbuilder +++ b/app/views/api/v1/models/_user.json.jbuilder @@ -2,7 +2,7 @@ json.id resource.id json.provider resource.provider json.uid resource.uid json.name resource.name -json.nickname resource.nickname +json.display_name resource.display_name json.email resource.email json.account_id resource.active_account_user&.account_id json.pubsub_token resource.pubsub_token diff --git a/db/migrate/20200719171437_rename_nick_name_to_display_name.rb b/db/migrate/20200719171437_rename_nick_name_to_display_name.rb new file mode 100644 index 0000000000000..35a53a3c1a879 --- /dev/null +++ b/db/migrate/20200719171437_rename_nick_name_to_display_name.rb @@ -0,0 +1,5 @@ +class RenameNickNameToDisplayName < ActiveRecord::Migration[6.0] + def change + rename_column :users, :nickname, :display_name + end +end diff --git a/db/schema.rb b/db/schema.rb index b5f354e5de2df..c28dc946ce052 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_07_09_145000) do +ActiveRecord::Schema.define(version: 2020_07_19_171437) do # These are extensions that must be enabled in order to support this database enable_extension "pg_stat_statements" @@ -407,7 +407,7 @@ t.datetime "confirmation_sent_at" t.string "unconfirmed_email" t.string "name", null: false - t.string "nickname" + t.string "display_name" t.string "email" t.json "tokens" t.datetime "created_at", null: false diff --git a/docs/deployment/production/linux-vm.md b/docs/deployment/production/linux-vm.md index 79e940074bbde..3ae5da258b84e 100644 --- a/docs/deployment/production/linux-vm.md +++ b/docs/deployment/production/linux-vm.md @@ -32,6 +32,7 @@ server { server_name yourdomain.com; # where rails app is running set $upstream 127.0.0.1:3000; + underscores_in_headers on; # Here we define the web-root for our SSL proof location /.well-known { diff --git a/spec/controllers/api/v1/widget/events_controller_spec.rb b/spec/controllers/api/v1/widget/events_controller_spec.rb index a1b8e4af95611..e2c45ab6e9ad9 100644 --- a/spec/controllers/api/v1/widget/events_controller_spec.rb +++ b/spec/controllers/api/v1/widget/events_controller_spec.rb @@ -32,7 +32,7 @@ expect(response).to have_http_status(:success) expect(Rails.configuration.dispatcher).to have_received(:dispatch) .with(params[:name], anything, contact_inbox: contact_inbox, - event_info: { browser_language: nil, widget_language: nil }) + event_info: { browser_language: nil, widget_language: nil, browser: anything }) end end end diff --git a/spec/factories/users.rb b/spec/factories/users.rb index 5112a8a51dbdd..bbe1e6acd5bf6 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -12,8 +12,8 @@ provider { 'email' } uid { SecureRandom.uuid } name { Faker::Name.name } - nickname { Faker::Name.first_name } - email { nickname + "@#{SecureRandom.uuid}.com" } + display_name { Faker::Name.first_name } + email { display_name + "@#{SecureRandom.uuid}.com" } password { 'password' } after(:build) do |user, evaluator| diff --git a/swagger/definitions/resource/user.yml b/swagger/definitions/resource/user.yml index 049e2478ea7af..ecdcbe30a5e6b 100644 --- a/swagger/definitions/resource/user.yml +++ b/swagger/definitions/resource/user.yml @@ -15,5 +15,5 @@ properties: enum: ['agent', 'administrator'] confirmed: type: boolean - nickname: + display_name: type: string diff --git a/swagger/swagger.json b/swagger/swagger.json index 2ac8cc1f2b3a5..9fc9a31df9a34 100644 --- a/swagger/swagger.json +++ b/swagger/swagger.json @@ -1087,7 +1087,7 @@ "confirmed": { "type": "boolean" }, - "nickname": { + "display_name": { "type": "string" } }