0% found this document useful (0 votes)
55 views

Unidad 3 - Features and Gems - Part I

This document discusses authentication and authorization in a Rails web application. It covers using the Devise gem for authentication, which provides features like user registration, login, password resets and more. It also covers adding an admin interface using Rails Admin or ActiveAdmin gems. These gems generate a backend interface that allows managing models and data. The document provides code examples for installing and configuring Devise and Rails Admin, including customizing views and authorization.

Uploaded by

scarlosenrique-1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views

Unidad 3 - Features and Gems - Part I

This document discusses authentication and authorization in a Rails web application. It covers using the Devise gem for authentication, which provides features like user registration, login, password resets and more. It also covers adding an admin interface using Rails Admin or ActiveAdmin gems. These gems generate a backend interface that allows managing models and data. The document provides code examples for installing and configuring Devise and Rails Admin, including customizing views and authorization.

Uploaded by

scarlosenrique-1
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

EPE DESARROLLO PARA ENTORNO WEB

Unidad 3 | Capa de Lógica de Negocio

CARACTERÍSTICAS & GEMAS


LOGRO
Al finalizar la unidad el alumno
desarrolla la capa de negocio de una
aplicación Web.
AGENDA
AUTENTICACIÓN & ROLES
ADMIN
AGENDA
AUTENTICACIÓN & ROLES
ADMIN
DEVISE
https://github.com/plataformatec/devise

FeatureSet para autenticación.

Almacenamiento en BD.
Integración con Omniauth.
Email de confirmación.
Reset de password.
Registro de usuarios.
Sesiones.
Timeout
Bloqueo por intentos fallidos.
DEVISE
# En Gemfile
gem 'devise'

$ rails g devise: install


$ rails g devise <Model>
$ rails g devise User
$ rake db:migrate

# En config/environments/development.rb
config.action_mailer.default_url_options = { host: 'localhost',
port: 3000 }

# verificar rutas adicionadas


$ rake routes
DEVISE | FILTERS & HELPERS
# Adicionar validación de autenticación
# a controladora
before_action :authenticate_user!
# Consultar si un usuario ha iniciado sesión
user_signed_in?
# usuario actual con sesión iniciada
current_user
# sesión del usuario actual
user_session
DEVISE | ROUTE PATHS
<%= link_to 'Sign in', new_user_session_path %>
<%= link_to 'Sign out', destroy_user_session_path, method: :delete %
>
<%= link_to 'Sign up', new_user_registration_path %>
<%= link_to 'Update registration', edit_user_registration_path %>
DEVISE | MODELOS
# En el modelo
devise :database_authenticatable,
:registerable, :confirmable,
:recoverable, stretches: 20
DEVISE | CUSTOM VIEWS
$ rails g devise:views
AGENDA
AUTENTICACIÓN & ROLES
ADMIN
ADMIN
Rails Admin
Active Admin
RAILS_ADMIN
https://github.com/sferik/rails_admin

# En Gemfile
gem 'rails_admin'

$ bundle
$ rails g rails_admin:install
RAILS_ADMIN | CONFIGURACIÓN
RailsAdmin.config do |config|
# Devise integration
config.authenticate_with do
warden.authenticate! scope: :user
end
config.current_user_method(&:current_user)

# Custom title
# One alternative
config.main_app_name = ["Cool app", "BackOffice"]
# or something more dynamic
config.main_app_name = Proc.new { |controller| [ "Cool app",
"BackOffice - #{controller.params[:action].try(:titleize)}" ] }
end
ACTIVEADMIN
https://github.com/activeadmin/activeadmin

# En Gemfile
gem 'activeadmin', github: 'activeadmin'

# Luego de bundle

# Crea la clase AdminUser


rails g active_admin:install
ó
# crea / edita la clase a usar con Devise
rails g active_admin:install User
ó
# No realiza los pasos de Devise install
rails g active_admin:install --skip-users
AGENDA
AUTENTICACIÓN & ROLES
ADMIN
REFERENCIAS
https://www.railstutorial.org
http://guides.rubyonrails.org

You might also like