Commit 0f1299aa authored by Lucas Braz Cunha's avatar Lucas Braz Cunha

Merge branch 'fix_email_env' into 'develop'

Fix email environment and change translation to pt-BR

See merge request !79
parents 650d04f7 53c4fb92
Pipeline #17208 passed with stages
in 1 minute and 51 seconds
......@@ -2,5 +2,10 @@ AGENDADOR_SECRET_KEY_BASE=6e58e1f0e806642a44a504672e22665606100838a0c80c8b3b6766
AGENDADOR_API_DB_USER=agendador
AGENDADOR_API_DB_PASSWORD=123mudar
AGENDADOR_REDIS_PASSWORD=123mudar
MAIL_USERNAME: agendador
MAIL_PASSWORD: 123mudar
\ No newline at end of file
MAIL_USERNAME=agendador
MAIL_PASSWORD=123mudar
MX_SERVER=mx.inf.ufpr.br
MX_PORT=587
MAIL_DOMAIN=inf.ufpr.br
AGENDADOR_apiHost=localhost
AGENDADOR_apiPort=3000
......@@ -106,7 +106,9 @@ module Api::V1
redirect_to(url)
else
render_edit_error
url = gen_url(params[:redirect_url] + "/invalid")
redirect_to(url)
end
end
......@@ -114,7 +116,7 @@ module Api::V1
def gen_url(url, params = {})
uri = URI(url)
res = "http://#{uri.path}"
res = "#{uri}"
query = [uri.query, params.to_query].reject(&:blank?).join('&')
res += "?#{query}"
res += "##{uri.fragment}" if uri.fragment
......@@ -128,5 +130,9 @@ module Api::V1
recoverable.reset_password_token = token if recoverable && recoverable.reset_password_token.present?
recoverable
end
def render_edit_error
render_error(404, "Token not found or expired!")
end
end
end
<p><%= t(:hello).capitalize %> <%= Citizen.where(account_id: @resource.id).name %>!</p>
<p><%= t(:hello).capitalize %> <%= @resource.email %>!</p>
<p><%= t '.request_reset_link_msg' %></p>
<p><%= link_to t('.password_change_link'), edit_v1_account_password_url(reset_password_token: @token, config: message['client-config'].to_s, redirect_url: message['redirect-url'].to_s).html_safe %></p>
......
......@@ -53,6 +53,9 @@ module BackEndServer
# Configure path for custom validators
config.autoload_paths += %W["#{config.root}/app/validators/"]
# Use devise in PT-BR
config.i18n.default_locale = :'pt-BR'
# Configure minitest without spec and no fixture
config.generators do |g|
g.test_framework :minitest, fixture: false
......@@ -64,8 +67,8 @@ module BackEndServer
# Specify which origins should be allowed to make requests (e.g. agendador.c3sl.ufpr.br)
origins '*'
resource '*', :headers => :any,
:methods => [:get, :post, :put, :delete, :options],
resource '*', :headers => :any,
:methods => [:get, :post, :put, :delete, :options],
:expose => ['access-token', 'expiry', 'token-type', 'uid', 'client']
end
end
......
......@@ -51,9 +51,9 @@ Rails.application.configure do
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "mx.inf.ufpr.br",
port: 587,
domain: "inf.ufpr.br",
address: ENV["MX_SERVER"],
port: ENV["MX_PORT"],
domain: ENV["MAIL_DOMAIN"],
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["MAIL_USERNAME"],
......
......@@ -62,7 +62,27 @@ Rails.application.configure do
# Use a real queuing backend for Active Job (and separate queues per environment)
# config.active_job.queue_adapter = :resque
# config.active_job.queue_name_prefix = "Back-end-server_#{Rails.env}"
config.action_mailer.perform_caching = false
# config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.default_url_options = { :host => ENV["AGENDADOR_apiHost"]+':'+ENV["AGENDADOR_apiPort"] }
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_caching = false
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: ENV["MX_SERVER"],
port: ENV["MX_PORT"],
domain: ENV["MAIL_DOMAIN"],
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["MAIL_USERNAME"],
password: ENV["MAIL_PASSWORD"]
}
# Ignore bad email addresses and do not raise email delivery errors.
# Set this to true and configure the email server for immediate delivery to raise delivery errors.
......
pt-br:
activerecord:
attributes:
user:
confirmation_sent_at: Confirmação enviada em
confirmation_token: Token de confirmação
confirmed_at: Confirmado em
created_at: Criado em
current_password: Senha atual
current_sign_in_at: Atualmente logado em
current_sign_in_ip: IP do acesso atual
email: Email
encrypted_password: Senha criptografada
failed_attempts: Tentativas sem sucesso
last_sign_in_at: "Último acesso em"
last_sign_in_ip: "Último IP de acesso"
locked_at: Bloqueado em
password: Senha
password_confirmation: Confirme sua senha
remember_created_at: Lembrar criado em
remember_me: Lembre-se de mim
reset_password_sent_at: Resetar senha enviado em
reset_password_token: Resetar token de senha
sign_in_count: Contagem de acessos
unconfirmed_email: E-mail não confirmado
unlock_token: Token de desbloqueio
updated_at: Atualizado em
models:
user: Usuário
devise:
confirmations:
confirmed: A sua conta foi confirmada com sucesso.
new:
resend_confirmation_instructions: Reenviar instruções de confirmação
send_instructions: Dentro de minutos, você receberá um email com as instruções de confirmação da sua conta.
send_paranoid_instructions: Se o seu email existir em nosso banco de dados, você receberá um email com instruções sobre como confirmar sua conta em alguns minutos.
failure:
already_authenticated: Você já está autenticado.
inactive: A sua conta ainda não foi ativada.
invalid: Invalido %{authentication_keys} ou senha.
last_attempt: Você tem mais uma única tentativa antes de sua conta ser bloqueada.
locked: A sua conta está bloqueada.
not_found_in_database: Invalido %{authentication_keys} ou senha.
timeout: A sua sessão expirou, por favor, faça login novamente para continuar.
unauthenticated: Para continuar, faça login ou registre-se.
unconfirmed: Antes de continuar, confirme a sua conta.
mailer:
confirmation_instructions:
action: Confirmar minha conta
greeting: Bem-vindo %{recipient}!
instruction: 'Você pode confirmar sua conta através do link abaixo:'
subject: Instruções de confirmação
email_changed:
greeting: Olá %{recipient}!
message: Estamos entrando em contato para notificá-lo de que seu e-mail está sendo alterado para %{email}.
subject: E-mail alterado
password_change:
greeting: Olá %{recipient}!
message: Estamos entrando em contato para notificá-lo de que sua senha foi alterada.
subject: Senha alterada
reset_password_instructions:
action: Redefinir minha senha
greeting: Olá %{recipient}!
instruction: Alguém fez o pedido para redefinir sua senha, e você pode fazer isso clicando no link abaixo.
instruction_2: Se você não fez este pedido, por favor ignore este e-mail.
instruction_3: Sua senha não será alterada até que você acesse o link acima e crie uma nova.
subject: Instruções de redefinição de senha
unlock_instructions:
action: Desbloquear minha conta
greeting: Olá %{recipient}!
instruction: 'Clique no link abaixo para desbloquear sua conta:'
message: Sua conta foi bloqueada devido ao excessivo número de tentativas acesso inválidas.
subject: Instruções de desbloqueio
omniauth_callbacks:
failure: Não foi possível autorizar de uma conta de %{kind} porque "%{reason}".
success: Autorizado com sucesso de uma conta de %{kind}.
passwords:
edit:
change_my_password: Alterar minha senha
change_your_password: Alterar sua senha
confirm_new_password: Confirme sua nova senha
new_password: Nova senha
new:
forgot_your_password: Esqueceu sua senha?
send_me_reset_password_instructions: Enviar instruções para redefinição da senha
no_token: Você não pode acessar esta página sem estar logado. Se você veio de um email de redefinição de senha, por favor certifique-se de ter digitado a URL corretamente.
send_instructions: Dentro de minutos, você receberá um email com as instruções de redefinição da sua senha.
send_paranoid_instructions: Se o seu email existir em nosso banco de dados, você receberá um email com um link para recuperação da senha.
updated: A sua senha foi alterada com sucesso. Você está autenticado.
updated_not_active: Sua senha foi alterada com sucesso.
registrations:
destroyed: Adeus! A sua conta foi cancelada com sucesso. Esperamos vê-lo novamente em breve.
edit:
are_you_sure: Você tem certeza?
cancel_my_account: Cancelar minha conta
currently_waiting_confirmation_for_email: 'No momento esperando por: %{email}'
leave_blank_if_you_don_t_want_to_change_it: deixe em branco caso não queira alterá-la
title: Editar %{resource}
unhappy: Não está contente?
update: Atualizar
we_need_your_current_password_to_confirm_your_changes: precisamos da sua senha atual para confirmar suas mudanças
new:
sign_up: Inscrever-se
signed_up: Bem vindo! Você realizou seu registro com sucesso.
signed_up_but_inactive: Você se inscreveu com sucesso, porém nós não podemos autenticá-lo porque sua conta ainda não foi ativada.
signed_up_but_locked: Você se inscreveu com sucesso. Porém nós não podemos autenticá-lo porque sua conta está bloqueada.
signed_up_but_unconfirmed: Uma mensagem com um link de confirmação foi enviada para o seu e-mail. Por favor, acesse o link para ativar sua conta.
update_needs_confirmation: Sua conta foi atualizada com sucesso, mas nós precisamos verificar o novo endereço de email. Por favor, verifique seu email e clique no link de confirmação para finalizar confirmando o seu novo email.
updated: A sua conta foi atualizada com sucesso.
sessions:
already_signed_out: Logout efetuado com sucesso.
new:
sign_in: Login
signed_in: Login efetuado com sucesso.
signed_out: Logout efetuado com sucesso.
shared:
links:
back: Voltar
didn_t_receive_confirmation_instructions: Não recebeu instruções de confirmação?
didn_t_receive_unlock_instructions: Não recebeu instruções de desbloqueio?
forgot_your_password: Esqueceu sua senha?
sign_in: Login
sign_in_with_provider: Entrar com %{provider}
sign_up: Inscrever-se
minimum_password_length:
one: "(Mínimo de %{count} caractere)"
other: "(Mínimo de %{count} caracteres)"
unlocks:
new:
resend_unlock_instructions: Reenviar instruções de desbloqueio
send_instructions: Dentro de minutos, você receberá um email com instruções de desbloqueio da sua conta.
send_paranoid_instructions: Se sua conta existir em nosso banco de dados, você receberá em breve um email com instruções para desbloquear ela.
unlocked: A sua conta foi desbloqueada com sucesso. Você está autenticado.
errors:
messages:
already_confirmed: já foi confirmado
confirmation_period_expired: "É necessário ser confirmado dentro do período %{period}, por favor requisite um novo usuário."
expired: expirou, por favor solicite uma nova
not_found: não encontrado
not_locked: não foi bloqueado
not_saved:
one: 'Não foi possível salvar %{resource}: 1 erro'
other: 'Não foi possível salvar %{resource}: %{count} erros.'
pt-BR:
devise_token_auth:
sessions:
not_confirmed: "Uma mensagem com um link de confirmação foi enviado para seu endereço de e-mail. Você precisa confirmar sua conta antes de continuar."
bad_credentials: "E-mail ou senha inválidos."
not_supported: "Use POST /sign_in para efetuar o login. GET não é suportado."
user_not_found: "Usuário não existe ou não está logado."
token_validations:
invalid: "Dados de login inválidos."
registrations:
missing_confirm_success_url: "Parâmetro 'confirm_success_url' não informado."
redirect_url_not_allowed: "Redirecionamento para '%{redirect_url}' não permitido."
email_already_exists: " existe uma conta com o email '%{email}'."
account_with_uid_destroyed: "A conta com uid '%{uid}' foi excluída."
account_to_destroy_not_found: "Não foi possível encontrar a conta para exclusão."
user_not_found: "Usuário não encontrado."
passwords:
missing_email: "Informe o endereço de e-mail."
missing_redirect_url: "URL para redirecionamento não informada."
not_allowed_redirect_url: "Redirecionamento para '%{redirect_url}' não permitido."
sended: "Você receberá um e-mail com instruções sobre como redefinir sua senha."
user_not_found: "Não existe um usuário com o e-mail '%{email}'."
password_not_required: "Esta conta não necessita de uma senha. Faça login utilizando '%{provider}'."
missing_passwords: 'Preencha a senha e a confirmação de senha.'
successfully_updated: "Senha atualizada com sucesso."
errors:
messages:
validate_sign_up_params: "Os dados submetidos na requisição de cadastro são inválidos."
validate_account_update_params: "Os dados submetidos para atualização de conta são inválidos."
not_email: "não é um e-mail"
devise:
mailer:
confirmation_instructions:
confirm_link_msg: "Você pode confirmar a sua conta de e-mail através do link abaixo :"
confirm_account_link: "Confirme conta"
reset_password_instructions:
subject: Instruções de redefinição de senha
greeting: Olá!
request_reset_link_msg: "Alguém pediu um link para mudar sua senha. Você pode fazer isso através do link abaixo "
password_change_link: "Alterar a senha"
ignore_mail_msg: "Se você não pediu isso, por favor, ignore este e-mail."
no_changes_msg: "Sua senha não será alterada até que você acesse o link acima e crie uma nova."
unlock_instructions:
account_lock_msg: "A sua conta foi bloqueada devido a um número excessivo de sinal de sucesso em tentativas."
unlock_link_msg: "Clique no link abaixo para desbloquear sua conta:"
unlock_link: "Desbloquear minha conta"
hello: "olá"
welcome: "bem-vindo"
class AddAllowPasswordChangeToAccounts < ActiveRecord::Migration[5.0]
def change
add_column :accounts, :allow_password_change, :boolean, default: false
end
end
......@@ -31,6 +31,7 @@ ActiveRecord::Schema.define(version: 20180803163556) do
t.json "tokens"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "allow_password_change", default: false
t.index ["reset_password_token"], name: "index_accounts_on_reset_password_token", unique: true, using: :btree
t.index ["uid"], name: "index_accounts_on_uid", unique: true, using: :btree
end
......
......@@ -35,11 +35,17 @@ services:
AGENDADOR_REDIS_PASSWORD: ${AGENDADOR_REDIS_PASSWORD}
AGENDADOR_API_DB_PASSWORD: ${AGENDADOR_API_DB_PASSWORD}
AGENDADOR_API_DB_USER: ${AGENDADOR_API_DB_USER}
AGENDADOR_apiHost: ${AGENDADOR_apiHost}
AGENDADOR_apiPort: ${AGENDADOR_apiPort}
SECRET_KEY_BASE: ${AGENDADOR_SECRET_KEY_BASE}
PGHOST: agendador-postgres
REDISHOST: agendador-redis
MAIL_USERNAME: ${MAIL_USERNAME}
MAIL_PASSWORD: ${MAIL_PASSWORD}
MX_SERVER: ${MX_SERVER}
MX_PORT: ${MX_PORT}
MAIL_DOMAIN: ${MAIL_DOMAIN}
ports:
- '3000:3000'
depends_on:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment