2017-09-25 22:35:06 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require 'net/imap'
|
|
|
|
require 'rack-flash'
|
|
|
|
require 'sinatra/base'
|
|
|
|
require 'sinatra_warden'
|
2017-09-28 20:20:31 +00:00
|
|
|
require_relative '../sutty'
|
2017-09-25 22:35:06 +00:00
|
|
|
require_relative '../warden/imap'
|
|
|
|
require_relative 'models/usuaria'
|
|
|
|
|
|
|
|
module Sutty
|
|
|
|
# Login
|
|
|
|
class Login < Sinatra::Base
|
2017-09-28 20:20:31 +00:00
|
|
|
set :root, Sutty.root
|
|
|
|
|
2017-09-25 22:35:06 +00:00
|
|
|
use Rack::Flash
|
|
|
|
register Sinatra::Warden
|
|
|
|
|
|
|
|
enable :sessions
|
|
|
|
enable :logging
|
|
|
|
enable :auth_use_referrer
|
|
|
|
|
2017-09-26 15:43:31 +00:00
|
|
|
set :auth_error_message, 'Hubo un error al ingresar'
|
|
|
|
set :auth_success_message, '¡Bienvenida!'
|
|
|
|
|
2017-09-25 22:35:06 +00:00
|
|
|
# Configura Warden para usar la estrategia IMAP y obtener la cuenta
|
|
|
|
# de usuaria a partir de la cookie.
|
|
|
|
use Warden::Manager do |config|
|
|
|
|
config.default_scope = :user
|
|
|
|
config.scope_defaults :user, strategies: [:imap]
|
|
|
|
|
|
|
|
config.serialize_into_session(&:username)
|
|
|
|
config.serialize_from_session { |u| Usuaria.find(u) }
|
|
|
|
|
|
|
|
config.failure_app = self
|
|
|
|
end
|
|
|
|
|
2017-09-26 15:43:31 +00:00
|
|
|
before do
|
|
|
|
@has_cover = true
|
|
|
|
end
|
2017-09-25 22:35:06 +00:00
|
|
|
end
|
|
|
|
end
|