diff --git a/app/views/direct_messages/new.html.erb b/app/views/direct_messages/new.html.erb
index 4c888ccd0..3413f26f0 100644
--- a/app/views/direct_messages/new.html.erb
+++ b/app/views/direct_messages/new.html.erb
@@ -3,11 +3,24 @@
<%= render 'shared/back_link' %>
- <%= t("users.direct_messages.new.title",
- receiver: @receiver.name) %>
+ <%= t("users.direct_messages.new.title", receiver: @receiver.name) %>
- <% if can? :create, @direct_message %>
+ <% if not current_user %>
+
+
+ <%= t("users.direct_messages.new.authenticate",
+ signin: link_to(t("users.direct_messages.new.signin"), new_user_session_path),
+ signup: link_to(t("users.direct_messages.new.signup"), new_user_registration_path)).html_safe %>
+
+
+ <% elsif not @receiver.email_on_direct_message? %>
+
+
+ <%= t("users.direct_messages.new.direct_messages_bloqued") %>
+
+
+ <% elsif can? :create, @direct_message %>
<%= form_for [@receiver, @direct_message] do |f| %>
<%= render "shared/errors", resource: @direct_message %>
diff --git a/config/locales/en.yml b/config/locales/en.yml
index e78f9c4d0..eb28cf18d 100755
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -504,11 +504,15 @@ en:
direct_messages:
new:
body_label: Message
+ direct_messages_bloqued: "This user has decided not to receive direct messages"
submit_button: Send message
title: Send private message to %{receiver}
title_label: Title
verified_only: To send a private message %{verify_account}
verify_account: verify your account
+ authenticate: You must %{signin} or %{signup} to continue.
+ signin: sign in
+ signup: sign up
show:
receiver: Message sent to %{receiver}
show:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 592bc9213..bf46a8258 100755
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -143,6 +143,7 @@ es:
accept_terms_title: Acepto la Política de privacidad y las Condiciones de uso
conditions: Condiciones de uso
debate: el debate
+ direct_message: el mensaje privado
error: error
errors: errores
not_saved: 'impidieron guardar %{resource}:'
@@ -504,11 +505,15 @@ es:
direct_messages:
new:
body_label: "Mensaje"
+ direct_messages_bloqued: "Este usuarios ha decidido no recibir mensajes directos"
submit_button: "Enviar mensaje"
title: Enviar mensaje privado a %{receiver}
title_label: "Título"
verified_only: Para enviar un mensaje privado %{verify_account}
verify_account: verifica tu cuenta
+ authenticate: Necesitas %{signin} o %{signup}.
+ signin: iniciar sesión
+ signup: registrarte
show:
receiver: Mensaje enviado a %{receiver}
show:
diff --git a/spec/features/direct_messages_spec.rb b/spec/features/direct_messages_spec.rb
index 76b7a150c..8ec949e9a 100644
--- a/spec/features/direct_messages_spec.rb
+++ b/spec/features/direct_messages_spec.rb
@@ -2,6 +2,10 @@ require 'rails_helper'
feature 'Direct messages' do
+ background do
+ Setting[:direct_message_max_per_day] = 3
+ end
+
scenario "Create" do
sender = create(:user, :level_two)
receiver = create(:user, :level_two)
@@ -44,19 +48,37 @@ feature 'Direct messages' do
expect(page).to_not have_link "Send private message"
end
- scenario "Accessing form directly" do
- user = create(:user)
- author = create(:user)
- proposal = create(:proposal, author: author)
+ scenario "Unverified user" do
+ sender = create(:user)
+ receiver = create(:user)
- login_as(user)
- visit new_proposal_notification_path(proposal_id: proposal.id)
+ login_as(sender)
+ visit new_user_direct_message_path(receiver)
- expect(current_path).to eq(proposals_path)
- expect(page).to have_content("You do not have permission to carry out the action")
+ expect(page).to have_content "To send a private message verify your account"
+ expect(page).to_not have_link "Send private message"
end
- pending "unverified user"
+ scenario "User not logged in" do
+ sender = create(:user)
+ receiver = create(:user)
+
+ visit new_user_direct_message_path(receiver)
+
+ expect(page).to have_content "You must sign in or sign up to continue."
+ expect(page).to_not have_link "Send private message"
+ end
+
+ scenario "Accessing form directly" do
+ sender = create(:user, :level_two)
+ receiver = create(:user, :level_two, email_on_direct_message: false)
+
+ login_as(sender)
+ visit new_user_direct_message_path(receiver)
+
+ expect(page).to have_content("This user has decided not to receive direct messages")
+ expect(page).to_not have_css("#direct_message_title")
+ end
end
@@ -74,10 +96,6 @@ feature 'Direct messages' do
context "Limits" do
- background do
- Setting[:direct_message_max_per_day] = 3
- end
-
scenario "Can only send a maximum number of direct messages per day" do
sender = create(:user, :level_two)
receiver = create(:user, :level_two)