create user menus
This commit is contained in:
@@ -70,11 +70,24 @@ class User extends Authenticatable
|
|||||||
public function menus()
|
public function menus()
|
||||||
{
|
{
|
||||||
return Menu::where(function (Builder $query) {
|
return Menu::where(function (Builder $query) {
|
||||||
$this->permissions->each(fn (Permission $permission) => $query->orWhereRelation('permissions', 'id', $permission->id));
|
|
||||||
$this->roles->each(function (Role $role) use ($query) {
|
$this->roles->each(function (Role $role) use ($query) {
|
||||||
$role->permissions->each(fn (Permission $permission) => $query->orWhereRelation('permissions', 'id', $permission->id));
|
$query->orWhereHas('permissions', function (Builder $query) use ($role) {
|
||||||
$query->orWhereRelation('roles', 'id', $role->id);
|
$query->whereIn('permissions.id', $role->permissions->pluck('id')->toArray());
|
||||||
});
|
});
|
||||||
})->get();
|
});
|
||||||
|
|
||||||
|
$query->orWhereHas('roles', function (Builder $query) {
|
||||||
|
$query->whereIn('roles.id', $this->roles->pluck('id')->toArray());
|
||||||
|
});
|
||||||
|
|
||||||
|
$query->orWhereHas('permissions', function (Builder $query) {
|
||||||
|
$query->whereIn('permissions.id', $this->permissions->pluck('id')->toArray());
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->orWhere(function (Builder $query) {
|
||||||
|
$query->orDoesntHave('permissions');
|
||||||
|
$query->orDoesntHave('roles');
|
||||||
|
})
|
||||||
|
->get();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user