Meus sites


Sites relevantes


Contato

Email: devanon.kyosha@gmail.com

Sejam bem vindos

Fabrício Web Home Page

Desenvolvimento PHP Laravel, Manutenção em sites PHP, Arquitetura de serviços Web, Geração de endpoints REST API e Tutoriais.

Sejam bem vindos à página Fabrício Web. Eu sou o Fabrício Dias.
Passarei aqui uma parte significativa de minha experiência. Acompanhe minhas publicações. Vou publicar amenidades nerds também. O site está em desenvolvimento, e vou colocar melhorias ainda. E com certeza vou adicionar interação com o leitor em breve.

Fabrício Dias de Oliveira

Laravel - Separando usuários e permissões em uma aplicação Laravel

Em uma aplicação web, algumas vezes é necessário separar papéis para pessoas diferentes. Em uma loja por exemplo, haverá o administrador, o operador, o financeiro, a gerência, o comprador, etc... para isso criaremos um middleware para cada um dos papéis. Acompanhe aqui a criação do middleware para um administrador - mas a regra pode ser usada para N papéis.

Na raiz do projeto, execute:

php artisan make:middleware IsAdmin

1 - Adicione no final do arquivo app/http/kernel.php a linha

'admin' => \App\Http\Middleware\IsAdmin::class,

2 - Edite o arquivo isAdmin.php

 

<?php

 

namespace App\Http\Middleware;

 

use Closure;

use Auth;

 

class IsAdmin

{

   /**

    * Handle an incoming request.

    *

    * @param  \Illuminate\Http\Request  $request

    * @param  \Closure  $next

    * @return mixed

    */

   public function handle($request, Closure $next)

   {

    if (Auth::user() &&  Auth::user()->tipo == 'admin') {

           return $next($request);

    }

 

   return redirect('noaccess');

   }

}

3 - Aplique a rota do administrador às outras rotas

Route::group(['middleware' => 'App\Http\Middleware\IsAdmin'], function() {

    //Demais rotas aqui

});

4 - Adicione a coluna 'tipo' em sua tabela users no banco de dados. Os administradores terão esse campo com valor 'admin'.
Assim, seu middleware "administrador" está pronto. Lembre-se, da mesma maneira podemos implementar outros papéis, basta atribuir somente as rotas que um middleware irá acessar no grupo de rotas. 

Fabrício Dias de Oliveira

Procurar artigos