mirror of
https://0xacab.org/sutty/sutty
synced 2024-07-05 23:15:45 +00:00
35 lines
841 B
Ruby
35 lines
841 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'net/imap'
|
||
|
require 'rack-flash'
|
||
|
require 'sinatra/base'
|
||
|
require 'sinatra_warden'
|
||
|
require_relative '../warden/imap'
|
||
|
require_relative 'models/usuaria'
|
||
|
|
||
|
module Sutty
|
||
|
# Login
|
||
|
class Login < Sinatra::Base
|
||
|
use Rack::Flash
|
||
|
register Sinatra::Warden
|
||
|
|
||
|
enable :sessions
|
||
|
enable :logging
|
||
|
enable :auth_use_referrer
|
||
|
|
||
|
# 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
|
||
|
|
||
|
set :root, File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
|
||
|
end
|
||
|
end
|