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) usar o CanCanCan para implementar is load_and_authorize_resource
to é uma das maneiras mais utilizadas (e confiáveis) de fazer isso 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 🙂

 

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 clicando aqui.

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 clicando aqui.

img-curriculo-grafico-com-01
Muito Obrigado por acompanhar este Blog!

Abraço,
Leonardo Scorza.

outubro 4, 2017
Feito com s2 por OneBitCode
%d blogueiros gostam disto: