From 6a1240308da41f534fe139bda2ff1d75f9394849 Mon Sep 17 00:00:00 2001 From: f Date: Mon, 29 Jan 2018 15:09:30 -0300 Subject: [PATCH] login con imap --- Gemfile | 12 ++-- Gemfile.lock | 79 +++++++++++++++++++++- app/assets/images/background.jpg | Bin 0 -> 94225 bytes app/assets/stylesheets/application.css | 15 ---- app/assets/stylesheets/application.scss | 38 +++++++++++ app/controllers/application_controller.rb | 4 ++ app/controllers/login_controller.rb | 21 ++++++ app/controllers/sites_controller.rb | 6 ++ app/models/usuaria.rb | 18 +++++ app/views/layouts/application.html.erb | 14 ---- app/views/layouts/application.html.haml | 15 ++++ app/views/login/new.haml | 14 ++++ app/views/sites/index.haml | 1 + config/initializers/warden.rb | 18 +++++ config/locales/en.yml | 38 ++--------- config/locales/es.yml | 7 ++ config/routes.rb | 9 ++- lib/warden/imap.rb | 51 ++++++++++++++ 18 files changed, 290 insertions(+), 70 deletions(-) create mode 100644 app/assets/images/background.jpg delete mode 100644 app/assets/stylesheets/application.css create mode 100644 app/assets/stylesheets/application.scss create mode 100644 app/controllers/login_controller.rb create mode 100644 app/controllers/sites_controller.rb create mode 100644 app/models/usuaria.rb delete mode 100644 app/views/layouts/application.html.erb create mode 100644 app/views/layouts/application.html.haml create mode 100644 app/views/login/new.haml create mode 100644 app/views/sites/index.haml create mode 100644 config/initializers/warden.rb create mode 100644 config/locales/es.yml create mode 100644 lib/warden/imap.rb diff --git a/Gemfile b/Gemfile index 204c2310..d2c77d8e 100644 --- a/Gemfile +++ b/Gemfile @@ -29,9 +29,14 @@ gem 'jbuilder', '~> 2.5' # Use Capistrano for deployment # gem 'capistrano-rails', group: :development +gem 'email_address' +gem 'rails_warden' +gem 'haml-rails' +gem 'bootstrap', '~> 4.0.0.beta3' +gem 'jekyll' + group :development, :test do - # Call 'byebug' anywhere in the code to stop execution and get a debugger console - gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] + gem 'pry' # Adds support for Capybara system testing and selenium driver gem 'capybara', '~> 2.13' gem 'selenium-webdriver' @@ -45,6 +50,3 @@ group :development do gem 'spring' gem 'spring-watcher-listen', '~> 2.0.0' end - -# Windows does not include zoneinfo files, so bundle the tzinfo-data gem -gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] diff --git a/Gemfile.lock b/Gemfile.lock index 3c15b682..c7c64534 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -41,9 +41,14 @@ GEM addressable (2.5.2) public_suffix (>= 2.0.2, < 4.0) arel (8.0.0) + autoprefixer-rails (7.2.4) + execjs bindex (0.5.0) + bootstrap (4.0.0.beta3) + autoprefixer-rails (>= 6.0.3) + popper_js (>= 1.12.3, < 2) + sass (>= 3.5.2) builder (3.2.3) - byebug (9.1.0) capybara (2.16.1) addressable mini_mime (>= 0.1.3) @@ -53,18 +58,63 @@ GEM xpath (~> 2.0) childprocess (0.8.0) ffi (~> 1.0, >= 1.0.11) + coderay (1.1.2) + colorator (1.1.0) concurrent-ruby (1.0.5) crass (1.0.3) + em-websocket (0.5.1) + eventmachine (>= 0.12.9) + http_parser.rb (~> 0.6.0) + email_address (0.1.6) + netaddr + simpleidn erubi (1.7.0) + erubis (2.7.0) + eventmachine (1.2.5) execjs (2.7.0) ffi (1.9.18) + forwardable-extended (2.6.0) globalid (0.4.1) activesupport (>= 4.2.0) + haml (5.0.4) + temple (>= 0.8.0) + tilt + haml-rails (1.0.0) + actionpack (>= 4.0.1) + activesupport (>= 4.0.1) + haml (>= 4.0.6, < 6.0) + html2haml (>= 1.0.1) + railties (>= 4.0.1) + html2haml (2.2.0) + erubis (~> 2.7.0) + haml (>= 4.0, < 6) + nokogiri (>= 1.6.0) + ruby_parser (~> 3.5) + http_parser.rb (0.6.0) i18n (0.9.1) concurrent-ruby (~> 1.0) jbuilder (2.7.0) activesupport (>= 4.2.0) multi_json (>= 1.2) + jekyll (3.7.0) + addressable (~> 2.4) + colorator (~> 1.0) + em-websocket (~> 0.5) + i18n (~> 0.7) + jekyll-sass-converter (~> 1.0) + jekyll-watch (~> 2.0) + kramdown (~> 1.14) + liquid (~> 4.0) + mercenary (~> 0.3.3) + pathutil (~> 0.9) + rouge (>= 1.7, < 4) + safe_yaml (~> 1.0) + jekyll-sass-converter (1.5.1) + sass (~> 3.4) + jekyll-watch (2.0.0) + listen (~> 3.0) + kramdown (1.16.2) + liquid (4.0.0) listen (3.1.5) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) @@ -74,14 +124,22 @@ GEM nokogiri (>= 1.5.9) mail (2.7.0) mini_mime (>= 0.1.1) + mercenary (0.3.6) method_source (0.9.0) mini_mime (1.0.0) mini_portile2 (2.3.0) minitest (5.10.3) multi_json (1.12.2) + netaddr (1.5.1) nio4r (2.1.0) nokogiri (1.8.1) mini_portile2 (~> 2.3.0) + pathutil (0.16.1) + forwardable-extended (~> 2.6) + popper_js (1.12.9) + pry (0.11.3) + coderay (~> 1.1.0) + method_source (~> 0.9.0) public_suffix (3.0.1) puma (3.11.0) rack (2.0.3) @@ -104,6 +162,8 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.0.3) loofah (~> 2.0) + rails_warden (0.5.8) + warden (>= 1.0.0) railties (5.1.4) actionpack (= 5.1.4) activesupport (= 5.1.4) @@ -114,8 +174,12 @@ GEM rb-fsevent (0.10.2) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) + rouge (3.1.0) ruby_dep (1.5.0) + ruby_parser (3.10.1) + sexp_processor (~> 4.9) rubyzip (1.2.1) + safe_yaml (1.0.4) sass (3.5.4) sass-listen (~> 4.0.0) sass-listen (4.0.0) @@ -130,6 +194,8 @@ GEM selenium-webdriver (3.8.0) childprocess (~> 0.5) rubyzip (~> 1.0) + sexp_processor (4.10.0) + simpleidn (0.0.9) spring (2.0.2) activesupport (>= 4.2) spring-watcher-listen (2.0.1) @@ -143,6 +209,7 @@ GEM activesupport (>= 4.0) sprockets (>= 3.0.0) sqlite3 (1.3.13) + temple (0.8.0) thor (0.20.0) thread_safe (0.3.6) tilt (2.0.8) @@ -153,6 +220,8 @@ GEM thread_safe (~> 0.1) uglifier (4.1.2) execjs (>= 0.3.0, < 3) + warden (1.2.7) + rack (>= 1.0) web-console (3.5.1) actionview (>= 5.0) activemodel (>= 5.0) @@ -168,19 +237,23 @@ PLATFORMS ruby DEPENDENCIES - byebug + bootstrap (~> 4.0.0.beta3) capybara (~> 2.13) + email_address + haml-rails jbuilder (~> 2.5) + jekyll listen (>= 3.0.5, < 3.2) + pry puma (~> 3.7) rails (~> 5.1.4) + rails_warden sass-rails (~> 5.0) selenium-webdriver spring spring-watcher-listen (~> 2.0.0) sqlite3 turbolinks (~> 5) - tzinfo-data uglifier (>= 1.3.0) web-console (>= 3.3.0) diff --git a/app/assets/images/background.jpg b/app/assets/images/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0e6c2d0dba7b9b68f0306466a156f3dfb9db0fd8 GIT binary patch literal 94225 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

