Menu Dinâmico AdminLTE

1,040 views
Skip to first unread message

Victor

unread,
Aug 4, 2018, 10:25:16 AM8/4/18
to Laravel Brasil
Amigos, saudações!

Sou novo no Laravel e estou tentando criar uma solução dinâmica de menu no padrão do AdminLTE, mais não estou conseguindo. 
O problema é o seguinte, criei a raiz principal do menu no arquivo adminlte.php e agora gostaria que, dependendo do perfil do usuário que for logar no sistema, ser exibido
apenas as opções de menu específicas para  o perfil, inibindo as demais opções, ou seja, perfil ADMIN veria tudo, perfil FINANCEIRO apenas as opções do financeiro, e assim por diante.

Alguém poderia me ajudar com alguma solução?

Desde já agradeço pela atenção!

Marcelo Gomes

unread,
Aug 5, 2018, 9:38:33 AM8/5/18
to Laravel Brasil
Bom dia.

Você deve implementar Gates. Uma das opções do menu é o 'can'.
Com ele você criar um Gate e este concentra sua regra de permissões.

Um exemplo:

/app/config/adminlte.php

[
'text' => 'Por Chassi',
'url' => 'consultarporchassi',
'icon' => 'search',
'icon_color' => 'success',
'can' => 'consulta-chassi'
],
Gate:
/app/Providers/AppServiceProvider.php: O Gate deve ser implementado dentro do método "boot" do AppServiceProvider.php

/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$this->register();

\
Gate::define('consulta-chassi', function ($user) {
if ($user->priv_admin = 'Y') {
return true;
}
return false;
});

}



Atenciosamente

Marcelo Gomes |  MG Consultoria e Serviços de TI
(11) 2214-3585 / (11) 9 83643775

TrabalhoEmDia.com | A evolução na forma de trabalhar

"As informações contidas nesta mensagem e no(s) anexo(s) são endereçadas exclusivamente à(s) pessoa(s) e/ou instituição(ões) acima indica(s) e podem conter informações confidenciais e/ou privilegiadas. Se você não for o destinatário ou a pessoa autorizada a recebê-la, queira, por favor, retorná-la ao remetente e em seguida apagá-la definitivamente. Qualquer uso, cópia ou divulgação das informações nela contidas, na íntegra ou parcialmente, são proibidas e serão tratadas conforme legislação vigente."

--
Você recebeu essa mensagem porque está inscrito no grupo "Laravel Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para laravel-brasil+unsubscribe@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Victor

unread,
Aug 6, 2018, 9:03:27 PM8/6/18
to Laravel Brasil
Olá Marcelo,

Agradeço imensamente por seu apoio.
Tentei implementar conforme sua dica, porém o Laravel está retornando a seguinte exceção:

"Non-static method Illuminate\Auth\Access\Gate::define() should not be called statically"

Marcelo Gomes

unread,
Aug 7, 2018, 8:50:14 AM8/7/18
to Laravel Brasil
Qual versão do laravel vc está usando.

Está estranho, veja no link do framework sobre a implementação deste recurso:




Atenciosamente

Marcelo Gomes |  MG Consultoria e Serviços de TI
(11) 2214-3585 / (11) 9 83643775

TrabalhoEmDia.com | A evolução na forma de trabalhar

"As informações contidas nesta mensagem e no(s) anexo(s) são endereçadas exclusivamente à(s) pessoa(s) e/ou instituição(ões) acima indica(s) e podem conter informações confidenciais e/ou privilegiadas. Se você não for o destinatário ou a pessoa autorizada a recebê-la, queira, por favor, retorná-la ao remetente e em seguida apagá-la definitivamente. Qualquer uso, cópia ou divulgação das informações nela contidas, na íntegra ou parcialmente, são proibidas e serão tratadas conforme legislação vigente."

--

Paulo Henrique Andrade

unread,
Sep 29, 2018, 11:58:46 PM9/29/18
to Laravel Brasil
Excelente, funcionou perfeitamente.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para laravel-brasi...@googlegroups.com.

SMnews SM

unread,
Feb 8, 2019, 1:06:34 PM2/8/19
to Laravel Brasil
Muito bom, funcionou perfeitamente, obrigado...


Em domingo, 5 de agosto de 2018 10:38:33 UTC-3, Marcelo Gomes escreveu:
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para laravel-brasi...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages