mirror of
https://0xacab.org/sutty/sutty
synced 2025-02-22 14:01:51 +00:00
Merge branch 'issue-13247' into panel.sutty.nl
This commit is contained in:
commit
d4a93698a9
5 changed files with 28 additions and 3 deletions
|
@ -96,6 +96,13 @@ class UsuariesController < ApplicationController
|
||||||
|
|
||||||
# XXX: La invitación tiene que ser enviada luego de crear el rol
|
# XXX: La invitación tiene que ser enviada luego de crear el rol
|
||||||
if role.persisted?
|
if role.persisted?
|
||||||
|
# Si es una cuenta manual que no está confirmada aun,
|
||||||
|
# aprovechar para reconfirmarla.
|
||||||
|
if !usuarie.confirmed? && !usuarie.created_by_invite?
|
||||||
|
usuarie.confirmation_token = nil
|
||||||
|
usuarie.send :generate_confirmation_token!
|
||||||
|
end
|
||||||
|
|
||||||
usuarie.deliver_invitation
|
usuarie.deliver_invitation
|
||||||
else
|
else
|
||||||
raise ArgumentError, role.errors.full_messages
|
raise ArgumentError, role.errors.full_messages
|
||||||
|
|
|
@ -12,6 +12,7 @@ class Usuarie < ApplicationRecord
|
||||||
validates_with EmailAddress::ActiveRecordValidator, field: :email
|
validates_with EmailAddress::ActiveRecordValidator, field: :email
|
||||||
|
|
||||||
before_create :lang_from_locale!
|
before_create :lang_from_locale!
|
||||||
|
before_update :remove_confirmation_invitation_inconsistencies!
|
||||||
before_update :accept_invitation_after_confirmation!
|
before_update :accept_invitation_after_confirmation!
|
||||||
|
|
||||||
has_many :roles
|
has_many :roles
|
||||||
|
@ -50,12 +51,25 @@ class Usuarie < ApplicationRecord
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Les usuaries necesitan link de invitación si no tenían cuenta
|
||||||
|
# y todavía no aceptaron la invitación anterior.
|
||||||
|
def needs_invitation_link?
|
||||||
|
created_by_invite? && !invitation_accepted?
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def lang_from_locale!
|
def lang_from_locale!
|
||||||
self.lang = I18n.locale.to_s
|
self.lang = I18n.locale.to_s
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# El invitation_token solo es necesario cuando fue creade por otre
|
||||||
|
# usuarie. De lo contrario lo que queremos es un proceso de
|
||||||
|
# confirmación.
|
||||||
|
def remove_confirmation_invitation_inconsistencies!
|
||||||
|
self.invitation_token = nil unless created_by_invite?
|
||||||
|
end
|
||||||
|
|
||||||
# Si le usuarie (re)confirma su cuenta con una invitación pendiente,
|
# Si le usuarie (re)confirma su cuenta con una invitación pendiente,
|
||||||
# considerarla aceptada también.
|
# considerarla aceptada también.
|
||||||
def accept_invitation_after_confirmation!
|
def accept_invitation_after_confirmation!
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
%h1= site.title
|
%h1= site.title
|
||||||
%p= site.description
|
%p= site.description
|
||||||
|
|
||||||
- if @resource.created_by_invite? && !@resource.invitation_accepted?
|
- if @resource.needs_invitation_link?
|
||||||
%p= link_to t('devise.mailer.invitation_instructions.accept'),
|
%p= link_to t('devise.mailer.invitation_instructions.accept'),
|
||||||
accept_invitation_url(@resource, invitation_token: @token, change_locale_to: @resource.lang)
|
accept_invitation_url(@resource, invitation_token: @token, change_locale_to: @resource.lang)
|
||||||
|
|
||||||
|
@ -18,5 +18,7 @@
|
||||||
format: :'devise.mailer.invitation_instructions.accept_until_format'))
|
format: :'devise.mailer.invitation_instructions.accept_until_format'))
|
||||||
|
|
||||||
%p= t('devise.mailer.invitation_instructions.ignore')
|
%p= t('devise.mailer.invitation_instructions.ignore')
|
||||||
|
- elsif !@resource.confirmed? && @resource.confirmation_token
|
||||||
|
= confirmation_url(@resource, confirmation_token: @resource.confirmation_token, change_locale_to: @resource.lang)
|
||||||
- else
|
- else
|
||||||
%p= link_to t('devise.mailer.invitation_instructions.sign_in'), root_url(change_locale_to: @resource.lang)
|
%p= link_to t('devise.mailer.invitation_instructions.sign_in'), root_url(change_locale_to: @resource.lang)
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
\
|
\
|
||||||
= site.description
|
= site.description
|
||||||
\
|
\
|
||||||
- if @resource.created_by_invite? && !@resource.invitation_accepted?
|
- if @resource.needs_invitation_link?
|
||||||
= accept_invitation_url(@resource, invitation_token: @token, change_locale_to: @resource.lang)
|
= accept_invitation_url(@resource, invitation_token: @token, change_locale_to: @resource.lang)
|
||||||
\
|
\
|
||||||
- if @resource.invitation_due_at
|
- if @resource.invitation_due_at
|
||||||
|
@ -18,6 +18,8 @@
|
||||||
format: :'devise.mailer.invitation_instructions.accept_until_format'))
|
format: :'devise.mailer.invitation_instructions.accept_until_format'))
|
||||||
\
|
\
|
||||||
= t('devise.mailer.invitation_instructions.ignore')
|
= t('devise.mailer.invitation_instructions.ignore')
|
||||||
|
- elsif !@resource.confirmed? && @resource.confirmation_token
|
||||||
|
= confirmation_url(@resource, confirmation_token: @resource.confirmation_token, change_locale_to: @resource.lang)
|
||||||
- else
|
- else
|
||||||
= root_url(change_locale_to: @resource.lang)
|
= root_url(change_locale_to: @resource.lang)
|
||||||
= t('devise.mailer.invitation_instructions.sign_in')
|
= t('devise.mailer.invitation_instructions.sign_in')
|
||||||
|
|
|
@ -22,7 +22,7 @@ es:
|
||||||
someone_invited_you: "Alguien te ha invitado a colaborar en %{url}, podés aceptar la invitación con el enlace a continuación."
|
someone_invited_you: "Alguien te ha invitado a colaborar en %{url}, podés aceptar la invitación con el enlace a continuación."
|
||||||
accept: "Aceptar la invitación"
|
accept: "Aceptar la invitación"
|
||||||
accept_until: "La invitación vencerá el %{due_date}."
|
accept_until: "La invitación vencerá el %{due_date}."
|
||||||
ignore: "Si no querés aceptar la invitación, por favor ignora este correo. Tu cuenta no será creada hasta que aceptes la invitación y configures una contraseña."
|
ignore: "Si no querés aceptar la invitación, por favor ignorá este correo. Tu cuenta no será creada hasta que aceptes la invitación y configures una contraseña."
|
||||||
sign_in: "Iniciá sesión con tu cuenta para aceptar o rechazar la invitación."
|
sign_in: "Iniciá sesión con tu cuenta para aceptar o rechazar la invitación."
|
||||||
time:
|
time:
|
||||||
formats:
|
formats:
|
||||||
|
|
Loading…
Reference in a new issue