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)

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