Como gerenciar as permissões (autorização) no Rails usando o Devise + CanCanCan

O que vamos Aprender?

Como gerenciar as permissões de acesso no seu App Rails usando o Devise + CanCanCan.

Porque Aprender?

A maior parte dos sites tem diferentes níveis de permissão baseados no tipo de usuário (cliente, operador, admin e etc) e usar o CanCanCan para implementar isto é uma das maneiras mais utilizadas (e confiáveis) de se fazer no Ruby On Rails.

 

Ingredientes

1. Ruby 2.3.1
2. Rails 5
3. Sqlite3
4. CanCanCan (Gem)
5. Devise (Gem)

Código completo

Como de costume, você pode acessar o código desenvolvido durante o tutorial no GitHub para realizar comparações caso você tenha alguma dúvida :), acessa aqui o código e já me segue por lá.

REVEJA:

Screencast #1: Criando Autenticação com o Facebook! (Devise + Omniauth)
Screencast #2: Criando um e-commerce com Spree em 15 minutos!
Screencast #3: Como criar um Chat em tempo real usando Action Cable (Rails 5)

Lista de comandos usados no Screencast em ordem (Acompanhe junto do vídeo 🙂 )
Parte 1 – Gerando nosso projeto com autenticação via Devise
  1. Crie o Projeto:
  2. Entre na pasta do projeto que foi criado:
  3. Inclua as Gems:
  4. Rode o Bundle para instalar as gems:
  5. Crie os Scaffolds de teste:
  6. Instale o devise:
  7. ‘Instale’ o devise no model user:
  8. Rode as migrations:
  9. Adicione a validação no arquivo app/controllers/application_controller.rb
  10. Rode o servidor para testarmos:
  11. Acesse o browser e vá até http://localhost:3000/users
  12. Crie uma conta e tente adicionar um carro (como foi demonstrado no vídeo)
Parte 2 – Incluindo a autorização via CanCanCan
  1. Gere o arquivo de ability
  2. Substitua o conteúdo do arquivo app/models/ability.rb por:
  3. Inclua a seguinte linha no arquivo app/controller/application_controller.rb:
  4. Para adicionar a lógica também ao front-end substitua a linha (<%= link_to 'New Car', new_car_path %>) por:
  5. Agora no Browser vá até http://localhost:3000/cars e tente criar um novo carro:
  6. Um bônus que não estava no vídeo (Vamos mandar o CanCanCan redirecionar o User quando ele não tiver permissão), coloque o seguinte conteúdo em app/controller/application_controller.rb:
  7. Agora no Browser teste novamente para ver o redirecionamente, acesse http://localhost:3000/cars e tente criar um novo carro:
  8. Agora vá até http://localhost:3000/users e edite seu usuário para que ele seja um administrador (como no vídeo)
  9. Agora finalmente se você for a http://localhost:3000/cars e tentar criar um novo carro você vai ter sucesso porque agora você é um administrador \o/.
  10. Parabéns nós conseguimos 🙂



12 formas de vencer o bloqueio criativo e escrever textos memoráveis (e 6 dicas extras)

Não perca nenhum conteúdo

Receba nosso resumo semanal com os novos posts, cursos, talks e vagas o/




 

Conclusão

Usando o CanCanCan + Devise você consegue em poucos minutos criar um sistema de alta qualidade para gerenciar a autenticação e a autorização de usuários. Vale a pena dar uma olhada na documentação do CanCanCan para conhecer mais opções para testar a autorização de recursos e etc. (Clique aqui para acessar a documentação)

Se você ficou com alguma dúvida ou tem sugestões, comente ai em baixo ou me adicione no facebook san diego chargers cheerleader dating asian guy.

Muitas novidades estão para acontecer aqui no blog (Sério, vem coisa boa por ai) então se inscreve na nossa newsletter ai do lado direito em “Se inscreva” para saber das coisas novas que vão surgir por aqui em breve.

Pequeno Merchandising do bem 🙂

Como eu já disse no Post anterior a minha namorada está com um projeto bem legal que pode ser a diferença entre você conseguir ou não aquele Job maneiro :).
Ela é a designer responsável pela beleza desde Blog \o/   e o projeto é um site onde você pode encomendar um currículo gráfico (um currículo bonito que impressiona) para aumentar suas chances de conseguir um bom Job.
Dá uma olhada lá no projeto anonymous dating apps.

ashley madison dating sites in usa
Muito Obrigado por acompanhar este Blog!

Abraço,
Leonardo Scorza.


Primeira vez no OneBitCode? Curtiu esse conteúdo?
O OneBitCode tem muito mais para você!


O OneBitCode traz conteúdos de qualidade, e em português, sobre programação com foco em Ruby on Rails e também JavaScript.
Além disso, aqui sempre levamos à você conteúdos valiosos sobre a carreira de programação, dicas sobre currículos, portfólios, perfil profissional, soft skills, enfim, tudo o que você precisa saber para continuar evoluindo como Programador(a)!

Fique por dentro de todos os conteúdos o/

 

Nossas redes sociais:

📹 • https://youtube.com/Onebitcode [Live todas as terças-feiras às 19h)
💻 • https://linkedin.com/company/onebitcode
🙂 • https://facebook.com/onebitcode
 📱  • https://instagram.com/one_bit_code
🐦 • https://twitter.com/onebitcode

 

Nossos cursos:

🥇 • Programador Full Stack Javascript em 8 Semanas
💎 • Curso Completo de Ruby
 ⚙  • Minicurso: API Rails 5 Completo
🐞 • Minicurso de Testes para Ruby on Rails com RSpec

 

Espero que curta nossos conteúdos e sempre que precisar de ajuda, fala com a gente!
E
stamos aqui para você 🙂

Bem-vindo à família OneBitCode o/

janeiro 17, 2020

Feito com s2 por OneBitCode