mirror of
https://0xacab.org/sutty/sutty
synced 2024-11-26 14:56:22 +00:00
cerrar la sesión y cambiar de idioma
This commit is contained in:
parent
194ecca5fc
commit
e378ede510
9 changed files with 39 additions and 0 deletions
|
@ -92,3 +92,8 @@ textarea.post-content {
|
||||||
direction: rtl;
|
direction: rtl;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn-text {
|
||||||
|
background-color: transparent;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
# Forma de ingreso a Sutty
|
# Forma de ingreso a Sutty
|
||||||
class ApplicationController < ActionController::Base
|
class ApplicationController < ActionController::Base
|
||||||
protect_from_forgery with: :exception
|
protect_from_forgery with: :exception
|
||||||
|
before_action :set_locale
|
||||||
|
|
||||||
# No tenemos índice de sutty, vamos directamente a ver el listado de
|
# No tenemos índice de sutty, vamos directamente a ver el listado de
|
||||||
# sitios
|
# sitios
|
||||||
|
@ -36,4 +37,8 @@ class ApplicationController < ActionController::Base
|
||||||
def find_lang
|
def find_lang
|
||||||
params.fetch(:lang, I18n.locale.to_s)
|
params.fetch(:lang, I18n.locale.to_s)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_locale
|
||||||
|
I18n.locale = session[:lang] if session[:lang].present?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -12,10 +12,20 @@ class LoginController < ApplicationController
|
||||||
|
|
||||||
def create
|
def create
|
||||||
authenticate
|
authenticate
|
||||||
|
session[:lang] = params[:lang]
|
||||||
|
|
||||||
if authenticated?
|
if authenticated?
|
||||||
# TODO enviar a la URL de donde vinimos
|
# TODO enviar a la URL de donde vinimos
|
||||||
redirect_to sites_path
|
redirect_to sites_path
|
||||||
|
else
|
||||||
|
flash[:error] = t('login.error')
|
||||||
|
render 'login/new'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def delete
|
||||||
|
warden.logout
|
||||||
|
|
||||||
|
redirect_to login_new_path
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
%nav{'aria-label': 'breadcrumb', role: 'navigation'}
|
%nav{'aria-label': 'breadcrumb', role: 'navigation'}
|
||||||
%ol.breadcrumb
|
%ol.breadcrumb
|
||||||
|
%li.breadcrumb-item= render 'login/logout'
|
||||||
- crumbs.compact.each do |crumb|
|
- crumbs.compact.each do |crumb|
|
||||||
- if crumb == crumbs.last
|
- if crumb == crumbs.last
|
||||||
%li.breadcrumb-item.active{'aria-current': 'page'}= crumb
|
%li.breadcrumb-item.active{'aria-current': 'page'}= crumb
|
||||||
|
|
4
app/views/login/_logout.haml
Normal file
4
app/views/login/_logout.haml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
= form_tag login_logout_path, method: :delete, class: 'form-inline' do
|
||||||
|
= button_tag type: 'submit', class: 'btn-text',
|
||||||
|
data: { toggle: 'tooltip' }, title: t('help.logout') do
|
||||||
|
= fa_icon('sign-out')
|
|
@ -9,6 +9,10 @@
|
||||||
%input{type: 'email', name: 'username', class: 'form-control', placeholder: t('login.email')}
|
%input{type: 'email', name: 'username', class: 'form-control', placeholder: t('login.email')}
|
||||||
.form-group
|
.form-group
|
||||||
%input{type: 'password', name: 'password', class: 'form-control', placeholder: t('login.password')}
|
%input{type: 'password', name: 'password', class: 'form-control', placeholder: t('login.password')}
|
||||||
|
.form-group
|
||||||
|
%select.form-control{name: 'lang', placeholder: t('login.lang')}
|
||||||
|
%option{value: 'en'} English
|
||||||
|
%option{value: 'es'} Castellano
|
||||||
|
|
||||||
.form-group
|
.form-group
|
||||||
%input{type: 'submit', value: t('login.submit'), class: 'btn btn-lg btn-primary btn-block'}
|
%input{type: 'submit', value: t('login.submit'), class: 'btn btn-lg btn-primary btn-block'}
|
||||||
|
|
|
@ -3,6 +3,7 @@ en:
|
||||||
argument_error: 'Argument `%{argument}` must be an instance of %{class}'
|
argument_error: 'Argument `%{argument}` must be an instance of %{class}'
|
||||||
unknown_locale: 'Unknown %{locale} locale'
|
unknown_locale: 'Unknown %{locale} locale'
|
||||||
help:
|
help:
|
||||||
|
logout: 'Close the session'
|
||||||
breadcrumbs: "What you see up here are the bread crumbs for this
|
breadcrumbs: "What you see up here are the bread crumbs for this
|
||||||
site. When you enter a new section, you will see the previous ones
|
site. When you enter a new section, you will see the previous ones
|
||||||
and also have a path for where you\'re standing."
|
and also have a path for where you\'re standing."
|
||||||
|
@ -86,6 +87,9 @@ en:
|
||||||
email: 'E-mail'
|
email: 'E-mail'
|
||||||
password: 'Password'
|
password: 'Password'
|
||||||
submit: 'Log in'
|
submit: 'Log in'
|
||||||
|
logout: 'Log out'
|
||||||
|
lang: 'Language'
|
||||||
|
error: 'There was an error during log in. Did you type your credentials correctly?'
|
||||||
sites:
|
sites:
|
||||||
actions: 'Actions'
|
actions: 'Actions'
|
||||||
posts: 'View and edit posts'
|
posts: 'View and edit posts'
|
||||||
|
|
|
@ -3,6 +3,7 @@ es:
|
||||||
argument_error: 'El argumento `%{argument}` debe ser una instancia de %{class}'
|
argument_error: 'El argumento `%{argument}` debe ser una instancia de %{class}'
|
||||||
unknown_locale: 'El idioma %{locale} es desconocido'
|
unknown_locale: 'El idioma %{locale} es desconocido'
|
||||||
help:
|
help:
|
||||||
|
logout: 'Cierra la sesión'
|
||||||
breadcrumbs: 'Lo que ves arriba son las migas de pan de este sitio.
|
breadcrumbs: 'Lo que ves arriba son las migas de pan de este sitio.
|
||||||
Cuando ingreses a una sección, podrás volver a las secciones
|
Cuando ingreses a una sección, podrás volver a las secciones
|
||||||
anteriores y además tener una ruta de donde estás parada.'
|
anteriores y además tener una ruta de donde estás parada.'
|
||||||
|
@ -88,6 +89,9 @@ es:
|
||||||
email: 'Dirección de correo'
|
email: 'Dirección de correo'
|
||||||
password: 'Contraseña'
|
password: 'Contraseña'
|
||||||
submit: 'Ingresar'
|
submit: 'Ingresar'
|
||||||
|
lang: 'Idioma'
|
||||||
|
logout: 'Salir'
|
||||||
|
error: 'Hubo un error al iniciar la sesión. ¿Escribiste bien tus credenciales?'
|
||||||
sites:
|
sites:
|
||||||
actions: 'Acciones'
|
actions: 'Acciones'
|
||||||
posts: 'Ver y editar artículos'
|
posts: 'Ver y editar artículos'
|
||||||
|
|
|
@ -3,6 +3,8 @@ Rails.application.routes.draw do
|
||||||
|
|
||||||
get 'login/new', to: 'login#new'
|
get 'login/new', to: 'login#new'
|
||||||
post 'login', to: 'login#create'
|
post 'login', to: 'login#create'
|
||||||
|
delete 'login/logout', to: 'login#delete'
|
||||||
|
|
||||||
get 'markdown', to: 'application#markdown'
|
get 'markdown', to: 'application#markdown'
|
||||||
|
|
||||||
resources :sites, only: [ :index, :show ] do
|
resources :sites, only: [ :index, :show ] do
|
||||||
|
|
Loading…
Reference in a new issue