Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ruby on Rails para Iniciantes - Aula 39

Ruby on Rails para Iniciantes - Aula 39

Usando autorização com Pundit e Devise (básico)

Avatar for Jackson Pires

Jackson Pires

May 13, 2015
Tweet

More Decks by Jackson Pires

Other Decks in Programming

Transcript

  1. Ruby on Rails Index Customer Products Usuários Autenticados (normal_user, admin)

    Addresses ControlUsers Usuários Autenticados (admin)
  2. Ruby on Rails Observe a migration/tabela do User Como diferenciar

    usuários normais e admin? Users email encrypted_password ... ...
  3. Ruby on Rails Observe a migration/tabela do User Users email

    <[email protected]> encrypted_password <7as89df9asdf9> role < 0 / normal_user> ... Users email <[email protected]> encrypted_password <l35l435n66m3fds> role < 1 / admin> ...
  4. Ruby on Rails Inclua o Pundit no ApplicationController class ApplicationController

    < ActionController::Base include Pundit protect_from_forgery end
  5. Ruby on Rails Crie uma nova política para o model

    User rails g pundit:policy user
  6. Ruby on Rails Index Customer Products Usuários Autenticados (normal_user, admin)

    Addresses ControlUsers Usuários Autenticados (admin)
  7. Ruby on Rails Crie o método para testar se o

    usuário é admin def index? user.admin? end
  8. Ruby on Rails Ajustando mensagens de erro rescue_from Pundit::NotAuthorizedError, with:

    :user_not_authorized private def user_not_authorized flash[:alert] = "Você não tem permissão para fazer esta ação." redirect_to(request.referrer || root_path) end
  9. Ruby on Rails Agora façamos o mesmo para o model

    Address rails g pundit:policy address
  10. Ruby on Rails Crie o método para testar se o

    usuário é admin def index? user.admin? end