HH=aNAsU{e{4csW58*`=s(M?xB+&&kfbox9|F*K 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 - - - Sutty - <%= csrf_meta_tags %> - - <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> - <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %> - - - - <%= yield %> - - diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml new file mode 100644 index 00000000..be34424a --- /dev/null +++ b/app/views/layouts/application.html.haml @@ -0,0 +1,15 @@ +!!! +%html + %head + %meta{content: "text/html; charset=UTF-8", 'http-equiv': "Content-Type"}/ + %title Sutty + = csrf_meta_tags + = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' + %body{class: @has_cover ? 'background-cover' : ''} + .container-fluid + = yield + %footer.footer + %p{style: @has_cover ? 'color: white' : ''} + %a{href: 'https://0xacab.org/itacate-kefir/sutty'} Sutty + es desarrollada por + %a{href: 'https://kefir.red'} Kéfir diff --git a/app/views/login/new.haml b/app/views/login/new.haml new file mode 100644 index 00000000..a61340e4 --- /dev/null +++ b/app/views/login/new.haml @@ -0,0 +1,14 @@ +.row.align-items-center.justify-content-center.full-height + .col-md-6.align-self-center + - if flash[:error] + .alert.alert-danger{role: 'alert'} + = flash[:error] + + = form_tag login_path do + .form-group + %input{type: 'email', name: 'username', class: 'form-control', placeholder: t('login.email')} + .form-group + %input{type: 'password', name: 'password', class: 'form-control', placeholder: t('login.password')} + + .form-group + %input{type: 'submit', value: t('login.submit', class: 'btn btn-lg btn-primary btn-block'} diff --git a/app/views/sites/index.haml b/app/views/sites/index.haml new file mode 100644 index 00000000..83d23fb4 --- /dev/null +++ b/app/views/sites/index.haml @@ -0,0 +1 @@ +%h1= t('sites.title') diff --git a/config/initializers/warden.rb b/config/initializers/warden.rb new file mode 100644 index 00000000..c750b089 --- /dev/null +++ b/config/initializers/warden.rb @@ -0,0 +1,18 @@ +require 'warden/imap' + +Rails.configuration.middleware.use RailsWarden::Manager do |manager| + manager.default_strategies :imap + manager.failure_app = -> (env) { LoginController.action(:new).call(env) } +end + +class Warden::SessionSerializer + def serialize(record) + [record.username] + end + + def deserialize(keys) + Usuaria.find(keys.first) + end +end + +Warden::Strategies.add(:imap, Warden::IMAP::Strategy) diff --git a/config/locales/en.yml b/config/locales/en.yml index decc5a85..04143fca 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,33 +1,7 @@ -# Files in the config/locales directory are used for internationalization -# and are automatically loaded by Rails. If you want to use locales other -# than English, add the necessary files in this directory. -# -# To use the locales, use `I18n.t`: -# -# I18n.t 'hello' -# -# In views, this is aliased to just `t`: -# -# <%= t('hello') %> -# -# To use a different locale, set it with `I18n.locale`: -# -# I18n.locale = :es -# -# This would use the information in config/locales/es.yml. -# -# The following keys must be escaped otherwise they will not be retrieved by -# the default I18n backend: -# -# true, false, on, off, yes, no -# -# Instead, surround them with single quotes. -# -# en: -# 'true': 'foo' -# -# To learn more, please read the Rails Internationalization guide -# available at http://guides.rubyonrails.org/i18n.html. - en: - hello: "Hello world" + login: + email: 'E-mail' + password: 'Password' + submit: 'Log in' + sites: + title: 'Sites' diff --git a/config/locales/es.yml b/config/locales/es.yml new file mode 100644 index 00000000..cd546852 --- /dev/null +++ b/config/locales/es.yml @@ -0,0 +1,7 @@ +es: + login: + email: 'Dirección de correo' + password: 'Contraseña' + submit: 'Ingresar' + sites: + title: 'Sitios' diff --git a/config/routes.rb b/config/routes.rb index 787824f8..a16d6e71 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,3 +1,10 @@ Rails.application.routes.draw do - # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html + root 'application#index' + + get 'login/new', to: 'login#new' + post 'login', to: 'login#create' + + resources :sites do + resources :posts + end end diff --git a/lib/warden/imap.rb b/lib/warden/imap.rb new file mode 100644 index 00000000..e757ca1c --- /dev/null +++ b/lib/warden/imap.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'net/imap' +require 'warden' +require 'email_address' + +module Warden + module IMAP + # Una estrategia de autenticación por IMAP + class Strategy < Warden::Strategies::Base + def valid? + return false unless params.include? 'username' + return false unless params.include? 'password' + + @email = EmailAddress.new(params['username']) + + @email.valid? + end + + def authenticate! + imap_connect + imap_login + end + + private + + def imap_connect + # No vamos a enviar la contraseña en texto plano a ningún lado + @imap = Net::IMAP.new(@email.host_name, ssl: true) + # Errores más comunes según + # https://ruby-doc.org/stdlib-2.0.0/libdoc/net/imap/rdoc/Net/IMAP.html + rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT, Errno::ENETUNREACH, + SocketError, Net::IMAP::ByeResponseError => e + + @imap.disconnect + fail! e.to_s + end + + def imap_login + @imap.login(@email.normal, params['password']) + @imap.disconnect + + success! Usuaria.find(@email.normal) + rescue EOFError => e + @imap.disconnect + fail! e.to_s + end + end + end +end +