I reopen issue #72
I was unable to figure out how to use the custom filter.
Thinking wanted to do like this
[
'text' => 'Users',
'url' => 'users',
'icon' => 'file',
'label_color' => 'success',
'can' => 'manage-blog',
'role' => 'User',
],
but any solution is fine
anyone?
I'm also unable to figure that out...
'menu' => [
'MAIN NAVIGATION',
[
'text' => 'Blog',
'url' => 'admin/blog',
'can' => 'manage-blog',
],
[
'text' => 'Pages',
'url' => 'admin/pages',
'icon' => 'file',
'label' => 4,
'label_color' => 'success',
],
... etc...
When I change the 'text' => 'Pages' tot 'text' => 'Pages TEST', the changes ar not pushed to the view, I also tried with 'php artisan view:clear' but still no changes...
I'm newbie in Laravel, how to find the $adminlte->menu() method in the page.blade.php?
Here's how I implemented it when using spatie/permission:
class RoleMenuFilter implements FilterInterface
{
public function transform($item, Builder $builder)
{
if (! $this->isVisible($item)) {
return false;
}
if (isset($item['header'])) {
$item = $item['header'];
}
return $item;
}
protected function isVisible($item)
{
// check if user is a member of specified role(s)
if (isset($item['roles'])) {
if (! (Auth::user())->hasAnyRole($item['roles'])) {
// not a member of any valid roles; check if user has been granted explicit permission
if (isset($item['can']) && (Auth::user())->can($item['can'])) {
return true;
} else {
return false;
}
} else {
return true;
}
} else {
// valid roles not defined; check if user has been granted explicit permission
if (isset($item['can'])) {
// permissions are defined
if ((Auth::user())->can($item['can'])) {
return true;
} else {
return false;
}
} else {
// no valid roles or permissions defined; allow for all users
return true;
}
}
}
}
And the menu config:
[
'text' => 'Users',
'icon' => 'users',
'url' => 'admin/users',
'can' => 'list-user',
'roles' => [
'admin',
],
],
I use Laratrust with this code.
`
namespace AppFilter;
use IlluminateSupportFacadesAuth;
use JeroenNotenLaravelAdminLteMenuBuilder;
use JeroenNotenLaravelAdminLteMenuFiltersFilterInterface;
class MenuFilter implements FilterInterface
{
public function transform($item, Builder $builder)
{
if (isset($item['role']) && ! Auth::user()->hasRole($item['role'])) {
return false;
}
return $item;
}
}`
and here is a menu config
[
'text' => 'Users',
'url' => 'users',
'icon' => 'users',
'role' => 'su',
],
Where I need to save the new filter class?
Wherever you want in the app directory, as long as you reference it correctly in the configuration.
I am using jeremykenedy laravel-roles. how can i do this? Please Help
please anyone help how to show sidebar menu separately for user and admin
if i add can it hide for both admin and user plz help me
I am using jeremykenedy laravel-roles. how can i do this? Please Help
Any solution?
Here is my solution, starting with this proposal:
I use Laratrust with this code.
`namespace AppFilter;
use IlluminateSupportFacadesAuth;
use JeroenNotenLaravelAdminLteMenuBuilder;
use JeroenNotenLaravelAdminLteMenuFiltersFilterInterface;class MenuFilter implements FilterInterface
{
public function transform($item, Builder $builder)
{
if (isset($item['role']) && ! Auth::user()->hasRole($item['role'])) {
return false;
}return $item;
}
}`and here is a menu config
[ 'text' => 'Users', 'url' => 'users', 'icon' => 'users', 'role' => 'su', ],
app/Providers/AppServiceProvider.php
public function boot()
{
$this->register();
\Gate::define('1', function ($user) {
if ($user->roleId == '1') {
return true;
}
return false;
});
\Gate::define('2', function ($user) {
if ($user->roleId == '2') {
return true;
}
return false;
});
\Gate::define('3', function ($user) {
if ($user->roleId == '3') {
return true;
}
return false;
});
}
then, in config/adminlte.php
[
'text' => 'site_settings',
'url' => 'settings',
'icon' => 'fas fa-fw fa-cogs',
'can' => [ '1', '2' ], // array of "roles" or any other filter
],
Most helpful comment
Here's how I implemented it when using spatie/permission:
And the menu config: