diff --git a/app/controllers/invitadxs_controller.rb b/app/controllers/invitadxs_controller.rb
index 404130d6..19d0e335 100644
--- a/app/controllers/invitadxs_controller.rb
+++ b/app/controllers/invitadxs_controller.rb
@@ -52,6 +52,7 @@ class InvitadxsController < ApplicationController
private
def invitadx_params
- params.require(:invitadx).permit(:email, :password, :password_confirmation)
+ params.require(:invitadx).permit(:email, :password,
+ :password_confirmation, :acepta_politicas_de_privacidad)
end
end
diff --git a/app/models/invitadx.rb b/app/models/invitadx.rb
index 714df737..3d440637 100644
--- a/app/models/invitadx.rb
+++ b/app/models/invitadx.rb
@@ -1,6 +1,7 @@
class Invitadx < ApplicationRecord
has_secure_password
validates_uniqueness_of :email
+ validate :acepto_politicas_de_privacidad
after_create :create_invitadx_directory!
after_save :add_sites!
@@ -28,6 +29,13 @@ class Invitadx < ApplicationRecord
private
+ def acepto_politicas_de_privacidad
+ unless acepta_politicas_de_privacidad?
+ errors.add(:acepta_politicas_de_privacidad,
+ :no_acepta_politicas_de_privacidad)
+ end
+ end
+
# Crea el directorio en _sites
def create_invitadx_directory!
FileUtils.mkdir_p(path)
diff --git a/app/views/invitadxs/new.haml b/app/views/invitadxs/new.haml
index c907218a..bff7e4c3 100644
--- a/app/views/invitadxs/new.haml
+++ b/app/views/invitadxs/new.haml
@@ -10,7 +10,7 @@
- else
.alert.alert-dismissible.alert-info.fade.show{role: 'alert'}
%ul
- - @invitadx.errors.full_messages.each do |message|
+ - @invitadx.errors.messages.each do |_, message|
%li= message
%button.close{type: 'button',
data: { dismiss: 'alert' },
@@ -25,6 +25,14 @@
= f.password_field :password, class: 'form-control', placeholder: t('.password')
.form-group
= f.password_field :password_confirmation, class: 'form-control', placeholder: t('.password_confirmation')
+ - if @site.config.dig('privacy_policy')
+ .form-check
+ = f.check_box :acepta_politicas_de_privacidad,
+ class: 'form-check-input'
+ = f.label :acepta_politicas_de_privacidad,
+ raw(t('.acepta_politicas_de_privacidad',
+ privacy_policy: @site.config['privacy_policy'])),
+ class: 'form-check-label'
.form-group
- button = @site.config.dig('welcome', 'button')
diff --git a/config/locales/en.yml b/config/locales/en.yml
index f4f5cbb7..e13ba5b8 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -8,6 +8,8 @@ en:
taken: 'This e-mail address is already taken, please choose another'
password_confirmation:
confirmation: "The passwords don't match"
+ acepta_politicas_de_privacidad:
+ no_acepta_politicas_de_privacidad: "Please read and accept the privacy policy"
errors:
argument_error: 'Argument `%{argument}` must be an instance of %{class}'
unknown_locale: 'Unknown %{locale} locale'
@@ -28,6 +30,7 @@ en:
password: 'Password'
password_confirmation: 'Repeat password'
submit: 'Register'
+ acepta_politicas_de_privacidad: 'I accept the Privacy policy.'
confirmation:
confirmed: 'Your account is confirmed, please log in to continue'
show:
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 41018b9b..119dcb41 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -8,6 +8,8 @@ es:
taken: 'Esa cuenta ya está tomada, por favor elige otra.'
password_confirmation:
confirmation: Las contraseñas no coinciden
+ acepta_politicas_de_privacidad:
+ no_acepta_politicas_de_privacidad: "Por favor lee y acepta la política de privacidad"
errors:
argument_error: 'El argumento `%{argument}` debe ser una instancia de %{class}'
unknown_locale: 'El idioma %{locale} es desconocido'
@@ -28,6 +30,7 @@ es:
password: Contraseña
password_confirmation: Repite la contraseña
submit: Registrarme
+ acepta_politicas_de_privacidad: 'Acepto las Políticas de privacidad.'
confirmation:
confirmed: 'Tu cuenta está confirmada, ahora puedes ingresar'
show:
diff --git a/db/migrate/20190211184815_add_acepta_politicas_de_privacidad_to_invitadx.rb b/db/migrate/20190211184815_add_acepta_politicas_de_privacidad_to_invitadx.rb
new file mode 100644
index 00000000..d2cec557
--- /dev/null
+++ b/db/migrate/20190211184815_add_acepta_politicas_de_privacidad_to_invitadx.rb
@@ -0,0 +1,5 @@
+class AddAceptaPoliticasDePrivacidadToInvitadx < ActiveRecord::Migration[5.1]
+ def change
+ add_column :invitadxs, :acepta_politicas_de_privacidad, :boolean, default: false
+ end
+end