validates that a user does not want to receive direct messages

This commit is contained in:
rgarcia
2016-06-16 11:23:03 +02:00
parent 25ebb325d1
commit 91860cb409
4 changed files with 56 additions and 16 deletions

View File

@@ -3,11 +3,24 @@
<%= render 'shared/back_link' %>
<h1>
<%= t("users.direct_messages.new.title",
receiver: @receiver.name) %>
<%= t("users.direct_messages.new.title", receiver: @receiver.name) %>
</h1>
<% if can? :create, @direct_message %>
<% if not current_user %>
<div class="callout primary">
<p>
<%= 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 %>
</p>
</div>
<% elsif not @receiver.email_on_direct_message? %>
<div class="callout primary">
<p>
<%= t("users.direct_messages.new.direct_messages_bloqued") %>
</p>
</div>
<% elsif can? :create, @direct_message %>
<%= form_for [@receiver, @direct_message] do |f| %>
<%= render "shared/errors", resource: @direct_message %>

View File

@@ -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:

View File

@@ -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:

View File

@@ -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)